Skip to content

habib-prog/edusphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Edusphere - Student Management System

Docker Node.js Version Express Version Database License: ISC

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.


🚀 Tech Stack

  • 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

🛠️ System Features

🔑 Core Authentication & Communication

  • 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.

👥 Role-Based Portals & Capabilities

🛡️ Admin Dashboard

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.
  • 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.

🧑‍🏫 Teacher Dashboard

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.

🎓 Student Portal

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}.

📂 Project Structure

├── 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

⚙️ Installation & Setup

  1. Clone the Repository:

    git clone https://github.com/habib-prog/edusphere.git
    cd edusphere
  2. Install Dependencies:

    npm install
  3. Set Up Environment Variables: Create a .env file in the root directory:

    PORT=8000
    Database=your_mongodb_connection_uri
    JWT_SECRET=your_jwt_secret_key
  4. Run the Server:

    • Development Mode (auto-reloading):
      npm run dev
    • Production Mode:
      npm start

🛡️ License

This project is licensed under the ISC License.

About

EduSphere is a smart student management system that streamlines academic workflows. It empowers admins to manage notices, batches, teacher setups, and student records (including ID cards & requests). Teachers can track attendance and evaluate results, while students view performance charts, print results, pay fees, and give feedback.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors