A modern, full-stack web application for managing academic course enrollments and user management within educational departments. Built with the MERN stack and featuring role-based access control.
- Admin: Full system management, user administration, course creation
- Instructor: Course management, student enrollment approval, Faculty Advisor capabilities
- Student: Course enrollment, status tracking, academic progress monitoring
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Modern Interface: Clean, professional design with smooth animations
- Intuitive Navigation: Sidebar navigation with role-based menu items
- Real-time Feedback: Toast notifications and loading states
- Course Creation: Admins can create and manage courses with detailed information
- Enrollment System: Multi-level approval workflow (Instructor → Faculty Advisor)
- Status Tracking: Real-time enrollment status updates
- Department Management: Organized by academic departments
- Secure Authentication: JWT-based authentication with OTP verification
- Role-based Access: Granular permissions based on user roles
- Profile Management: User profiles with department assignments
- Email Notifications: Automated email alerts for account creation and updates
- React.js - Modern UI library with hooks and functional components
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework for styling
- React Router - Client-side routing
- Axios - HTTP client for API communication
- Heroicons - Beautiful SVG icons
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- Nodemailer - Email sending functionality
Eims-DEP/
├── backend/
│ ├── index.js # Main server file
│ ├── modals/ # Database models
│ │ ├── user.modal.js # User schema
│ │ ├── course.modal.js # Course schema
│ │ └── otp.modal.js # OTP schema
│ └── utilities.js # Helper functions
├── frontend/
│ ├── src/
│ │ ├── Components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ │ ├── Dashboard/ # Role-based dashboards
│ │ │ ├── Login/ # Authentication pages
│ │ │ └── Home/ # Landing page
│ │ └── utils/ # Utility functions
│ └── package.json
└── README.md
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
-
Clone the repository
git clone https://github.com/Naveen0030/EIMS-Clg-Portal.git cd EIMS-Clg-Portal -
Install backend dependencies
cd backend npm install -
Install frontend dependencies
cd ../frontend npm install -
Environment Setup
Create
.envfile in the backend directory:MONGO_URI=your_mongodb_connection_string ACCESS_TOKEN_SECRET=your_jwt_secret EMAIL_USER=your_gmail_address EMAIL_PASS=your_gmail_app_password PORT=8000
-
Start the application
Backend:
cd backend npm startFrontend:
cd frontend npm run dev
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
POST /create-account- User registrationPOST /login- User loginPOST /send-otp- Send OTP for verificationPOST /verify-otp- Verify OTP and complete registrationGET /get-user- Get current user information
POST /add-course- Create new course (Admin only)GET /available-courses- Get available courses for studentsPOST /enroll-course- Enroll in a courseGET /enrolled-courses- Get user's enrolled courses
GET /all-users- Get all users (Admin only)POST /add-user- Add new user (Admin only)GET /view-user/:id- Get specific user details
GET /instructor/pending-enrollments- Get pending enrollmentsPOST /instructor/update-enrollment- Approve/reject enrollmentsGET /FetchCourses- Get instructor's courses
- Stats Cards: Real-time statistics for each role
- Quick Actions: Easy access to common tasks
- Profile Information: User details and account management
- Mobile-First: Optimized for mobile devices
- Sidebar Navigation: Collapsible navigation for mobile
- Touch-Friendly: Optimized for touch interactions
- JWT Authentication: Secure token-based authentication
- OTP Verification: Two-factor authentication via email
- Role-based Access: Granular permissions system
- Input Validation: Server-side and client-side validation
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- React.js community
- Tailwind CSS team
- MongoDB documentation
- Express.js framework
EIMS-Portal - Streamlining educational management with modern technology.