SkillSync exposes a set of system-level endpoints for scheduled background jobs and health monitoring. The sync endpoints drive the nightly Codeforces data pipeline; the ping and health endpoints keep the Render free-tier instance warm and allow uptime monitors to detect downtime.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.
POST /cron/sync
Triggers the full Codeforces sync pipeline. This endpoint is designed to be called by an external scheduler such as cron-job.org on a daily basis.Must match the
CRON_SECRET environment variable set on your backend. Requests that omit or supply an incorrect value receive a 401 Unauthorized response.202-style 200 response and then asynchronously runs runCodeforcesSync(), which:
- Iterates every student document in MongoDB.
- Invalidates each student’s Upstash Redis cache entry so fresh data is fetched.
- Pulls the latest info, contest history, and submissions from the Codeforces API in parallel.
- Writes updated ratings, rank, and submission history back to MongoDB.
- Sends a one-time inactivity reminder email to any student who has been inactive for 7 or more days and has not yet received a reminder in the current inactive streak.
- Resets the
emailRemindersSentcounter for students who have become active again.
This endpoint is designed to be called by cron-job.org or a similar external scheduler. Configure a daily job pointed at
POST /cron/sync with the x-cron-secret header set, scheduled at 02:00 UTC. Add CRON_SECRET as an environment variable in your Render dashboard.POST /cron/sync-all
Manually triggers the same Codeforces sync pipeline as/cron/sync but without secret validation. Intended for use from the internal admin dashboard.
What it does
Identical to /cron/sync: invalidates Redis caches, fetches fresh Codeforces data for all students, updates MongoDB, and dispatches inactivity emails as needed.
Response