SkillSprint is a full-stack ASEP/capstone project that centralizes coding contests, MCQ quizzes, hackathons, and tech opportunities for students.
- Lets students register and log in.
- Lets admins/teachers host quiz tests and coding contests.
- Lets students attempt MCQ tests and stores scores.
- Lets users create contest submissions (currently stored with
PENDINGverdict). - Exposes all APIs through FastAPI Swagger docs.
- FastAPI
- SQLAlchemy
- SQLite locally (
backend/skillsprint.db) - PostgreSQL on Render via
DATABASE_URLusing psycopg3
backend/database.py: DB engine,SessionLocal,Base,get_dbbackend/models.py:User,Test,Question,QuizSubmission,Contest,ContestProblem,ContestSubmissionbackend/schemas.py: Pydantic request/response modelsbackend/routes/auth_routes.py:/auth/register,/auth/loginbackend/routes/quiz_routes.py: quiz endpointsbackend/routes/contest_routes.py: contest endpointsbackend/main.py: app init, CORS, router registrationbackend/seed_data.py: sample data seeding
cd backend
python -m pip install --upgrade pip
pip install -r requirements.txt
python seed_data.py
uvicorn main:app --reloaddocker build -t skillsprint-backend .
docker run -p 8000:8000 --env-file backend/.env skillsprint-backendThe Docker image includes the toolchains required for the compiler engine:
- gcc, g++, gdb
- Python, Node.js, Java, PHP, Go, Rust, R
- Set
DATABASE_URLto your Render PostgreSQL connection string. - From the
backendfolder, run:
python migrate_sqlite_to_postgres.py- If you want to overwrite rows already in Postgres, run:
python migrate_sqlite_to_postgres.py --clear-targetOpen:
- API root:
http://127.0.0.1:8000/ - Swagger docs:
http://127.0.0.1:8000/docs
From project root:
python -m http.server 5500Open:
- Landing page:
http://127.0.0.1:5500/index.html - Quiz page:
http://127.0.0.1:5500/frontend/html/quiz.html
POST /auth/registerPOST /auth/login
GET /quiz/testsGET /quiz/tests/{test_id}/questionsPOST /quiz/tests/{test_id}/submitGET /quiz/admin/tests/{test_id}/submissions
POST /contestsGET /contestsGET /contests/{contest_id}POST /contests/{contest_id}/problemsPOST /contests/{contest_id}/problems/{problem_id}/submitGET /contests/{contest_id}/submissions
GET /compiler/languagesPOST /compiler/runPOST /compiler/debug
Supported execution languages in the backend engine:
c,cpp,python,javascript,java,php,go,rust,r
Web-oriented languages are recognized with preview-only responses:
html,css,react,typescript
For full multi-language execution in deployment, install runtime/toolchain binaries on the host/container:
gcc,g++,python,node,javac/java,php,go,rustc,Rscript- Optional debug support:
gdb(for C/C++ debug endpoint)
http://localhost:5500http://127.0.0.1:5500https://dreynox.github.io