SkillSync is a full-stack web application built for educators, coaches, and teaching assistants who need to monitor students’ competitive programming activity on Codeforces at scale. Instead of manually checking each student’s profile, SkillSync centralises all Codeforces data in one place — automatically syncing ratings, contest history, and submission activity every day, and surfacing the insights that matter most.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/aakash811/Student-Progress-Tracker/llms.txt
Use this file to discover all available pages before exploring further.
The problem SkillSync solves
Running a competitive programming course or club means keeping tabs on dozens (or hundreds) of students across Codeforces. Manually reviewing profiles is time-consuming, inconsistent, and easy to neglect. SkillSync automates the data collection pipeline, flags students who have gone inactive, and gives every student a personal analytics dashboard — so educators can focus on teaching rather than bookkeeping.Key features
Student Management
Add, edit, and remove students. Store names, email addresses, phone numbers, and Codeforces handles in one central roster.
Codeforces Sync
Automatically fetch each student’s profile, contest history, and submissions daily via a scheduled cron job. Manual sync is also available from the UI.
Analytics Dashboard
Per-student dashboards with rating-over-time charts, submission heatmaps, and problem difficulty distribution (rating buckets) powered by Recharts.
Inactivity Alerts
Automatically detect students who haven’t submitted recently and send them personalised reminder emails via Nodemailer and Brevo SMTP.
Environment Configuration
All sensitive credentials — database URIs, Redis tokens, SMTP credentials, and cron secrets — are managed through environment variables with no hard-coded values.
REST API
A clean Express REST API exposes student CRUD, Codeforces data endpoints, inactivity checks, and cron trigger routes for external schedulers.
Tech stack
Frontend- React 19 + Vite — fast development server and optimised production builds
- TailwindCSS — utility-first styling with dark/light mode support
- Shadcn/UI — accessible component primitives built on Radix UI
- Recharts — composable chart library for rating and submission visualisations
- Node.js + Express — lightweight REST API server
- MongoDB + Mongoose — document database with schema validation
- cron-job.org — external scheduler that triggers the daily Codeforces sync via HTTP
- Nodemailer — email delivery for inactivity alerts via Brevo SMTP
Architecture overview
VITE_API_BASE_URL environment variable. The backend runs on Render’s free tier and connects to MongoDB Atlas for persistence and Upstash Redis for caching Codeforces API responses. An external scheduler on cron-job.org triggers the daily sync and sends a keep-alive ping every 14 minutes to prevent Render cold starts.