EduSync is a Student, Group & Assignment Management System built with Next.js (frontend) and Node.js + Express + Prisma + PostgreSQL (backend).
It allows:
- Admins to manage students, groups, and assignments.
- Students to view groups and their assignments.
- Secure authentication with role-based access control.
- Node.js >= 20
- Docker & Docker Compose (for containerized setup)
- PostgreSQL (or use Dockerized DB)
git clone www.github.com/SarthDhakade963/edusync
cd EduSync####2. Setup Backend
cd server
npm install
cp .env.example .env # set DB credentials
npx prisma migrate dev # apply migrations
npm run dev # start backend server (http://localhost:5000/api)- Setup Frontend
cd ../client
npm install
npm run dev # start frontend (http://localhost:3000)- Dockerized Setup
docker-compose up --buildBackend: http://localhost:5000
Frontend: http://localhost:3000
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/login |
Login user |
| POST | /auth/register |
Register new user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /group/members |
Get all members of a group |
| POST | /group/ |
Create a new group |
| GET | /group/:groupId |
Get group details |
| Method | Endpoint | Description |
|---|---|---|
| GET | /assignment/:groupId |
Get assignments of a group |
| POST | /assignment |
Create a new assignment |
| Method | Endpoint | Description |
|---|---|---|
| POST | /invitation |
Send Invitations |
| GET | /invitation |
Get invitations list |
| POST | /invitation/:invitation_id/respond |
Create assignment |
| Method | Endpoint | Description |
|---|---|---|
| POST | /submission |
Submit Assignment |
| GET | /submission/:assignmentId |
Get Submission of Assignment |
- User (id, name, email, password, role)
- Group (id, name, ownerId)
- Assignment (id, title, groupId, dueDate)
- GroupMember (id, groupId, userId)
- User ↔ GroupMember ↔ Group (Many-to-Many)
- Group → Assignment (One-to-Many)
- User → Group (as owner, One-to-Many)
ER Diagram:
- Handles routing, pages, and components.
- Calls backend API for data.
- Authentication handled via NextAuth.
- REST API endpoints for users, groups, and assignments.
- Authentication & authorization middleware.
- Business logic for group & assignment management.
- Stores users, groups, group members, and assignments.
- Prisma ORM for schema management & queries.
- TypeScript: Strict typing for frontend & backend.
- Next.js App Router: Organized folder-based routing.
- Docker & Docker Compose: Containerized deployment for both client & server.
- Prisma: Type-safe DB queries & migrations.
- Security: JWT authentication, bcryptjs password hashing.
- Frontend Optimization: Next.js build optimizations, ESLint & TypeScript checks.

