Skip to content

rushi-wagh/CampusHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CampusHub REST API A backend API for a Campus Portal system with Role-Based Access Control (RBAC) for Students, Faculty, and Admins. Built using Node.js, Express, and MongoDB.

πŸ‘₯ Roles

Student: View announcements, own results, courses, and materials

Faculty: Post announcements, upload course materials, view results

Admin: Manage users, publish results, create courses, full access

πŸ” Features JWT Authentication for secure login

API Key required for protected routes

Role-based route protection using middleware

CRUD for announcements, results, courses, and materials

Admin user management

Postman collection for testing

πŸ“Œ Routes Auth

POST /auth/register β†’ Register user (default role: student)

POST /auth/login β†’ Login and get JWT

POST /auth/api-key β†’ Generate API Key

GET /auth/me β†’ Current user profile

Announcements

POST /announcements β†’ Faculty/Admin only

GET /announcements β†’ All roles

Results

POST /results β†’ Admin only

GET /results/:studentId β†’ Student (own), Faculty/Admin (any)

Courses & Materials

GET /courses β†’ All roles

POST /courses β†’ Admin only

POST /courses/:courseId/materials β†’ Faculty only

GET /courses/:courseId/materials β†’ Student/Faculty

Admin

GET /admin/users β†’ List all users

PUT /admin/users/:id/role β†’ Change user role

πŸ›  Tech Stack Node.js | Express.js | MongoDB

πŸ“‚ Postman Collection https://rushikeshwagh-2864771.postman.co/workspace/Rushikesh-Wagh's-Workspace~f27b2980-6629-4d1d-8d72-91d36eb3eeb4/collection/45876881-893080ea-d7ba-414f-8dde-8f1716ec7d97?action=share&creator=45876881

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published