Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ TIMS - Training & Internship Management System

TIMS is a comprehensive, enterprise-grade Training & Internship Management System designed to streamline student onboarding, course scheduling, batch management, trainer allocation, attendance tracking, fee collection, project evaluations, and certificate issuance.

Built using a modern decoupled architecture, TIMS combines a high-performance Node.js/Express backend with a responsive, dynamic Next.js frontend.


πŸ“Έ System Screenshot

Here is a preview of the TIMS Home/Dashboard interface:

TIMS Home Dashboard


πŸš€ Key Features

πŸ” 1. Authentication & Security

  • Role-Based Access Control (RBAC): Custom levels of access for ADMIN, HR, TRAINER, and STUDENT.
  • Secure Authentication: Secure JWT-based session management, hashed passwords, rate limiting, and security headers (Helmet).
  • Audit Logging: Detailed tracking of critical actions across the system.

πŸ‘₯ 2. Student & Trainer Management

  • Profiles: Complete profile management for students and trainers, including document uploads (profile photos, leaves, materials).
  • Enrollments: Structured registration flow linked to specific courses and batches.

πŸ“š 3. Courses & Batches

  • Course Catalog: Easy creation and classification of courses.
  • Batch Scheduling: Flexible scheduling and management of batches.

πŸ“ 4. Attendance Tracking

  • Daily Log: Live attendance capturing with automated locking jobs (via BullMQ/Redis).
  • Visual Reports: Instant visual summaries of student and batch attendance rates.

πŸ’³ 5. Fee & Payment Management

  • Fee Structures: Tailored installment configurations.
  • Razorpay Integration: Secure payment gateway integration.
  • Automated Reminders: Automated fee reminder notifications.

πŸ› οΈ 6. Projects & Evaluations

  • Assignments: Distribution of projects/assignments to students.
  • Submissions: Easy submission portal for students.
  • Grading: Evaluation dashboard for trainers and admins to grade student work.

πŸ“œ 7. Certificate Issuance

  • Verification: Automatic or manual issuance of certificates upon course completion.
  • Public Verification: Unique URLs/IDs to verify certificates.

πŸ’¬ 8. Notifications & Real-Time Communication

  • WebSockets: Real-time system notifications and messaging powered by Socket.IO.

πŸ› οΈ Technology Stack

Frontend

  • Framework: Next.js (React)
  • State Management: Zustand
  • Styling: Tailwind CSS (Vanilla PostCSS)
  • Animations: Framer Motion
  • Charts & Analytics: ApexCharts
  • HTTP Client: Axios (with custom request/response interceptors)
  • Real-time Communication: Socket.IO Client

Backend

  • Runtime: Node.js
  • Framework: Express.js
  • Database ORM: Sequelize (PostgreSQL)
  • Job Queue: BullMQ / Redis (for background workers and email queueing)
  • File Uploads: Multer (categorized storage rules)
  • Validation: Joi / Zod
  • Logging: Winston & Morgan

βš™οΈ Setup & Installation

Prerequisites

  • Node.js (v18+ recommended)
  • PostgreSQL database
  • Redis server (for queues and caching)

1. Database Setup

  1. Create a PostgreSQL database:

    psql -U postgres -c "CREATE DATABASE tims_db;"
  2. Configure database connection URLs in your environment files.


2. Backend Setup

  1. Navigate to the Backend directory:
    cd Backend
  2. Install dependencies:
    npm install
  3. Configure environment variables by creating a .env file:
    PORT=5000
    NODE_ENV=development
    DATABASE_URL="postgresql://username:password@localhost:5432/tims_db"
    JWT_SECRET="your-super-secret-jwt-key"
    REDIS_HOST="127.0.0.1"
    REDIS_PORT=6379
  4. Run database synchronization scripts:
    npm run migrate
    # or run custom setup script
    node scripts/db_sync_and_seed.js
  5. Start the backend development server:
    npm run dev

3. Frontend Setup

  1. Navigate to the Frontend directory:
    cd ../Frontend
  2. Install dependencies:
    npm install
  3. Configure environment variables by creating a .env.local file:
    NEXT_PUBLIC_API_URL="http://localhost:5000/api/v1"
  4. Start the Next.js development server:
    npm run dev

Open http://localhost:3000 with your browser to see the application.


πŸ“‘ API Reference & Documentation

For detailed guides, please refer to:

About

πŸš€ An end-to-end Training & Internship Management System (TIMS) featuring real-time updates, automated fee reminders, and complete student/batch/trainer progress analytics. Built with Next.js, Node.js, Express, PostgreSQL, Redis, and WebSockets.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages