Skip to main content

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 Students API is the core resource of SkillSync. It lets you create, read, update, and delete student records, each of which stores profile information alongside live Codeforces data — ratings, rank, contest history, and recent submissions. All student endpoints are mounted under /api/students and return JSON.

Base URL

All student endpoints share the same base path:
https://your-app.onrender.com/api/students
# or for local development:
http://localhost:5000/api/students

Student object

Every response that returns a student record uses the following shape.
_id
string
required
MongoDB ObjectId uniquely identifying this student record.
name
string
required
The student’s full name.
email
string
required
The student’s email address. Must be unique across all records.
phoneNo
string
required
The student’s phone number.
codeforcesHandle
string
required
The student’s Codeforces username. Used to fetch ratings, contest history, and submissions.
currRating
number
The student’s current Codeforces rating. Defaults to 0 for unrated users.
rank
string
The student’s Codeforces rank label (e.g., "Newbie", "Pupil", "Expert", "Legendary Grandmaster"). Defaults to "Newbie".
maxRating
number
The highest Codeforces rating the student has ever achieved. Defaults to 0.
lastSyncedAt
string (ISO 8601 date)
Timestamp of when the student’s Codeforces data was last fetched and stored.
lastActiveAt
string (ISO 8601 date) | null
Timestamp of the student’s most recent accepted submission on Codeforces. null if no accepted submission has been recorded.
emailRemindersSent
number
The number of inactivity reminder emails sent during the current inactive streak. Resets when the student submits again.
emailRemindersDisabled
boolean
When true, the automated inactivity reminder system will not send emails to this student.
contestData
array
Array of contest rating-change objects sourced from the Codeforces API. Each element represents one rated contest the student participated in.
submissions
array
Array of submission objects from the Codeforces API, capped at the most recent 10,000 submissions.
createdAt
string (ISO 8601 date)
Mongoose-managed timestamp set when the document is first created.
updatedAt
string (ISO 8601 date)
Mongoose-managed timestamp updated automatically on every save.

Endpoints

MethodPathDescription
GET/api/studentsList all students
GET/api/students/:idGet a single student by ID
POST/api/studentsCreate a new student
PUT/api/students/:idUpdate a student’s fields
PUT/api/students/:id/toggle-reminderEnable or disable email reminders
DELETE/api/students/:idDelete a student
Creating or updating a student with a new codeforcesHandle triggers an immediate Codeforces data sync. The response will include the freshly fetched ratings, contest history, and submissions rather than the default empty values.

Build docs developers (and LLMs) love