Skip to content

hack4impact-utk/persevere

Repository files navigation


Repository Banner
Persevere Volunteer Management

Description

Persevere, a non-profit that reduces recidivism through tech education, is hampered by a manual and inconsistent volunteer management process that makes it difficult to track volunteers and report data for funding. To solve this, we are building a platform to automate volunteer matching, streamline reporting, and provide a clear system for managing their growing community of mentors and guest speakers.

Getting Started

Prerequisites

Please have the following installed on your machine:

  • Node.js
  • PNPM
  • VSCode

Please have the following VSCode extensions installed:

  • Prettier
  • ESLint
  • Code Spell Checker
  • markdownlint

Environment Variables

Create a .env file in the root directory with the following variables:

DATABASE_URL=your-database-connection-string
NEXTAUTH_SECRET=your-generated-secret-here
NEXTAUTH_URL=http://localhost:3000
RESEND_API_KEY=your-resend-api-key (optional, for sending emails)
RESEND_FROM_EMAIL=noreply@yourdomain.com (optional, defaults to onboarding@resend.dev for testing)

Setup steps:

  1. Generate your own NextAuth secret: openssl rand -base64 32
  2. Contact leadership to get database connection string
  3. Each developer must use their own unique NEXTAUTH_SECRET

Note: All developers share the same database for development, but each needs their own NEXTAUTH_SECRET to prevent session conflicts.

Running the App

  1. Run pnpm install to install the dependencies.
  2. Run pnpm run dev to start the development server.
  3. Open http://localhost:3000 in your browser.

Database Setup

The project uses Drizzle ORM with PostgreSQL. Database migrations are automatically applied on startup.

Authentication

Test credentials for development:

Role Email Password Type
Admin admin@test.com admin123 -
Staff staff@test.com staff123 -
Volunteer volunteer@test.com volunteer123 flexible

Note: These are test accounts created for development purposes. Each role has different access permissions:

  • Admin: Full system access, can manage all users and settings
  • Staff: Can manage volunteers and opportunities, limited admin access
  • Volunteer: Can view and sign up for opportunities, limited to their own data

Contributing

Branch protections are enabled on this repository. To contribute, please create a new branch and make a pull request. The rules for branch names are lax, just be sure to include your name.

An example branch name for a card that adds a reset password email would be:

rudra-reset-password-email

Your pull request title must follow the conventional commits specification. An example of a valid pull request title is:

feat: Add pending form submissions table

Debugging

The .vscode/launch.json file is configured to run Next.js in debug mode. This can let you step through your code line by line and inspect variables. To start debug mode, navigate to the Run and Debug tab in VSCode, select the mode, and click the green play button.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7

Languages