A full-stack analytics platform built to monitor, analyze, and visualize competitive programming progress using real-time Codeforces data, automated synchronization pipelines, Redis-backed caching, and performance insights.
SkillSync is a production-style coding analytics dashboard designed to help students, mentors, and educators track competitive programming performance at scale.
The platform combines:
- 📈 Real-time analytics dashboards
- ⚡ Redis-backed API caching
- 🔄 Automated cron-based synchronization
- 📊 Contest and submission insights
- 🔥 Activity heatmaps and consistency tracking
- 📧 Inactivity reminder pipelines
- 🌙 Modern responsive SaaS-style UI
- Student performance overview
- Contest rating progression
- Problem difficulty distribution
- Tag-based problem analysis
- Submission activity heatmaps
- Coding consistency metrics
- Personalized coding insights
- Redis caching layer for Codeforces API data
- Reduced API latency using intelligent caching
- Background synchronization system
- Optimized analytics aggregation
- Efficient contest/submission processing
- Daily cron-based synchronization pipeline
- Manual sync orchestration from dashboard
- Automatic inactivity detection
- Email reminder system for inactive users
- Background sync execution
- Responsive analytics dashboard
- Dark / Light theme support
- Interactive charts and visualizations
- Smooth skeleton loading states
- SaaS-inspired dashboard design
- Real-time sync status indicators
- React.js
- Vite
- TailwindCSS
- shadcn/ui
- Recharts
- Axios
- Node.js
- Express.js
- MongoDB
- Mongoose
- Redis
- Node-cron
- Nodemailer
- Codeforces Public API
Implemented a Redis caching layer to reduce repetitive Codeforces API requests and improve dashboard response times significantly.
Built a cron-based synchronization engine capable of:
- refreshing user analytics
- invalidating stale cache
- syncing contest history
- updating submissions
- triggering inactivity workflows
The analytics pipeline computes:
- difficulty distributions
- coding streaks
- activity consistency
- contest progression
- tag-wise performance
- acceptance rate metrics
Integrated SMTP-based reminder workflows using Brevo and Nodemailer to notify inactive students automatically.
Student-Progress-Tracker/
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── assets/
│ │ └── lib/
│ │
│ └── public/
│
├── backend/
│ ├── controllers/
│ ├── cron/
│ ├── models/
│ ├── routes/
│ ├── services/
│ ├── utils/
│ └── index.js
│
└── README.mdFull technical documentation available here:
- Node.js v18+
- MongoDB
- Redis
- Git
git clone https://github.com/yourusername/student-progress-tracker.git
cd student-progress-trackercd backend
npm installCreate .env file:
PORT=5000
MONGODB_URI=your_mongodb_uri
REDIS_URL=your_redis_url
CRON_SECRET=your_secret
EMAIL_USER=your_email
EMAIL_PASS=your_email_passwordRun backend:
npm run devcd ../frontend
npm install
npm run devFrontend runs on:
http://localhost:5173- Multi-platform coding support (LeetCode, AtCoder, CodeChef)
- Real-time WebSocket updates
- AI-powered performance recommendations
- Peer leaderboard system
- Team analytics dashboard
- Contest prediction insights
Built by Aakash Borse