Edusphere is a robust, Dockerized, role-based Student Management System and Educational ERP API designed to streamline academic operations. Leveraging a high-performance Redis caching layer for optimal speed, it provides comprehensive portals for Admins, Teachers, and Students, allowing smooth coordination of classes, results, attendance, notices, and user requests.
- Containerization: Docker
- Runtime Environment: Node.js (ES Modules)
- Backend Framework: Express.js (v5)
- Database: MongoDB & Mongoose (ODM)
- Caching & Message Broker: Redis
- Authentication & Security: JWT (JSON Web Tokens) & BcryptJS
- Validation: Joi
- Testing Framework: Vitest
- Email Service: Nodemailer
- CORS Utility: CORS for cross-origin resource sharing
- Notice Board (CRUD): Create, read, update, and delete announcements. Includes social features:
- Likes on notices
- Comments thread on notices
- Authentication System:
- Registration with role definition and secure password hashing using Bcrypt
- Secure Login with JWT generation
- Logout session termination
- Batch Management (CRUD): Organize students and courses into distinct study batches.
- Teacher Assignment: Dynamically assign educators to specific student batches.
The Admin portal manages the complete directory of teachers, students, and batch assignments:
- Student Management:
- Add Student: Secure creation requiring
{email, phone, password}. - Student List & Filter: Fetch list with batch-wise filtering options.
- Edit Student Details: Modify academic or personal details.
- Delete Student: Remove inactive or graduated student records.
- Student Search: Search students by name, email, or registry ID.
- Add Student: Secure creation requiring
- Approval System:
- Manage Pending Requests: Review registration requests, with features to Accept or Delete pending accounts.
- Teacher Management:
- Add Teacher: Set up educator profiles.
- Teacher Directory: List all active teachers.
- Edit / Delete Teacher: Manage teaching staff profiles and access levels.
- Administrative Outputs:
- Student ID Card Generation: Print-ready template formatting.
- Result Sheet Printing: Generate print-ready transcripts for batches or individuals.
- Feedback Collection:
- Review Reader: Read and analyze feedback submitted by students.
Features tailored for teachers to evaluate performance and track student progress:
- Attendance Tracking:
- Mark daily/weekly Student Attendance for assigned batches.
- Performance Evaluation:
- Result Sheet Input: Add, edit, and publish grades and exam scores.
- Student Performance Assessment: Evaluate and comment on student progress.
A personalized panel for students to manage their academic life:
- Profile Management (CRUD): Keep personal profile details up-to-date.
- Academic Viewer:
- View Results: Check grades and download/print official result sheets.
- Attendance Analytics: Interactive visual charts tracking attendance records over semesters.
- Tuition & Payments:
- Online portal integration to track and complete school fee payments.
- Review & Feedback:
- Feedback Creator: Create and submit experience reviews/feedback to the administration.
- Access Control:
- Registration & Login with required fields:
{email, phone, password}.
- Registration & Login with required fields:
├── server.js # Entry point of the application
├── package.json # Dependencies and scripts configuration
├── .gitignore # Ignored files (node_modules, .env, etc.)
└── src/
├── config/ # DB and system configurations
├── constant/ # Constants (Roles: student, teacher, admin)
├── controllers/ # Request handlers (Auth, Student, Teacher, Admin)
├── middlewares/ # Authentication and authorization guards
├── models/ # Mongoose schemas (User, Notice, Batch, etc.)
├── routes/ # Express API routing
└── services/ # Business logic layer-
Clone the Repository:
git clone https://github.com/habib-prog/edusphere.git cd edusphere -
Install Dependencies:
npm install
-
Set Up Environment Variables: Create a
.envfile in the root directory:PORT=8000 Database=your_mongodb_connection_uri JWT_SECRET=your_jwt_secret_key
-
Run the Server:
- Development Mode (auto-reloading):
npm run dev
- Production Mode:
npm start
- Development Mode (auto-reloading):
This project is licensed under the ISC License.