This is something we all struggle with, planning future semesters. It takes too much time and effort, only to be put in a waitlist because the class just went full. This will help you show what schedules are possible for the next semester, hopefully it will buy you enough time to get you a place in a class that you wanted to take.
This project is developed open-sourcy, lead by GDG@GMU members.
Because it is easy to learn and use. We love vercel.
Had to make a choice between making things harder to pursue better performance, or accessibility. With this project being community-based, We have decided Next.js was the best option.
We are Google Developer Groups, I think you can guess why. Readable, lightweight, therefore won't cost us anything in prod. No brainer choice.
Same reason as Go. We focus heavily on learning the GCP products during the semester, and what is good with that if we can't utilize it? We are using GCP firestore, not firebase. :)
To run this project locally, you need to connect it to your own Google Cloud project.
- Go 1.22+
- Node.js 20+
- Google Cloud Project: You need a project with Firestore enabled.
- Create a Project: Go to the Google Cloud Console and create a new project.
- Enable APIs:
- Go to "APIs & Services" > "Library".
- Search for and enable "Google Firestore API".
- Create Service Account:
- Go to "IAM & Admin" > "Service Accounts".
- Click "Create Service Account".
- Name it (e.g.,
backend-server-acc). - Grant Role: Select "Cloud Datastore User" (or "Firestore User").
- Click "Done".
- Download Key:
- Click on the newly created service account email.
- Go to the "Keys" tab > "Add Key" > "Create new key".
- Select JSON.
-
Navigate to the backend folder:
cd go -
Create Environment File:
cp .env.example .env
-
Configure
.env: Open.envand fill in the details. It should look like this:CLIENT_ID=(your google client id) CLIENT_SECRET=(your google client secret) GOOGLE_PROJECT_ID=(your google cloud project name) CLIENT_CALLBACK_URL=http://localhost:5000/auth/google/callback FRONTEND_URL=http://localhost:3000
-
Install Dependencies:
go mod download / go mod tidy
-
Run the Server:
go run cmd/main.go
You should see:
[GIN-debug] Listening and serving HTTP on :5000
-
Create Environment File: Create a file named
.env.localin thefrontend/root:BACKEND_URL=http://localhost:5000
-
Install Dependencies:
npm install
-
Run the Frontend:
npm run dev
Open http://localhost:3000 in your browser.