A full-stack web application for colleges to manage project submissions and evaluations.
- Frontend: React + TailwindCSS + shadcn/ui
- Backend: Node.js + Express
- Database: MongoDB Atlas
- Register and login
- Upload projects (files + GitHub links)
- View submission status, marks, and feedback
- Login
- View all student submissions
- Evaluate projects (add marks + feedback)
- Download project files
- Navigate to the backend directory:
cd backend- Install dependencies:
npm install- Create a
.envfile in the backend directory with the following content:
PORT=5000
MONGO_URI=mongodb+srv://CollabBoard:Prem2005@cluster0.cxgvpwf.mongodb.net/
JWT_SECRET=collabboard_secret_key
- Start the backend server:
npm startThe backend will run on http://localhost:5000
- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Start the development server:
npm startThe frontend will run on http://localhost:3000
POST /api/students/register- Register a new studentPOST /api/students/login- Student loginGET /api/students/profile- Get student profile
POST /api/teachers/login- Teacher loginGET /api/teachers/profile- Get teacher profile
POST /api/projects/upload- Upload project (Student only)GET /api/projects/student/:id- Get student's projectsGET /api/projects/teacher/all- Get all projects (Teacher only)PUT /api/projects/evaluate/:projectId- Evaluate project (Teacher only)GET /api/projects/download/:projectId- Download project file
{
_id: ObjectId,
name: String,
email: String,
password: String (hashed),
roll_no: String
}{
_id: ObjectId,
name: String,
email: String,
password: String (hashed),
department: String
}{
_id: ObjectId,
student_id: ObjectId,
title: String,
description: String,
file_path: String,
github_link: String,
submission_date: Date,
status: String, // "Pending" or "Reviewed"
marks: Number,
feedback: String
}- Start both backend and frontend servers
- Open
http://localhost:3000in your browser - Register as a student or login as a teacher
- Students can upload projects and view their status
- Teachers can view all submissions and evaluate them
- Supported file types: .zip, .rar, .7z, .pdf, .doc, .docx, .txt, .py, .js, .html, .css, .java, .cpp, .c
- Maximum file size: 50MB
- Files are stored in the
backend/uploadsdirectory
- JWT-based authentication
- Tokens expire after 7 days
- Protected routes require valid tokens