SkillSprint is a full-stack ASEP/capstone project that centralizes coding contests, MCQ quizzes, hackathons, and tech opportunities for students.
- π About SkillSprint
- β¨ Key Features
- π οΈ Technology Stack
- β‘ Quick Start Guide
- π€ Contributing Guidelines
- π Rules & Conditions
- π API Documentation
- π License
- π¬ Community & Support
SkillSprint is a comprehensive full-stack web application designed to act as a centralized platform for students and educators. It enables students to register, take tests, and participate in competitive programming challenges, while allowing educators to seamlessly host MCQ quizzes and coding contests.
Whether you're preparing for a hackathon, honing your technical skills, or managing a coding contest, SkillSprint has you covered.
| Feature | Description |
|---|---|
| π Student Registration & Login | Secure authentication and session management. |
| π§βπ« Admin/Teacher Dashboard | Host and manage quiz tests and coding contests easily. |
| π MCQ Quizzes & Scoring | Real-time attempt tracking and score storage. |
| π» Coding Contest Engine | Create contest submissions and execute code dynamically. |
| π Multi-Language Compiler | Execute code in C, C++, Python, JavaScript, Java, Go, Rust, and more. |
| π API Swagger Documentation | Explore and interact with APIs seamlessly using FastAPI's Swagger UI. |
FastAPI (High-performance web framework)
βββ SQLAlchemy (ORM for database operations)
βββ SQLite (Local database)
βββ PostgreSQL (Production database on Render)
βββ Docker (Containerization for compiler toolchains)
Vanilla JavaScript + HTML/CSS
βββ API Client Logic
βββ Responsive Layout Design
Follow these instructions to host the project locally on your machine.
- Python (v3.8 or higher)
- Node.js (optional, for some frontend build/serve tools)
- Docker (optional, recommended for compiler engine testing)
- PostgreSQL (optional for local, defaults to SQLite)
Fork the repository to your GitHub account, then clone it locally:
git clone https://github.com/YOUR_USERNAME/SkillSprint.git
cd SkillSprintcd backend
python -m pip install --upgrade pip
pip install -r requirements.txt# Seed the local SQLite database
python seed_data.py
# Start the FastAPI server
uvicorn main:app --reload
# Server runs on http://127.0.0.1:8000To access API Documentation, visit: http://127.0.0.1:8000/docs
Open a new terminal window in the project root:
python -m http.server 5500Frontend runs on http://127.0.0.1:5500/index.html
If you wish to test the multi-language compiler functionalities:
docker build -t skillsprint-backend .
docker run -p 8000:8000 --env-file backend/.env skillsprint-backendWe are participating in the Elite Coders Summer of Code 2026 and welcome open-source contributors! Here is exactly how you can contribute:
- Fork the Repository: Click the "Fork" button at the top right of this page.
- Clone your Fork:
git clone https://github.com/YOUR_USERNAME/SkillSprint.git cd SkillSprint - Set Upstream Remote: Sync your fork with the original repository to keep it updated.
git remote add upstream https://github.com/ORIGINAL_OWNER/SkillSprint.git git fetch upstream
- Go to the Issues tab in the original repository.
- If you find a bug or have a feature idea, create a new issue.
- Wait to be assigned: Please comment on the issue you wish to work on and wait for a project admin to assign it to you before starting your work.
- Once assigned, create a feature branch:
git checkout -b feature/issue-number-description
When creating an issue, please ensure it follows this structure:
- Title: Short and descriptive (e.g.,
Bug: Login button unresponsive on mobile). - Description: Detailed explanation of the bug or feature.
- Steps to Reproduce (if bug): Clear steps to trigger the issue.
- Expected vs Actual Behavior.
- Screenshots (if applicable).
We follow Conventional Commits. Your commit messages must be clear and descriptive:
feat: add new compiler language supportfix: resolve quiz scoring calculation errordocs: update setup instructions in READMEui: improve dashboard layout spacingchore: update dependencies
When submitting a PR, your description must include:
- Related Issue: e.g.,
Fixes #42 - What was changed: A brief summary of your code changes.
- How to test: Steps for the reviewer to verify your changes.
- Screenshots/Recordings: Necessary for any UI-related changes.
To ensure a smooth collaboration, please abide by the following rules:
- No Plagiarism: All code submitted must be your own or properly attributed open-source code.
- One Issue at a Time: Do not claim multiple issues at once. Finish your assigned issue before requesting another.
- Wait for Assignment: PRs submitted without an assigned issue will be marked as spam or closed.
- Code Quality: Ensure your code is well-commented, clean, and follows existing repository structure and formatting.
- Be Respectful: Treat all community members, maintainers, and reviewers with kindness and respect.
Our backend exposes comprehensive RESTful APIs. Here is a brief overview:
- Auth:
POST /auth/register,POST /auth/login - Quizzes:
GET /quiz/tests,POST /quiz/tests/{test_id}/submit - Contests:
GET /contests,POST /contests/{contest_id}/problems/{problem_id}/submit - Compiler Engine:
POST /compiler/run,POST /compiler/debug
For full details, spin up the backend and visit /docs.
This project is licensed under the MIT License.
- β Use for personal or commercial purposes
- β Modify the source code
- β Distribute copies
- π GitHub Issues: Report bugs or request features
- π Discussions: Engage with other contributors and ask questions