Skip to content

A customizable management platform for nonprofits and their members.

Notifications You must be signed in to change notification settings

GTBitsOfGood/servicestart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

275 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ServiceStart

ServiceStart is a total rebuild of Voluntrack - a volunteer and event management platform for nonprofits. See the Notion here.

Netlify Status

Stack

  • React: Frontend framework
  • Next.js: Backend framework and server-side rendering
  • Tailwind CSS: Styling
  • Netlify: Hosting and deployment
  • PNPM: Package management
  • ESLint: Linting
  • Prettier: Code formatting
  • Vitest: Testing
  • Unit tests: _.test.ts files; E2E tests: _.spec.ts files
  • Playwright: E2E testing
  • Drizzle ORM: Database ORM
  • PostgreSQL: Database
  • BetterAuth: Authentication
  • BoG Design System: UI components
  • Zod: Schema validation
  • Hono: API and RPC framework

Getting Started

  1. Install PNPM if you haven't already:

    npm install -g pnpm
  2. Clone the repository:

    git clone https://github.com/GTBitsOfGood/servicestart.git
    cd servicestart
  3. Create the database:

    pnpm run db:create
    pnpm run db:test:create
  4. Set up environment variables:

    • Copy .env.template to .env and fill in the required values.

    • Generate your BETTER_AUTH_SECRET using the following command:

      openssl rand -base64 32
  5. Start the server:

    pnpm install
    pnpm run dev

Other Tools

  • Dependabot is enabled and will submit PRs to update dependencies.
  • PRs automatically create preview deployments on Netlify for easy UX testing.
  • There's a pre-commit hook for Prettier. If you get an error when committing, click "Show command output" in the popup to see the issue.
  • Use pnpm run db:view to open Drizzle Studio and view the database schema and contents.
  • Use the createTestUser function in tests/unit/testUtils.ts to get a user that you can use for API endpoints in tests.
  • Use pnpx bog-cli design edit to configure the BoG design system.
  • Run scripts in the scripts folder with pnpx tsx <script-name>.
  • Set the DB_URL environment variable on GitHub. For the preview environment, leave out the /database-name part so that the workflow can create databases for each PR.

Docs & Writeups

Various parts of ServiceStart's architecture and design decisions are documented in the docs folder. Check it out for details about our design decisions and infrastructure.

About

A customizable management platform for nonprofits and their members.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10