A full-stack, production-ready Student Counselling Management System built using the MERN stack (MongoDB, Express, React, Node.js). This platform enables students to book appointments, counselors to manage sessions and confidential notes, and administrators to oversee system activity.
- User Roles & Authentication: Secure sign-in and registration for Students, Counselors, and Administrators using JWT.
- Student Dashboard:
- Manage personal profile and information.
- Browse available counselors and book appointments.
- View upcoming and past counseling sessions.
- Counselor Dashboard:
- View filtered lists of appointments and completed sessions.
- Interactive navigation for managing daily schedules.
- View student profile details directly within the appointment dashboard.
- Manage confidential session notes.
- Admin Dashboard: Oversee system activity, users, and overall management.
- Real-time Features: Integrated with Socket.io for potential real-time notifications or chat.
- React 19 (via Vite)
- Tailwind CSS & Autoprefixer (Styling)
- React Router DOM (Routing)
- Axios (API Requests)
- Lucide React (Icons)
- Sonner (Toast notifications)
- Node.js & Express.js
- MongoDB & Mongoose (Database & ODM)
- JSON Web Token (JWT) & bcryptjs (Authentication & Security)
- Socket.io (Real-time communication)
- Multer (File uploads, e.g., profile pictures)
- Nodemailer (Email services)
- Node.js (v18 or higher recommended)
- MongoDB (Local instance or MongoDB Atlas cluster)
- npm or yarn
git clone <repository-url>
cd student_c_mInstall the root dependencies (which include concurrently for running both servers):
npm installInstall backend dependencies:
cd Backend
npm install
cd ..Install frontend dependencies:
cd Frontend
npm install
cd ..Create .env files in both the Backend and Frontend directories as needed.
Backend (Backend/.env) Example:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/student_counselling_db # Or your MongoDB Atlas connection string
JWT_SECRET=your_jwt_secret_keyYou can start both the frontend and backend servers simultaneously from the root directory using:
npm run devAlternatively, you can run them separately:
- Backend only:
npm run server - Frontend only:
npm run client
The frontend will typically run on http://localhost:5173 (Vite default) and the backend on the port specified in your .env (e.g., http://localhost:5000).
student_c_m/
├── Backend/ # Express/Node.js Server
│ ├── controllers/ # Request handlers
│ ├── routes/ # API routes
│ ├── models/ # Mongoose database models
│ ├── server.js # Entry point for backend
│ └── package.json
├── Frontend/ # React/Vite Client Application
│ ├── src/
│ │ ├── pages/ # React component pages (admin, student, counselor)
│ │ ├── components/ # Reusable UI components
│ │ └── App.jsx
│ └── package.json
├── package.json # Root package.json (concurrently scripts)
└── README.md