Grow is a course-based social platform that enables students to view academic info, write reviews, and engage in real-time chat.
This backend is built with Next.js API Routes, using Firebase Authentication, Firebase Realtime Database, and PostgreSQL with Prisma ORM.
- Next.js (API Routes) + TypeScript
- PostgreSQL
- Firebase Admin SDK (Auth, Realtime DB)
- Axios
- Auth & Authorization (Firebase ID Token)
- Course Info API (from Madgrades)
- Review CRUD API
- Chatroom metadata API (Firebase-linked)
- User Profile & Enrollment API
Clients send Firebase ID Token via header:
Authorization: Bearer
Server verifies and extracts UID, email, isAdmin
https://dbdiagram.io/d/6813d84f1ca52373f5228e49
- Sync script: admin/courses/update/route.ts
- Processes thousands of rows using chunked, transactional inserts
- Only retains most recent 5 years of data
-
Install dependencies
npm install -
Set environment variables in
.env
DATABASE_URL=...
FIREBASE_PROJECT_ID=...
FIREBASE_CLIENT_EMAIL=...
FIREBASE_PRIVATE_KEY=... -
Start dev server
npm run dev
https://plume-trouser-a64.notion.site/API-197fa6de67e3804eb1c5eb42a5f2da4f?pvs=4
- Manage Course Chatting room
- Update data from Madgrade API
- Real-time messages handled in Firebase Realtime Database
- Backend manages only course chat metadata.
Backend: Hyuntaek Oh, Cheryn Kim, Youngjun Jung
Frontend: https://github.com/raphy0316/BuckyClass-mobile-ReactNative