Trackademy is a role-based academic management system designed to manage institutional workflows such as users, departments, courses, faculty, students, and attendance sessions. The platform provides backend APIs for managing academic data and tracking attendance through a structured course and user hierarchy.
The project follows a modular backend architecture using Express.js and PostgreSQL and separates functionality into controllers, routes, middleware, and database query layers.
This repository contains the backend services, database structure, and frontend resources required to run the system.
- Secure authentication using JSON Web Tokens (JWT)
- Password hashing using bcrypt
- Role-based access control for different user types
- Create and manage users
- Role-based user access
- Faculty and student management
- Department management
- Course management
- Session management
- Attendance session creation
- Student attendance tracking
- Attendance retrieval APIs
- Request validation
- Secure headers using Helmet
- Logging using Morgan
- CORS support
Backend Framework Express.js
Runtime Node.js
Database PostgreSQL
Authentication JWT (jsonwebtoken)
Password Security bcrypt / bcryptjs
Environment Configuration dotenv
Logging Morgan
Validation express-validator
Security Middleware Helmet
Trackademy
│
├── Backend
│ ├── controllers
│ │ ├── attendanceController.js
│ │ ├── authController.js
│ │ ├── courseController.js
│ │ ├── departmentController.js
│ │ ├── facultyController.js
│ │ ├── sessionController.js
│ │ ├── studentController.js
│ │ └── userController.js
│ │
│ ├── routes
│ ├── middleware
│ ├── queries
│ ├── config
│ └── server.js
│
├── Database
│
├── Frontend
│
├── package.json
└── init_project.bat
The backend follows a layered architecture:
Client
│
▼
Routes
│
▼
Controllers
│
▼
Database Query Layer
│
▼
PostgreSQL Database
Define API endpoints and map them to controllers.
Handle business logic and process requests.
Contain SQL queries used for database interaction.
Used for authentication, authorization, and request validation.
git clone https://github.com/Static1016/Trackademy.git
cd Trackademy
From the backend directory:
cd Backend
npm install
Create a .env file in the Backend directory.
Example configuration:
PORT=3000
DATABASE_URL=postgresql://username:password@localhost:5432/trackademy
JWT_SECRET=your_secret_key
npm run start:server
Development mode with auto-reload:
npx nodemon server.js
The backend includes controllers for the following modules:
| Module | Description |
|---|---|
| Authentication | Login and authentication logic |
| Users | User management |
| Faculty | Faculty operations |
| Students | Student management |
| Departments | Department structure |
| Courses | Course creation and management |
| Sessions | Academic session management |
| Attendance | Attendance tracking system |
The system uses PostgreSQL for persistent storage.
Database scripts and schemas are located in the Database directory.
Typical entities include:
- Users
- Students
- Faculty
- Departments
- Courses
- Sessions
- Attendance records
The backend uses:
- Morgan for request logging
- Environment-based configuration using dotenv
- Structured API responses for easier debugging
- Password hashing with bcrypt
- Token-based authentication with JWT
- Secure HTTP headers with Helmet
- CORS protection for cross-origin requests
Possible enhancements for the project include:
- Role-based dashboards
- Automated attendance analytics
- Real-time attendance tracking
- Notification system
- Docker containerization
- Deployment pipelines
This project is intended for academic and educational purposes.