A comprehensive and unified school management platform designed to bridge the communication gap between teachers and parents. EduTrack not only tracks academic performance, attendance, and remarks but also features a cutting-edge built-in WebRTC video calling system for instant, real-time Parent-Teacher Meetings (PTM) directly from the browser.
Check out the live project here: EduTrack Live Demo
- Frontend: React.js, CSS3, Chart.js, Socket.io-client
- Backend: Node.js, Express.js
- Database: PostgreSQL
- Real-time Communication: WebRTC (Peer-to-peer Video Calls), Socket.io (Signaling & Notifications)
- Security & Utilities: JWT (JSON Web Tokens), Bcrypt (Password Hashing), PDFKit (Report Generation), Nodemailer (Automated Emails), Docker
- Secure Authentication: Role-based login (Teacher).
- Student Management: Full CRUD operations for managing student profiles.
- Smart Attendance: Daily attendance marking with automatic percentage calculation.
- Automated Grading System: Enter raw subject marks and let the database automatically calculate GPA, Grades, and overall Class Rank.
- Virtual PTM Calling: Initiate real-time video calls with parents using WebRTC technology.
- Remark System: Add specific behavioral, academic, or achievement remarks for students.
- Parent Dashboard: A centralized view of their child's academic journey.
- Auto-Alerts: Automated email notifications via Nodemailer if the child's attendance drops below 75%.
- Downloadable Reports: Instantly generate and download comprehensive PDF Report Cards.
- Incoming PTM Calls: Receive incoming video calls from teachers with a smooth UI popup, powered by WebSockets.
- Visual Performance: Analyze marks and progress through interactive charts (Chart.js).
Make sure you have Docker and Docker Compose installed.
# Clone the repository
git clone <your-repo-url>
cd Record_System
# Spin up the containers
docker-compose up --buildNote: The application will be available at
http://localhost:3000.
1. Setup the Backend:
cd Backend
npm install
# Make sure you have PostgreSQL running locally and create a database named 'edutrack'
# Start the backend server
npm run dev2. Setup the Frontend:
# Open a new terminal
cd frontend
npm install
# Start the React app
npm startCreate a .env file in the Backend directory with the following credentials:
PORT=5000
DB_HOST=localhost
DB_PORT=5432
DB_NAME=edutrack
DB_USER=postgres
DB_PASSWORD=your_postgres_password
JWT_SECRET=your_super_secret_jwt_key
NODE_ENV=development
EMAIL_USER=your_gmail@gmail.com
EMAIL_PASS=your_google_app_passwordRecord_System/
├── Backend/ # Node.js + Express Backend
│ ├── config/ # DB & Mailer Configurations
│ ├── controllers/ # Core Business Logic (Auth, Attendance, Marks, WebRTC)
│ ├── middleware/ # JWT Verification
│ ├── models/ # DB Migration Scripts / Schema
│ ├── routes/ # Express API Routes
│ ├── utils/ # Alert Services & PDF Generators
│ └── index.js # Main Server Entry Point
│
├── frontend/ # React.js Frontend
│ └── src/
│ ├── components/ # Reusable UI (VideoCall, IncomingCall)
│ ├── pages/ # Main Views (Dashboards, Login)
│ └── socket.js # Socket.io Client Instance
│
├── docker-compose.yml # Docker orchestration
└── README.md