The purpose of this repository is to proved a template for a base starting point for C4G course projects. This template is not mandatory, but it captures the needs of a typical C4G project that uses a website and a database. A team that uses the template for building their project can also use it to meet course reporting requirements. Features include:
-
Authentication using google with 2 provided test accounts
-
CI/CD which will deploy the application and DB to the c4g.dev server using your applications sub-domain.
-
A user management page for
ADMINusers. Base roles areADMINandSTAFF. -
Project specific deliverable pages to quickly update as we progress through the course. Found by clicking the
Teamlink in the footer of the application. -
More to come as we add common features we find useful across applications. We welcome student pull requests to add features!
Our goal is to make this template easy to use for any student in the class, so feedback to improve the template or this readme are most welcome!
- Make sure you have the following setup and configured on your computer:
- git or Github Desktop
- NodeJS - version 24 or higher
- pnpm - Fast, disk space efficient package manager
- Docker
- Clone the repo using either SSH, HTTPS, or Github Desktop
- SSH
git clone git@github.gatech.edu:cs-6150-computing-for-good/template.git- HTTPS
git clone https://github.gatech.edu/cs-6150-computing-for-good/template.git- Get the
.envfile from Microsoft teams or ask a TA for the file. This file will be specific to your project once this repo is cloned and must be created by a TA as we have to setup the github action secrets. - Install all of the node dependencies with the following command
pnpm install- Make sure you have docker running and run the following command to initialize the database, apply all database schema, and seed some test users:
pnpm run init- If all is well up to this point your terminal should look like this:

- Next, run the development server
pnpm run devOpen http://localhost:3000 with your browser to see the result.
- You may login with either of the accounts below or with your own gmail account
| Username | Password | Role |
|---|---|---|
| c4gdevad@gmail.com | EHdqcGJajTAnSy$8 | ADMIN |
| c4gdevstaff@gmail.com | JCbSk3&&JF!h#m@x | STAFF |
- To access the database you can run the following command in a new terminal:
pnpm exec prisma studioIt should open the browser automatically or you can open http://localhost:5555/ to see the database tables.
You can start editing the page by modifying src/app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
- Replace
templatein many files to your project name. - Setup oauth settings in GCP
- Setup nginx configuration, and re-run SSL cert on C4G Server.
- Generate VAPID keys for PWA setup Generator
- Generate RESEND key Resend
- Nextjs - framework
- Typescript
- Tailwind - css atomic classes
- Prisma - db type ORM system
- Prettier - formatter
- ESLint - enforce rules / policies for maintable code
- Husky - allows for code changes during local commit
- Lint-Staged - lints code on only staged files with auto-fix
- Docker - containers
- Postgres - database
- Github Actions - ci/cd process
- Nginx - server hosting configuration / routing
- Shadcn - UI component library
- RadixUI - UI component library
- Lucide-React - UI icons
- Next-Auth - authentication with google
- Ag-Grid - grid / table component
- Resend - emails
If you want to contribute to this template for future projects please work with the teaching staff. We welcome any technologies that could benefit the partners and speed to delivery for features.