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.
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
| 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 |
-
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
- Frontend: React, TypeScript, Shadcn UI components
- Backend: Node.js, Express, MongoDB
- Real-time Updates: WebSocket integration
- Deployment: Docker containerization
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
- Node.js (v16 or higher) π¦
- MongoDB (v4.4 or higher) ποΈ
- Docker (optional, for containerized deployment) π³
-
Clone the repository:
git clone https://github.com/yourusername/ontrak.git cd ontrak -
Set up environment variables:
- Copy
.env.exampleto.env - Update the variables as needed
cp .env.example .env
- Copy
-
Install dependencies:
# Install backend dependencies cd server npm install # Install frontend dependencies cd ../client npm install
-
Start MongoDB:
- macOS:
brew services start mongodb-community - Linux:
sudo systemctl start mongod - Windows: MongoDB runs as a Windows Service
- macOS:
-
Start development servers:
# Start backend (from server directory) npm run dev # Start frontend (from client directory) npm start
The application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:3456
OnTrak uses two containers in production:
-
Frontend Container:
- Nginx server serving the React application
- Exposed on port 3000
- Optimized build with minimal footprint
-
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 -fThe application will be available at:
- Frontend: http://your-ip:3000
- Backend: http://your-ip:3456
Docker deployment uses the following volume mounts:
/app/logs: Application logs/app/backups: Database backups/app/database: MongoDB data/.env: Environment configuration
Key environment variables:
NODE_ENV: Application environment (development/production)CLIENT_URL: Frontend application URLBACKEND_URL: Backend API URLMONGODB_URI: MongoDB connection stringJWT_SECRET: Secret key for authentication
See .env.example for all available options.
- JWT-based authentication
- Role-based access control
- Rate limiting
- Secure password hashing
- Input validation
- Error logging
- Application logs in
/server/logs - MongoDB database backups in
/server/backups - Error tracking and reporting
- Performance monitoring
- Daily backups are stored in a separate backup location
- Keep last 7 daily backups
- Keep last 4 weekly backups
- Keep last 3 monthly backups
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
For support, please contact:
- Email: support@ontrak.com
- Issues: GitHub Issues page
- MongoDB team
- React team
- Node.js community
- All contributors