TrackWise is a comprehensive, role-based learning management and task tracking system designed for educational institutions, bootcamps, and mentorship programs. It enables seamless collaboration between educators and students through intelligent task management, real-time progress tracking, AI-powered tutoring, and interactive communication.
Built on the modern MERN (MongoDB, Express, React, Node.js) stack with JWT authentication and role-based access control, TrackWise provides an intuitive interface for managing educational workflows at scale.
- Features
- Tech Stack
- Architecture
- Installation & Setup
- Project Structure
- API Endpoints
- Configuration
- Usage Guide
- Use Cases
- Contributing
- License
- Comprehensive Dashboard β Centralized hub for managing all students, programs, and tasks
- Task Creation & Assignment β Create, assign, and manage tasks with deadlines and difficulty levels
- AI-Powered Task Generation β Automatically generate exercises and coding tasks using AI
- Real-time Monitoring β Live tracking of student progress, submissions, and performance metrics
- Student Analytics β Detailed performance reports, completion rates, and progress visualization
- Communication Tools β Direct messaging with students through integrated chat system
- Trainer Management β Admin panel to add and manage multiple trainers
- Personal Dashboard β View assigned tasks, deadlines, and progress overview
- Task Management β Submit solutions, track task status (pending, in-progress, completed)
- Progress Tracking β Visual representation of learning progress and achievements
- AI Tutor β Interactive AI-powered tutoring system for concept clarification and problem-solving
- Real-time Chat β Direct messaging with trainers for immediate assistance
- Program Enrollment β Browse and enroll in available training programs
- Performance Analytics β Personal performance metrics and improvement suggestions
- User Management β Create and manage admin accounts, trainers, and students
- Program Management β Create, update, and delete training programs
- System Overview β Monitor overall platform usage and performance
- Role-Based Access Control β Manage permissions and access levels for all users
- Authentication Management β Secure JWT token-based authentication and password reset
- Intelligent Task Generator β Generate contextual programming tasks and exercises
- AI Tutoring System β Real-time AI assistant to help students understand concepts
- Adaptive Learning β AI suggestions based on student performance and learning patterns
- Real-time Chat β Instant messaging between trainers and students
- Chat Rooms β Topic-based discussion channels
- Message Persistence β All conversations stored for future reference
- Notification System β Real-time alerts for new messages and task updates
- Progress Charts β Visual representation of student progress over time
- Performance Metrics β Completion rates, time spent, and accuracy metrics
- Leaderboards β Rank students based on performance and task completion
- Export Reports β Generate downloadable progress reports (CSV, PDF)
- React.js 18.3 β Modern UI library with hooks and functional components
- Vite 6.0 β Ultra-fast build tool and development server
- Redux Toolkit & React-Redux β State management for complex application state
- React Router v6 β Client-side routing and navigation
- Tailwind CSS β Utility-first CSS framework for responsive design
- Recharts β Data visualization and charting library
- React Calendar β Calendar component for date selection
- Axios β HTTP client for API communication
- React Hot Toast β Toast notifications for user feedback
- React Modal β Modal dialog component
- Lucide React β Icon library
- Node.js & Express.js β Fast, scalable server framework
- MongoDB β NoSQL database for flexible data storage
- Mongoose β MongoDB object modeling (ODM)
- JWT (jsonwebtoken) β Secure token-based authentication
- Bcrypt/Bcryptjs β Password hashing and encryption
- CORS β Cross-origin resource sharing middleware
- SendGrid β Email service for notifications and password resets
- Node-cron β Task scheduling for automated operations
- Moment.js β Date and time manipulation
- Dotenv β Environment variable management
- ESLint β Code quality and style checking
- Nodemon β Auto-restart server during development
- Vercel β Deployment platform for frontend
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client Layer (React + Vite) β
β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββ β
β β Auth Pages β β Dashboards β β Componentsβ β
β β - Login/Signup β β - Admin β β - Chat β β
β β - Reset Passwordβ β - Trainer β β - Tasks β β
β ββββββββββββββββββββ β - Student β β - Programsβ β
β ββββββββββββββββββββ ββββββββββββββ β
β Redux Store (State Management) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββ
Axios HTTP Client (REST API)
ββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Server Layer (Express.js) β
β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββ β
β β Routes β β Controllers β β Middleware β β
β β - Admin β β - Auth Control β β - JWT Verifyβ β
β β - Trainer β β - Task Control β β - Role Checkβ β
β β - Student β β - AI Control β β β β
β β - Chat β β - Chat Control β ββββββββββββββ β
β β - AI β ββββββββββββββββββββ β
β ββββββββββββββββββββ β
β Services (Business Logic) β
β ββ ChatService ββ TaskGenerationService β
β ββ TutorService ββ LLM Client (AI Integration) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Database Layer (MongoDB) β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Users β β Programs β β Tasks β β Messages β β
β β Schemas β β Schemas β β Schemas β β Schemas β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TrackWise/
βββ client/ # React Frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ AdminAuthCard/
β β β βββ StudentAuthCard/
β β β βββ TrainerAuthCard/
β β β βββ Header/
β β β βββ Sidebar/
β β β βββ ProgramCard/
β β β βββ ManageProgramCard/
β β β βββ CreateProgram/
β β β βββ ProgramChat/
β β β βββ StudentAITutor/
β β β βββ AddTrainerPanel/
β β β βββ ProfileModal/
β β β βββ Calendar/
β β β βββ Loader/
β β β βββ ResetPassword/
β β βββ pages/ # Page components
β β β βββ AuthPage/ # Login/Registration
β β β βββ Dashboard/ # Admin Dashboard
β β β βββ TrainerDashboard/
β β β βββ StudentDashboard/
β β β βββ Programs/
β β β βββ Trainers/
β β βββ redux/ # State management
β β β βββ store.js
β β β βββ actions/ # Redux actions
β β β βββ reducers/ # Redux reducers
β β βββ services/ # API communication
β β β βββ AdminOperations.js
β β β βββ StudentOperations.js
β β β βββ TrainerOperations.js
β β β βββ ChatOperations.js
β β β βββ AIOperations.js
β β β βββ TokenOperations.js
β β βββ hooks/ # Custom React hooks
β β β βββ useChatApi.js
β β β βββ useToast.jsx
β β βββ assets/ # Static assets
β β β βββ icons/
β β β βββ illustrations/
β β βββ App.jsx
β β βββ main.jsx
β β βββ App.css
β β βββ index.css
β βββ package.json
β βββ vite.config.js
β βββ eslint.config.js
β βββ index.html
β
βββ server/ # Node.js Backend
β βββ controllers/ # Route controllers
β β βββ adminController.js
β β βββ studentController.js
β β βββ trainerController.js
β β βββ aiController.js
β β βββ chatController.js
β β βββ index.js
β βββ routes/ # API routes
β β βββ adminRoutes.js
β β βββ studentRoutes.js
β β βββ trainerRoutes.js
β β βββ aiRoutes.js
β β βββ chatRoutes.js
β β βββ tokenRoutes.js
β βββ models/ # MongoDB schemas
β β βββ adminSchema.js
β β βββ studentSchema.js
β β βββ trainerSchema.js
β β βββ programSchema.js
β β βββ AITask.js
β β βββ AITutorContext.js
β β βββ chatMessage.js
β β βββ chatRoom.js
β β βββ counterSchema.js
β βββ services/ # Business logic
β β βββ chatService.js
β βββ aiServices/ # AI-related services
β β βββ llmClient.js # LLM integration
β β βββ taskGenerationService.js # Task AI generation
β β βββ tutorService.js # Tutor AI logic
β βββ middleware/ # Express middleware
β β βββ roleMiddleware.js # Role-based access
β β βββ verifyTokenMiddleWare.js # JWT verification
β βββ config/ # Configuration
β β βββ db.js # MongoDB connection
β βββ utils/ # Utility functions
β β βββ jwt.js # JWT operations
β βββ scripts/ # Setup scripts
β β βββ createDefaultAdmin.js # Initialize admin account
β βββ index.js # Server entry point
β βββ package.json
β
βββ README.md # This file
- Node.js (v16 or higher)
- npm or yarn package manager
- MongoDB (local or cloud instance like MongoDB Atlas)
- Git for version control
git clone https://github.com/yourusername/trackwise.git
cd trackwisecd server
# Install dependencies
npm install
# Create .env file
echo > .envConfigure your .env file:
MONGODB_URI=mongodb://localhost:27017/trackwise
# or for MongoDB Atlas:
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/trackwise
JWT_SECRET=your_super_secret_jwt_key_here_make_it_strong
SENDGRID_API_KEY=your_sendgrid_api_key
SENDGRID_FROM_EMAIL=noreply@trackwise.com
NODE_ENV=development
PORT=7000
Start the backend server:
npm start
# or for development with auto-reload:
npx nodemon index.jsThe server should run on http://localhost:7000
cd ../client
# Install dependencies
npm install
# Create .env file
echo > .env.localConfigure your .env.local file:
VITE_API_BASE_URL=http://localhost:7000
VITE_APP_NAME=TrackWise
Start the development server:
npm run devThe frontend should run on http://localhost:5173
cd server
node scripts/createDefaultAdmin.jsThis will create a default admin account with credentials:
- Email: admin@trackwise.com
- Password: (check console output)
- Open
http://localhost:5173in your browser - Login with admin credentials
- Navigate through different dashboards to verify setup
POST /registerβ Register new user (admin/trainer/student)POST /loginβ User login with email and passwordPOST /refreshβ Refresh JWT tokenPOST /verifyβ Verify token validityPOST /reset-passwordβ Request password resetPOST /reset-password/:tokenβ Confirm password reset
GET /dashboardβ Get admin dashboard dataGET /trainersβ List all trainersPOST /trainersβ Add new trainerDELETE /trainers/:idβ Remove trainerGET /studentsβ List all studentsGET /programsβ List all programsPOST /programsβ Create new programPUT /programs/:idβ Update programDELETE /programs/:idβ Delete program
GET /dashboardβ Get trainer dashboard with assigned studentsGET /studentsβ List assigned studentsPOST /tasksβ Create task for studentPUT /tasks/:idβ Update task status/detailsGET /tasksβ Get all created tasksDELETE /tasks/:idβ Delete taskGET /programsβ List available programsPOST /programsβ Create new programGET /students/:id/progressβ Get student progress analytics
GET /dashboardβ Get student dashboardGET /tasksβ List assigned tasksPUT /tasks/:idβ Submit task solutionGET /programsβ Browse available programsPOST /programs/:id/enrollβ Enroll in programGET /progressβ Get personal progress analyticsGET /profileβ Get student profile
POST /generate-taskβ Generate task using AIPOST /tutorβ Get AI tutoring responsePOST /task-solution-feedbackβ Get AI feedback on solution
GET /conversationsβ Get all conversationsPOST /conversationsβ Start new conversationGET /conversations/:id/messagesβ Get conversation messagesPOST /conversations/:id/messagesβ Send messagePUT /messages/:idβ Edit messageDELETE /messages/:idβ Delete message
Backend (.env)
MONGODB_URI # MongoDB connection string
JWT_SECRET # Secret key for JWT signing
NODE_ENV # development/production
PORT # Server port (default: 7000)
SENDGRID_API_KEY # SendGrid email API key
SENDGRID_FROM_EMAIL # Sender email address
Frontend (.env.local)
VITE_API_BASE_URL # Backend API base URL
VITE_APP_NAME # Application name
MongoDB schemas are automatically created when the server starts. Initial schemas include:
- User Models: Admin, Trainer, Student
- Program Models: Program, AITask, AITutorContext
- Communication Models: ChatRoom, ChatMessage
- Utility Models: Counter (for auto-incrementing IDs)
- Login with admin credentials
- Dashboard Overview β See system statistics and user counts
- Manage Trainers β Add, edit, or remove trainers
- Create Programs β Define training programs with details
- Monitor Progress β Track overall system activity
- View Dashboard β See assigned students and programs
- Create Tasks β Generate or manually create assignments
- Use AI Generator β Let AI create contextual tasks
- Monitor Students β Track individual progress
- Communicate β Chat directly with students
- Generate Reports β Export student performance data
- View Dashboard β See assigned tasks and programs
- Complete Tasks β Submit solutions with code
- Chat with Trainer β Ask questions in real-time
- Use AI Tutor β Get help understanding concepts
- Track Progress β Monitor your achievements and improvements
- Enroll Programs β Join new training programs
- Monitor student coding and practical work progress
- Assign homework and projects efficiently
- Track attendance and engagement metrics
- Generate performance reports for parents/stakeholders
- Assign weekly learning tasks to mentees
- Visualize learning patterns and growth
- Provide personalized feedback and guidance
- One-on-one communication with mentees
- Manage cohorts of students
- Track course completion rates
- Generate certificates and completion reports
- Provide AI-powered tutoring support
- Transparent task assignment and tracking
- Leaderboard-based performance gamification
- Real-time collaboration and communication
- Project milestone tracking
- Adaptive learning paths with AI suggestions
- Automated task generation based on difficulty levels
- Performance-based progress tracking
- Personalized learning recommendations
cd client
npm run build
vercelcd server
# Push to your hosting provider
git push heroku main- Create account at mongodb.com/cloud/atlas
- Create cluster and database
- Get connection string
- Update
MONGODB_URIin.env
# Frontend linting
cd client
npm run lint
# Backend testing (setup required)
cd server
npm testContributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Use meaningful variable and function names
- Follow consistent indentation (2 spaces)
- Add comments for complex logic
- Keep commits focused and descriptive
This project is licensed under the ISC License - see the LICENSE file for details.
- Issues: Report bugs on GitHub Issues
- Discussions: Use GitHub Discussions for questions
- Documentation: See
/docsdirectory for detailed guides - Email: support@trackwise.com
- Mobile app (React Native)
- Video integration for recorded lessons
- Advanced analytics dashboard
- Integration with GitHub for code submission
- Automated code review with AI
- Peer-to-peer learning features
- Gamification (badges, points, achievements)
- Multi-language support
Developed with β€οΈ for educators and learners worldwide
Special thanks to:
- OpenAI for AI integration capabilities
- MongoDB Atlas for database hosting
- The React and Node.js communities
Last Updated: February 2026