Skip to content

BattermanZ/OnTrak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

129 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OnTrak Training Management System πŸ‹οΈβ€β™‚οΈ

OnTrak is a comprehensive training management system designed specifically for Learning & Development (L&D) teams to standardize, execute, and analyze training programs across multiple locations. It bridges the gap between training design and delivery by providing real-time tracking, execution support, and performance analytics.

πŸ“‹ What is OnTrak?

OnTrak helps L&D teams solve common training challenges:

  • Standardization: Ensure consistent training delivery across different locations and trainers
  • Real-time Execution: Track and manage training activities as they happen
  • Performance Analysis: Measure adherence to training plans and identify improvement areas
  • Multi-location Support: Manage training across different timezones and locations
graph TD
    A[Training Templates] -->|Select & Start Day| B[Active Training Schedule]
    B -->|Track Activities| C[Real-time Execution]
    C -->|Complete Training| D[Performance Data]
    D -->|Analyze| E[Statistics & Reports]
    E -->|Improve| A
Loading

🎯 Benefits for L&D Teams

Challenge OnTrak Solution Business Impact
Inconsistent training delivery Standardized templates with precise timing Improved training quality and outcomes
Difficulty tracking adherence Real-time activity tracking Better compliance and quality control
Limited visibility into training execution Comprehensive statistics and reporting Data-driven training improvements
Managing training across locations Multi-timezone support Consistent global training operations
Manual training administration Digital tracking and reporting Reduced administrative overhead
Training program improvements Performance analytics Continuous improvement of training programs

🌟 Key Features

  • Template Management

    • Create reusable training plans with day-by-day activities
    • Organize activities with precise timing requirements
    • Tag and categorize templates for easy discovery
  • Training Execution

    • Start training days from templates with one click
    • Navigate through activities with clear timing guidance
    • Track actual vs. planned timing for each activity
  • Performance Analytics

    • Measure adherence to training schedules
    • Analyze timing variances (early/on-time/late)
    • Compare performance across trainers and programs
  • User Management

    • Role-based access (Admin/Trainer)
    • Location-based settings with timezone support
    • Secure authentication system
flowchart LR
    subgraph "Admin Functions"
    A[Create Templates] --> B[Manage Users]
    B --> C[View Analytics]
    C --> D[System Management]
    end
    
    subgraph "Trainer Functions"
    E[Start Training Day] --> F[Execute Activities]
    F --> G[Track Progress]
    G --> H[View Personal Stats]
    end
    
    A -.-> E
    C -.-> H
Loading

πŸ’» Technical Overview

  • Frontend: React, TypeScript, Shadcn UI components
  • Backend: Node.js, Express, MongoDB
  • Real-time Updates: WebSocket integration
  • Deployment: Docker containerization

πŸ—οΈ Project Structure

ontrak/
β”œβ”€β”€ client/               # Frontend application
β”‚   β”œβ”€β”€ src/              # Source code
β”‚   β”‚   β”œβ”€β”€ components/   # React components
β”‚   β”‚   β”œβ”€β”€ contexts/     # React contexts
β”‚   β”‚   β”œβ”€β”€ pages/        # Page components
β”‚   β”‚   β”œβ”€β”€ services/     # API services
β”‚   β”‚   └── utils/        # Utility functions
β”‚   β”œβ”€β”€ public/           # Static files
β”‚   └── Dockerfile        # Frontend container config
β”‚
β”œβ”€β”€ server/               # Backend application
β”‚   β”œβ”€β”€ src/              # Source code
β”‚   β”‚   β”œβ”€β”€ config/       # Configuration files
β”‚   β”‚   β”œβ”€β”€ models/       # Database models
β”‚   β”‚   β”œβ”€β”€ routes/       # API routes
β”‚   β”‚   └── utils/        # Utility functions
β”‚   β”œβ”€β”€ database/         # MongoDB data directory
β”‚   β”œβ”€β”€ logs/             # Application logs
β”‚   └── Dockerfile        # Backend container config
β”‚
β”œβ”€β”€ scripts/              # Utility scripts
β”œβ”€β”€ database/             # Database files
β”œβ”€β”€ documentations/       # Project documentation
└── docker-compose.yml    # Container orchestration

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher) πŸ“¦
  • MongoDB (v4.4 or higher) πŸ—„οΈ
  • Docker (optional, for containerized deployment) 🐳

Development Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/ontrak.git
    cd ontrak
  2. Set up environment variables:

    • Copy .env.example to .env
    • Update the variables as needed
    cp .env.example .env
  3. Install dependencies:

    # Install backend dependencies
    cd server
    npm install
    
    # Install frontend dependencies
    cd ../client
    npm install
  4. Start MongoDB:

    • macOS: brew services start mongodb-community
    • Linux: sudo systemctl start mongod
    • Windows: MongoDB runs as a Windows Service
  5. Start development servers:

    # Start backend (from server directory)
    npm run dev
    
    # Start frontend (from client directory)
    npm start

The application will be available at:

Production Deployment (Docker) 🐳

OnTrak uses two containers in production:

  1. Frontend Container:

    • Nginx server serving the React application
    • Exposed on port 3000
    • Optimized build with minimal footprint
  2. Backend Container:

    • Node.js server running the API
    • Exposed on port 3456
    • Includes automatic backup system
    • Handles database connections

To deploy using Docker:

# Build and start containers
docker-compose up -d

# View logs
docker-compose logs -f

The application will be available at:

πŸ“ Volume Mounts

Docker deployment uses the following volume mounts:

  • /app/logs: Application logs
  • /app/backups: Database backups
  • /app/database: MongoDB data
  • /.env: Environment configuration

πŸ”§ Configuration

Key environment variables:

  • NODE_ENV: Application environment (development/production)
  • CLIENT_URL: Frontend application URL
  • BACKEND_URL: Backend API URL
  • MONGODB_URI: MongoDB connection string
  • JWT_SECRET: Secret key for authentication

See .env.example for all available options.

πŸ›‘οΈ Security Features

  • JWT-based authentication
  • Role-based access control
  • Rate limiting
  • Secure password hashing
  • Input validation
  • Error logging

πŸ“Š Monitoring

  • Application logs in /server/logs
  • MongoDB database backups in /server/backups
  • Error tracking and reporting
  • Performance monitoring

πŸ”„ Backup Management

  • Daily backups are stored in a separate backup location
  • Keep last 7 daily backups
  • Keep last 4 weekly backups
  • Keep last 3 monthly backups

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

πŸ†˜ Support

For support, please contact:

πŸ™ Acknowledgments

  • MongoDB team
  • React team
  • Node.js community
  • All contributors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors