A comprehensive web application for managing academic departments, including courses, materials, and user management with different roles (students, lecturers, and admins).
The Department Management System (DMS) is designed to streamline educational operations by providing a platform for course management, student enrollment, learning materials distribution, and administrative tasks. The application features role-based access controls, real-time updates, and a responsive user interface.
- Authentication & Authorization
- User registration and login
- JWT-based authentication
- Role-based access control (Student, Lecturer, Admin)
- Password hashing with bcrypt
- Create, view, update, and delete courses
- Course enrollment for students
- Course assignment for lecturers
- Course details with enrolled students
- Upload and manage course materials
- Download materials
- Organize materials by course
- User Management
- User profiles with role information
- Update user details
- View enrolled/teaching courses
- Next.js
- TypeScript
- Tailwind CSS
- Axios for API requests
- React Toastify for notifications
- Express.js
- TypeScript
- MongoDB with Mongoose
- JWT for authentication
- Multer for file uploads
- CORS for cross-origin requests
- Comprehensive user management system
- Bulk actions for courses and users
- Analytics dashboard for administrators
- User activity monitoring
- System-wide announcements
- Integration of academic levels (100L, 200L, etc.)
- Semester/session-based course organization
- Prerequisite course relationships
- Academic calendar integration
- Course credit system
- Improved landing page with feature highlights
- Swagger documentation for the API
- Social authentication (Google, Facebook)
- WebSocket integration for real-time notifications
- Mobile application development
- API rate limiting and caching
- Class scheduling and timetable generation
- Calendar integration
- Exam and assignment submission portals
- Grade management system
- Student performance analytics
- Discussion forums for courses
- Attendance tracking
- Grading tools
- Automated notification system for upcoming classes
- Integration with video conferencing for virtual classes
- Course material version control
- Assignment creation and management
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT LICENSE.