A volunteer management platform built for Childhood Cancer Society
The CCS dev team's goal for ANNIverse is to create a full end-to-end experience
This is a T3 Stack project bootstrapped with create-t3-app
.
A quick peek at the basic tech under the hood:
- Next.js
- Prisma
- tRPC
- NextAuth
- Tailwind CSS
You'll need to have Node 16+, npm, and a local version of postgresql 14+ installed. Reach out if you're having trouble getting set up here.
Clone, npm install, create a .env file, and run basic db migrations to get up and running:
$ git clone git@github.com:ChildhoodCancerSociety/ANNIverse.git
$ cd ANNIverse
$ npm install
$ cp .env.example .env
$ npm run db:migrate
$ npm run dev
π¦ src
β
β # React components that serve as pure compositional pieces
β # These components should never be used in isolation,
β # but rather should be combined to create more specific "molecule"-type components
⣠𧱠atoms
β
β # "Molecule"-type components
β # These components will show up either as is or in composition in pages
β£ π components
β
β # Reusable React hooks
β£ πͺ hooks
β
β # Next.js pages directory with api routes
β£ π£ pages
β
β # Plugins for more advanced module usage within ANNIverse
β # These would include specific CCS functionality that we might not deem
β # core parts of the platform, such as GitHub integration for the dev team
β£ π plugins
β
β # Server-specific code + business logic
β # Includes prisma and tRPC bootstrapping code
β£ π server
β β£ π api
β β β π routers
β β β
β β β # Base nomenclature for model-related tRPC routing code
β β β£ π x.mutations.ts
β β β£ π x.queries.ts
β β β π x.validators.ts
β β
β β£ π auth.ts
β β£ π cache.ts
β β π db.ts
β
β # All global styles live here
β£ πββοΈ styles
β β π globals.css
β
β # Utilities (helpers, cross-stack code, etc.) live here
β£ π οΈ utils
β
β # Environment variables are loaded and parsed from .env here
β πΊοΈ env.mjs
You'll need the following in your .env
in order to do anything meaningful:
# When adding additional environment variables, the schema in "/src/env.mjs"
# should be updated accordingly.
# Prisma
# https://www.prisma.io/docs/reference/database-reference/connection-urls#env
DATABASE_URL=""
# Next Auth
# You can generate a new secret on the command line with:
# openssl rand -base64 32
# https://next-auth.js.org/configuration/options#secret
NEXTAUTH_SECRET=""
NEXTAUTH_URL="http://localhost:3000"
# Next Auth Discord Provider
DISCORD_CLIENT_ID=""
DISCORD_CLIENT_SECRET=""
Look in the Discord if you need values for Discord application client ID and secret, or PM a maintainer.
To learn more about the T3 Stack, take a look at the following resources:
- Documentation
- Learn the T3 Stack β Check out these awesome tutorials
You can check out the create-t3-app GitHub repository β your feedback and contributions are welcome!
- TBD
Reach out at webdev@childhoodcancersociety.org if you'd like to support or help out with development!1
Footnotes
-
Contribution image made with contrib.rocks. β©