Skip to content

Static1016/Trackademy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

369 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trackademy

Overview

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.


Core Features

Authentication and Authorization

  • Secure authentication using JSON Web Tokens (JWT)
  • Password hashing using bcrypt
  • Role-based access control for different user types

User Management

  • Create and manage users
  • Role-based user access
  • Faculty and student management

Academic Structure

  • Department management
  • Course management
  • Session management

Attendance System

  • Attendance session creation
  • Student attendance tracking
  • Attendance retrieval APIs

API Security and Middleware

  • Request validation
  • Secure headers using Helmet
  • Logging using Morgan
  • CORS support

Technology Stack

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


Project Structure

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

Backend Architecture

The backend follows a layered architecture:

Client
   │
   ▼
Routes
   │
   ▼
Controllers
   │
   ▼
Database Query Layer
   │
   ▼
PostgreSQL Database

Routes

Define API endpoints and map them to controllers.

Controllers

Handle business logic and process requests.

Queries

Contain SQL queries used for database interaction.

Middleware

Used for authentication, authorization, and request validation.


Installation and Setup

1. Clone the Repository

git clone https://github.com/Static1016/Trackademy.git
cd Trackademy

2. Install Dependencies

From the backend directory:

cd Backend
npm install

3. Configure Environment Variables

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

4. Start the Backend Server

npm run start:server

Development mode with auto-reload:

npx nodemon server.js

API Modules

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

Database

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

Logging and Monitoring

The backend uses:

  • Morgan for request logging
  • Environment-based configuration using dotenv
  • Structured API responses for easier debugging

Security Features

  • Password hashing with bcrypt
  • Token-based authentication with JWT
  • Secure HTTP headers with Helmet
  • CORS protection for cross-origin requests

Future Improvements

Possible enhancements for the project include:

  • Role-based dashboards
  • Automated attendance analytics
  • Real-time attendance tracking
  • Notification system
  • Docker containerization
  • Deployment pipelines

License

This project is intended for academic and educational purposes.

About

Backend for an academic management system with authentication, RBAC, course management and attendance tracking.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages