A comprehensive web application designed to automate and streamline the project management process at IIIT Pune
- Project Overview
- Key Features
- Semester Workflows
- Tech Stack
- System Architecture
- Advanced Features
- User Roles & Capabilities
- Getting Started
- Project Structure
- API Documentation
SPMS (Student Project Management System) is a full-stack web application that automates the entire project lifecycle management for both B.Tech and M.Tech students at IIIT Pune. The system handles complex workflows across multiple semesters, including project registration, group formation, faculty allocation, real-time collaboration, file management, and evaluation systems.
- β Multi-Semester Support: Complete workflows for B.Tech (Sem 4-8) and M.Tech (Sem 1-4)
- β Real-Time Collaboration: Socket.IO powered chat system with file sharing
- β Intelligent Group Management: Dynamic group formation with invitation system
- β Faculty Allocation System: Priority-based preference matching with automated allocation
- β Comprehensive Evaluation: Multi-criteria scoring system for project evaluation
- β File Management: Secure file uploads with preview and download capabilities
- β Role-Based Access Control: Secure authentication and authorization for Students, Faculty, and Admins
- JWT-based authentication system
- Role-based access control (RBAC)
- Secure password hashing with bcrypt
- Protected API routes with middleware
- CORS configuration
- Input validation and sanitization
- Socket.IO Integration: Real-time bidirectional communication
- Message Features:
- Edit messages within 5-minute window
- Delete own messages
- Emoji reactions (π β€οΈ π π π π₯ π β π― π)
- Smart timestamp formatting (Today, Yesterday, Date)
- Message search functionality
- Edit history tracking
- File Attachments:
- Upload up to 3 files per message (10MB each)
- Support for 28+ file types (PDF, images, videos, code files, archives)
- File preview with icons
- Secure download system
- Group Formation: Create groups with 4-5 members
- Invitation System: Send/accept/reject group invitations
- Role Management: Group leader and member roles
- Status Tracking: Real-time group status updates
- Group Dashboard: Centralized group information and project details
- Preference Selection: Students select 5 faculty preferences with priorities
- Automated Allocation: Intelligent matching algorithm
- Choose/Pass Workflow: Faculty can accept or pass allocation requests
- Auto-Rejection: Automatic handling of rejected allocations
- Workload Management: Track faculty assignments and capacity
- Project Registration: Semester-specific registration forms
- Project Continuation: Continue previous semester projects (Sem 6, Sem 8)
- Status Tracking: Real-time project status updates
- Deliverable Submission: Upload project deliverables
- Progress Monitoring: Track project milestones and progress
- PPT Upload: Presentation slides upload (Sem 4)
- Document Upload: Project reports, certificates, offer letters
- File Preview: Visual file type indicators
- Secure Storage: Organized file structure by semester and type
- Download System: Secure file access control
- Summer Internship: Evidence submission and verification (Sem 7)
- 6-Month Internship: Long-term internship tracking
- Internship 1: Solo project alternative for students without summer internship
- Application Tracking: Status-based workflow (submitted, needs_info, verified_pass/fail)
- Document Verification: Admin review system with remarks
- User Management: Create, update, delete users (Students, Faculty, Admins)
- System Configuration: Dynamic semester windows and limits
- Project Oversight: Monitor all projects across semesters
- Allocation Management: Force faculty allocation and override
- Track Finalization: Approve student track selections (Sem 7, Sem 8)
- Analytics Dashboard: System-wide statistics and reports
- Project Type: Solo project
- Faculty Allocation: No faculty allocation required
- Special Features:
- PPT upload for presentation
- Presentation scheduling by admin
- Evaluation panel assignment (3 faculty members)
- Multi-criteria evaluation system
- Workflow:
- Student registers project
- Admin sets evaluation dates
- Admin assigns evaluation panel
- Student uploads PPT
- Faculty evaluates project
- Results published
- Project Type: Group project (4-5 members)
- Faculty Allocation: Priority-based preference system
- Special Features:
- Group formation with invitations
- Faculty preference selection (5 preferences)
- Choose/Pass allocation workflow
- Group dashboard
- Workflow:
- Student registers project
- Create/join group
- Group leader fills project details
- Select faculty preferences
- Wait for faculty allocation
- Faculty accepts/passes allocation
- Project begins with allocated faculty
- Project Type: Group project (Same group as Sem 5)
- Faculty Allocation: Same faculty as Sem 5 (automatic)
- Special Features:
- Project continuation option
- New project option
- Automatic faculty assignment
- Workflow:
- Student chooses: Continue Sem 5 project OR New project
- If continuing: Same faculty automatically assigned
- If new: Follow Sem 5 workflow
- Track Selection:
- Path A: 6-Month Internship
- Path B: Coursework (Major Project 1 + Internship 1)
- Special Features:
- Track selection interface
- Summer internship evidence submission
- Internship 1 solo project (if no summer internship)
- Major Project 1 group formation
- Workflow (Coursework Track):
- Student selects "Coursework" track
- Admin finalizes track
- For Summer Internship:
- Submit evidence (completion certificate required)
- Admin reviews and verifies
- If approved: No Internship 1 needed
- If rejected: Must do Internship 1 project
- For Internship 1 (if needed):
- Register solo project
- Select faculty preferences
- Wait for allocation
- For Major Project 1:
- Form group (4-5 members)
- Register project
- Select faculty preferences
- Wait for allocation
- Track Selection:
- Path A: Coursework (Major Project 1 + Internship 1 continuation)
- Path B: 6-Month Internship
- Path C: Major Project 2 (New group)
- Special Features:
- Track finalization
- Project continuation for coursework students
- New group formation option
- Workflow:
- Student selects track
- Admin finalizes track
- Continue with allocated faculty OR form new group
- Project Type: Solo project
- Faculty Allocation: Priority-based preferences
- Workflow: Similar to B.Tech Sem 5 (individual)
- Project Type: Solo project
- Faculty Allocation: Same faculty as Sem 1 (automatic)
- Special Features: Project continuation option
- Track Selection:
- Path A: 6-Month Internship
- Path B: Major Project 1 (Solo)
- Workflow: Similar to B.Tech Sem 7 (individual)
- Track Selection:
- Path A: 6-Month Internship
- Path B: Major Project 2 (Solo)
- Workflow: Similar to B.Tech Sem 8 (individual)
- React 19 - Modern UI library
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- React Router DOM - Client-side routing
- Socket.IO Client - Real-time communication
- React Query - Data fetching and caching
- React Hook Form - Form management
- React Hot Toast - Toast notifications
- React Icons - Icon library
- Date-fns - Date manipulation
- Node.js - JavaScript runtime
- Express.js 5 - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Socket.IO - Real-time bidirectional communication
- JWT - JSON Web Tokens for authentication
- Bcrypt - Password hashing
- Multer - File upload handling
- Nodemailer - Email service (configured)
- CORS - Cross-origin resource sharing
- MongoDB Atlas - Cloud database hosting
- Mongoose Schemas - Data modeling
- Indexes - Optimized queries
- Relationships - Referenced documents
backend/
βββ config/ # Database configuration
βββ controllers/ # Business logic (10 controllers)
βββ middleware/ # Authentication, validation, file uploads
βββ models/ # Database schemas (13 models)
βββ routes/ # API endpoints (10 route files)
βββ services/ # Email, Socket.IO services
βββ utils/ # Helper functions
βββ uploads/ # File storage
βββ chat/ # Chat attachments
βββ internships/ # Internship documents
βββ projects/ # Project files
frontend/
βββ src/
β βββ components/ # Reusable UI components
β βββ pages/ # Page components
β β βββ admin/ # Admin pages
β β βββ faculty/ # Faculty pages
β β βββ student/ # Student pages
β β βββ shared/ # Shared pages (ProjectDetails)
β βββ context/ # React context providers
β βββ hooks/ # Custom React hooks
β βββ utils/ # Utility functions (API client)
β βββ App.jsx # Main app component
- User - Base user model
- Student - Student-specific data
- Faculty - Faculty information
- Admin - Admin accounts
- Project - Project details
- Group - Group information
- FacultyPreference - Preference tracking
- Message - Chat messages
- InternshipApplication - Internship records
- SystemConfig - System configuration
- Evaluation - Evaluation records
- Socket.IO Integration: Bidirectional real-time communication
- Message Editing: 5-minute edit window with history
- Emoji Reactions: 10 emoji reactions with grouping
- Message Search: Backend regex search with real-time filtering
- File Attachments: Up to 3 files per message (10MB each)
- Smart Timestamps: Context-aware time display
- Message Deletion: Delete own messages with confirmation
- Dynamic Invitations: Send/accept/reject with real-time updates
- Role-Based Permissions: Group leader vs member capabilities
- Status Tracking: Pending, active, completed states
- Member Management: Add/remove members with validation
- Group Dashboard: Centralized project and member information
- Preference Matching: Priority-based allocation
- Workload Balancing: Track faculty capacity
- Auto-Rejection: Handle rejected allocations automatically
- Choose/Pass System: Faculty can accept or pass requests
- Force Allocation: Admin override capability
- Secure Uploads: Multer middleware with validation
- File Type Detection: 28+ supported file types
- Preview System: Visual file type indicators
- Organized Storage: Semester and type-based organization
- Access Control: Project member-only downloads
- Multi-Criteria Scoring: 4 evaluation criteria
- Automatic Grading: Grade calculation (A+, A, B+, B, C, F)
- Feedback System: Comprehensive feedback and recommendations
- Panel Assignment: Admin-assigned evaluation panels
- Evaluation History: Track all evaluations
- Semester Windows: Configurable registration/evaluation windows
- System Limits: Admin-configurable group sizes, preferences
- Faculty Types: Configure faculty categories
- Real-Time Updates: Changes reflect immediately
- Dashboard: Semester-specific project overview
- Project Registration: Register projects for current semester
- Group Management: Create groups, send/accept invitations
- Faculty Preferences: Select 5 faculty preferences with priorities
- File Uploads: Upload PPTs, documents, deliverables
- Chat: Real-time project chat with file sharing
- Track Selection: Choose internship or coursework track (Sem 7, 8)
- Internship Applications: Submit summer internship evidence
- Profile Management: Update personal information
- Dashboard: Assigned projects and groups overview
- Allocation Management: Accept/pass group allocation requests
- Project Supervision: Monitor assigned projects
- Evaluation: Evaluate projects with multi-criteria scoring
- Student Management: View assigned students and their progress
- Chat: Communicate with project groups
- Profile Management: Update faculty information
- User Management: Create/update/delete users (Students, Faculty, Admins)
- Project Oversight: Monitor all projects across semesters
- Group Management: View and manage all groups
- Allocation Control: Force faculty allocation, override decisions
- System Configuration: Configure semester windows, limits, faculty types
- Track Finalization: Approve student track selections
- Evaluation Panel Assignment: Assign faculty to evaluation panels (Sem 4)
- Internship Review: Review and verify internship applications
- Analytics: System-wide statistics and reports
- Semester Management: Configure semester-specific settings
- Node.js (v18 or higher)
- MongoDB Atlas account (or local MongoDB)
- Git
-
Clone the repository
git clone https://github.com/Student-Project-Management-System-IIITP/Student-Project-Management-System-IIITP cd SPMS@IIITP -
Backend Setup
cd backend npm install -
Frontend Setup
cd frontend npm install -
Environment Configuration
Create
.envfile inbackend/:PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key NODE_ENV=development
-
Start Development Servers
Terminal 1 (Backend):
cd backend nodemon server.jsTerminal 2 (Frontend):
cd frontend npm run dev -
Access the Application
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:5000
- Frontend:
Email: pathaneamrut@gmail.com
Password: Amrut@123
Note: You can also create additional admin accounts through the admin dashboard.
Backend:
controllers/- Business logic for all operationsmodels/- Database schemas and modelsroutes/- API endpoint definitionsmiddleware/- Authentication, validation, file uploadsservices/- Email and Socket.IO services
Frontend:
pages/student/- Student-specific pages (25+ pages)pages/faculty/- Faculty-specific pagespages/admin/- Admin-specific pages (20+ pages)pages/shared/- Shared components (ProjectDetails with chat)utils/api.js- Centralized API client
Documentation:
docs/- Comprehensive documentation (40+ markdown files)- Implementation plans
- Feature guides
- API references
- Workflow documentation
POST /api/auth/signup/student- Student registrationPOST /api/auth/signup/faculty- Faculty registrationPOST /api/auth/signup/admin- Admin registrationPOST /api/auth/signup/send-otp- Send OTP for signupPOST /api/auth/signup/verify-otp- Verify OTPPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutPOST /api/auth/forgot-password- Request password resetPOST /api/auth/reset-password- Reset passwordGET /api/auth/profile- Get user profilePUT /api/auth/profile- Update user profilePUT /api/auth/change-password- Change passwordGET /api/auth/verify- Verify JWT token
Dashboard & Profile:
GET /api/student/dashboard- Get dashboard dataGET /api/student/semester-features- Get semester-specific featuresGET /api/student/profile- Get student profilePUT /api/student/profile- Update student profile
Projects:
GET /api/student/projects- Get all student projectsPOST /api/student/projects- Register projectGET /api/student/projects/:id- Get project by IDPUT /api/student/projects/:id- Update projectPOST /api/student/projects/:id/submit- Submit deliverablesPOST /api/student/projects/minor2/register- Register Minor Project 2POST /api/student/projects/major1/register- Register Major Project 1POST /api/student/projects/major2/register- Register Major Project 2GET /api/student/projects/internship1/status- Check Internship 1 statusPOST /api/student/projects/internship1/register- Register Internship 1GET /api/student/projects/internship2/status- Check Internship 2 statusPOST /api/student/projects/internship2/register- Register Internship 2GET /api/student/projects/:projectId/allocation-status- Get faculty allocation status
Semester 4 Specific:
POST /api/student/projects/:id/submit-ppt- Upload PPTDELETE /api/student/projects/:id/remove-ppt- Remove PPTGET /api/student/projects/:id/download-ppt- Download PPTPOST /api/student/projects/:id/schedule-presentation- Schedule presentationGET /api/student/projects/:id/sem4-status- Get Sem 4 project status
Groups:
GET /api/student/groups- Get student groupsPOST /api/student/groups- Create groupGET /api/student/groups/:id- Get group by IDPUT /api/student/groups/:groupId- Update group nameGET /api/student/groups/available-students- Get available studentsGET /api/student/groups/invitations- Get group invitationsPOST /api/student/groups/:id/invite- Invite member to groupPOST /api/student/groups/:groupId/invite/:inviteId/accept- Accept invitationPOST /api/student/groups/:groupId/invite/:inviteId/reject- Reject invitationPOST /api/student/groups/:groupId/send-invitations- Send group invitationsGET /api/student/groups/available- Get available groupsPOST /api/student/groups/:groupId/leave- Leave groupPOST /api/student/groups/:groupId/transfer-leadership- Transfer leadershipPOST /api/student/groups/:groupId/finalize- Finalize groupPOST /api/student/groups/:groupId/faculty-preferences- Submit faculty preferences
Semester 6:
GET /api/student/projects/continuation- Get continuation projectsPOST /api/student/projects/continuation- Create continuation projectGET /api/student/sem6/pre-registration- Get Sem 5 group for Sem 6POST /api/student/sem6/register- Register Sem 6 projectGET /api/student/projects/:id/milestones- Get project milestonesPUT /api/student/projects/:id/milestones/:milestoneId- Update milestoneGET /api/student/projects/:id/progress- Get project progress
Semester 7:
GET /api/student/sem7/options- Get Sem 7 optionsPOST /api/student/internships/apply- Apply for internshipGET /api/student/projects/:id/analytics- Get major project analyticsGET /api/student/internships/progress- Get internship progress
Semester 8:
GET /api/student/graduation/status- Get graduation statusGET /api/student/portfolio- Get final project portfolioGET /api/student/projects/:id/comprehensive- Get comprehensive project summaryGET /api/student/academic-journey- Get academic journey
M.Tech:
GET /api/student/mtech/semester-options- Get M.Tech semester optionsGET /api/student/mtech/project-continuation- Get project continuation optionsPOST /api/student/mtech/internship/apply- Apply for M.Tech internshipGET /api/student/mtech/coursework/eligibility- Check coursework eligibilityGET /api/student/mtech/academic-path- Get M.Tech academic pathGET /api/student/mtech/sem2/pre-registration- Get Sem 1 project for Sem 2POST /api/student/mtech/sem2/register- Register M.Tech Sem 2 projectPOST /api/student/mtech/sem3/major-project/register- Register M.Tech Sem 3 major project
Internships:
GET /api/student/internships- Get student internshipsPOST /api/student/internships- Add internship
System Config:
GET /api/student/system-config/:key- Get system config for students
Dashboard & Profile:
GET /api/faculty/dashboard- Get faculty dashboardGET /api/faculty/profile- Get faculty profilePUT /api/faculty/profile- Update faculty profile
Students & Projects:
GET /api/faculty/students- Get assigned studentsGET /api/faculty/projects- Get assigned projectsPUT /api/faculty/projects/:id- Update projectPOST /api/faculty/projects/:id/evaluate- Evaluate project
Groups:
GET /api/faculty/groups- Get assigned groupsGET /api/faculty/groups/unallocated- Get unallocated groupsGET /api/faculty/groups/allocated- Get allocated groupsPOST /api/faculty/groups/:groupId/choose- Choose groupPOST /api/faculty/groups/:groupId/pass- Pass group
Allocations:
GET /api/faculty/allocations- Get allocation requestsPOST /api/faculty/allocations/:id/accept- Accept allocationPOST /api/faculty/allocations/:id/reject- Reject allocationPOST /api/faculty/projects/:requestId/choose- Choose project allocationPOST /api/faculty/projects/:requestId/pass- Pass project allocation
M.Tech Sem 3:
GET /api/faculty/mtech/sem3/major-projects/pending- Get pending M.Tech Sem 3 projectsPOST /api/faculty/mtech/sem3/major-projects/:projectId/choose- Choose M.Tech Sem 3 projectPOST /api/faculty/mtech/sem3/major-projects/:projectId/pass- Pass M.Tech Sem 3 project
Statistics & Notifications:
GET /api/faculty/statistics/sem5- Get Sem 5 statisticsGET /api/faculty/notifications- Get notificationsPATCH /api/faculty/notifications/:notificationId/dismiss- Dismiss notification
Dashboard & Profile:
GET /api/admin/dashboard- Get admin dashboardGET /api/admin/stats- Get system statisticsGET /api/admin/profile- Get admin profilePUT /api/admin/profile- Update admin profile
User Management:
GET /api/admin/users- Get all usersGET /api/admin/students- Search studentsGET /api/admin/students/by-semester- Get students by semesterPOST /api/admin/students/update-semesters- Update student semestersGET /api/admin/students/:studentId- Get student detailsPUT /api/admin/students/:studentId- Update student profilePOST /api/admin/students/:studentId/reset-password- Reset student passwordGET /api/admin/faculty- Get faculty listGET /api/admin/faculties- Search facultiesGET /api/admin/faculties/:facultyId- Get faculty detailsPUT /api/admin/faculties/:facultyId- Update faculty profilePOST /api/admin/faculties/:facultyId/reset-password- Reset faculty password
Project Management:
GET /api/admin/projects- Get all projectsPUT /api/admin/projects/:id/status- Update project status
Group Management:
GET /api/admin/groups- Get all groupsGET /api/admin/groups/:groupId- Get group detailsPUT /api/admin/groups/:groupId- Update group infoGET /api/admin/groups/:groupId/search-students- Search students for groupPOST /api/admin/groups/:groupId/members- Add member to groupDELETE /api/admin/groups/:groupId/members/:studentId- Remove member from groupPUT /api/admin/groups/:groupId/leader- Change group leaderDELETE /api/admin/groups/:groupId/disband- Disband groupPOST /api/admin/groups/:groupId/allocate-faculty- Allocate faculty to groupDELETE /api/admin/groups/:groupId/deallocate-faculty- Deallocate faculty from groupGET /api/admin/unallocated-groups- Get unallocated groups
Allocation Management:
GET /api/admin/allocations- Get all allocationsPOST /api/admin/force-allocate- Force faculty allocationGET /api/admin/allocation-statistics- Get allocation statistics
Semester-Specific Routes:
GET /api/admin/sem4/registrations- Get Sem 4 registrationsGET /api/admin/sem4/unregistered-students- Get unregistered Sem 4 studentsGET /api/admin/sem5/registrations- Get Sem 5 registrationsGET /api/admin/sem5/allocated-faculty- Get Sem 5 allocated facultyGET /api/admin/sem5/non-registered-students- Get Sem 5 non-registered studentsGET /api/admin/groups/sem5- Get Sem 5 groupsGET /api/admin/statistics/sem5- Get Sem 5 statisticsGET /api/admin/sem6/registrations- Get Sem 6 registrationsGET /api/admin/sem6/non-registered-groups- Get Sem 6 non-registered groupsGET /api/admin/statistics/sem6- Get Sem 6 statisticsGET /api/admin/sem7/track-choices- Get Sem 7 track choicesPATCH /api/admin/sem7/finalize/:studentId- Finalize Sem 7 trackGET /api/admin/sem7/internship1-track-choices- Get Internship 1 track choicesPATCH /api/admin/sem7/internship1-track/:studentId- Change Internship 1 trackGET /api/admin/sem8/track-choices- Get Sem 8 track choicesPATCH /api/admin/sem8/finalize/:studentId- Finalize Sem 8 track
M.Tech Routes:
GET /api/admin/mtech/sem1/registrations- Get M.Tech Sem 1 registrationsGET /api/admin/mtech/sem1/unregistered-students- Get unregistered M.Tech Sem 1 studentsGET /api/admin/statistics/mtech/sem1- Get M.Tech Sem 1 statisticsGET /api/admin/mtech/sem2/registrations- Get M.Tech Sem 2 registrationsGET /api/admin/mtech/sem2/unregistered-students- Get unregistered M.Tech Sem 2 studentsGET /api/admin/statistics/mtech/sem2- Get M.Tech Sem 2 statistics
System Configuration:
GET /api/admin/system-config- Get all system configurationsGET /api/admin/system-config/safe-minimum-limit- Get safe minimum faculty limitPOST /api/admin/system-config/initialize- Initialize system configsGET /api/admin/system-config/:key- Get system config by keyPUT /api/admin/system-config/:key- Update system config
Project Details:
GET /api/projects/student/current- Get student's current projectGET /api/projects/faculty/allocated- Get faculty's allocated projectsGET /api/projects/:projectId- Get project details
Chat & Messages:
GET /api/projects/:projectId/messages- Get project messagesPOST /api/projects/:projectId/messages- Send message (with file attachments)PUT /api/projects/:projectId/messages/:messageId- Edit messageDELETE /api/projects/:projectId/messages/:messageId- Delete messageGET /api/projects/:projectId/messages/search- Search messagesPOST /api/projects/:projectId/messages/:messageId/reactions- Add reactionDELETE /api/projects/:projectId/messages/:messageId/reactions/:emoji- Remove reactionGET /api/projects/:projectId/media- Get all media attachments
Files:
GET /api/projects/:projectId/files/:filename- Download chat file
Deliverables:
POST /api/projects/:projectId/deliverables/:deliverableType- Upload deliverableGET /api/projects/:projectId/deliverables/:filename- Download deliverableDELETE /api/projects/:projectId/deliverables/:deliverableType- Delete deliverable
Meetings:
POST /api/projects/:projectId/meeting- Schedule meetingPOST /api/projects/:projectId/meeting/complete- Complete meeting
Faculty Preferences:
POST /api/projects/:projectId/faculty-preferences- Submit faculty preferences
Semester 7 (/api/sem7):
POST /api/sem7/choice- Set Sem 7 track choiceGET /api/sem7/choice- Get Sem 7 track choiceGET /api/sem7/track-choices- List Sem 7 track choices (admin)
Semester 8 (/api/sem8):
GET /api/sem8/status- Get Sem 8 statusPOST /api/sem8/choice- Set Sem 8 track choiceGET /api/sem8/choice- Get Sem 8 track choiceGET /api/sem8/track-choices- List Sem 8 track choices (admin)
Semester 3 (/api/sem3):
POST /api/sem3/choice- Set Sem 3 track choiceGET /api/sem3/choice- Get Sem 3 track choiceGET /api/sem3/track-choices- List Sem 3 track choices (admin)
POST /api/internships/applications- Create internship applicationGET /api/internships/applications/my- Get my applicationsPATCH /api/internships/applications/:id- Update applicationGET /api/internships/applications- List all applications (admin)PATCH /api/internships/applications/:id/review- Review application (admin)GET /api/internships/applications/:id/files/:fileType- Download file
- β Full-Stack Development: Complete MERN stack implementation
- β Real-Time Features: Socket.IO for live updates and chat
- β Scalable Architecture: Modular, maintainable codebase
- β Security: JWT authentication, role-based access control
- β File Management: Secure file uploads with validation
- β Database Design: Optimized MongoDB schemas with relationships
- β Complex Workflows: Handles 8+ different semester workflows
- β Business Logic: Intelligent faculty allocation algorithm
- β State Management: Efficient React state and context management
- β Error Handling: Comprehensive error handling and validation
- β User Experience: Intuitive UI with real-time feedback
- β Clean Code: Well-structured, readable codebase
- β Documentation: 40+ comprehensive documentation files
- β Best Practices: Follows React and Node.js best practices
- β Reusability: Reusable components and utilities
- β Testing Ready: Structure supports easy testing
- β 25+ Student Pages: Complete student workflows
- β 20+ Admin Pages: Comprehensive admin management
- β Real-Time Chat: Advanced chat with editing, reactions, search
- β File Sharing: Multi-file upload with preview
- β Group Management: Dynamic group formation system
- β Evaluation System: Multi-criteria scoring system
- β Internship Management: Complete internship workflow
- Total Pages: 50+ React components
- API Endpoints: 80+ RESTful endpoints
- Database Models: 13 Mongoose schemas
- Documentation: 40+ markdown files
- Features: 30+ major features
- Semesters Supported: 8 B.Tech + 4 M.Tech = 12 semester workflows
- File Types Supported: 28+ file types
- Real-Time Events: 10+ Socket.IO events
SPMS@IIITP - Streamlining Project Management for Academic Excellence πβ¨