A complete Open Source Learning Platform designed to help beginners confidently transition from zero to real open-source contributions.
Welcome to ECSoC 2026 at Open-Source Contribution Atelier! Please review our program guides before contributing:
- ๐ Official ECSoC '26 Leaderboard
- ๐ Participation & Claiming Guide (Issue #2498)
- ๐ PR Rules & Security Policy (Issue #2499)
- ๐ Rewards & Tiers (Issue #2500)
| Feature | Description |
|---|---|
| ๐ฎ Gamified Curriculum | 8 core modules going from mindset basics to advanced conflict resolution |
| ๐ Interactive Quizzes | Multiple-choice testing dashboards with instant feedback |
| ๐ Badges Cabinet | Earn milestone rewards mapping directly to module progress |
| ๐ Printable Certificates | Gorgeous A4 neobrutalist certificate with verification hashes |
| ๐ Hall of Fame | Cohort stats, active streak calendars, and GitHub contributor recognition |
| ๐ Markdown-Driven Content | Lessons are parsed dynamically โ adding content requires zero code changes |
| ๐ฌ Real-Time Community Chat | End-to-end encrypted WebSocket chat with typing indicators |
| ๐ฅ Peer Review System | Submit code for review and earn XP by reviewing others |
| ๐ Interactive Sandbox | Git terminal emulator with autocomplete and command replay |
|
React 19 ยท TypeScript ยท Vite ยท Tailwind CSS |
Django 5.0 ยท Django REST Framework ยท Simple JWT |
|
Vercel (Frontend) ยท Hugging Face (Backend API) |
Vitest ยท Playwright ยท Pytest |
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.envWindows users: If
cpis unavailable in PowerShell, use:Copy-Item backend/.env.example backend/.env Copy-Item frontend/.env.example frontend/.env
Warning
Google OAuth login requires a valid VITE_GOOGLE_CLIENT_ID in frontend/.env.
Create credentials in the Google Cloud Console with authorized redirect URIs set to http://localhost:5173.
Warning
GitHub OAuth login requires GitHub OAuth credentials.
- Go to GitHub OAuth Apps Settings
- Click "OAuth Apps" โ "New OAuth App"
- Fill in:
- Application name:
Open Source Contribution Atelier - Homepage URL:
http://localhost:8000 - Authorization callback URL:
http://localhost:8000/accounts/github/login/callback/
- Application name:
- Copy
Client IDandClient Secrettobackend/.env:GITHUB_CLIENT_ID=your_client_id GITHUB_CLIENT_SECRET=your_client_secret
Ensure Python 3.9+ is installed.
cd backend
python -m venv .venv
# macOS/Linux
source .venv/bin/activate
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
# Windows Command Prompt
.\.venv\Scripts\activate.bat
pip install -r requirements.txt
# Setup the local SQLite database
python manage.py migrate
python manage.py seed_lessons
python manage.py seed_dashboard
# Start the server
python manage.py runserver- API:
http://localhost:8000/api/
Ensure you are using Node 20+.
cd frontend
npm install
npm run dev- SPA:
http://localhost:5173/
Spin up the entire stack (Postgres, Redis, Django backend, Celery worker, Vite frontend) with a single command:
docker compose up --buildThis boots:
| Service | URL | Description |
|---|---|---|
| postgres | localhost:5432 |
Database |
| redis | localhost:6379 |
Celery broker + Channels cache |
| backend | http://localhost:8000/api/ |
Django REST API with hot-reload |
| celery_worker | โ | Background task processor for email notifications |
| frontend | http://localhost:5173/ |
Vite dev server with hot-reload |
If you hit any setup issues, see TROUBLESHOOTING.md.
Tip
The Celery worker mounts the codebase as a volume (./services/notifications_worker:/app),
so code changes take effect immediately without rebuilding the image.
Restart the worker with docker compose restart celery_worker after editing worker.py.
The Docker backend reads these environment variables automatically. You can override them in docker-compose.yml or via a .env file:
cp backend/.env.example backend/.envWindows users: If
cpis unavailable in PowerShell, use:Copy-Item backend/.env.example backend/.env
Key variables for Docker:
| Variable | Default | Notes |
|---|---|---|
DATABASE_URL |
postgres://atelier:atelier@postgres:5432/atelier |
Auto-configured |
REDIS_URL |
redis://redis:6379/0 |
Auto-configured |
DEBUG |
True |
Development mode |
This project is fully configured to be deployed on Vercel as a monorepo.
- Import the repository into your Vercel dashboard.
- Vercel will automatically detect the configuration in
vercel.jsonand deploy both the Vite frontend and the Django backend as a serverless API. - Ensure you add all backend environment variables (from
backend/.env.example) into your Vercel project settings.
We welcome contributions of all levels and long-term participation!
Important
Before requesting an issue, please read the pinned guide issues on the Issues tab to understand the keyword assignment rules, CI checks, and the 3-day stale policy.
| Resource | Description |
|---|---|
| ๐ CONTRIBUTING.md | Forking, branching guidelines, commit conventions, and review cycles |
| ๐ฌ CODE_OF_CONDUCT.md | Community participation guidelines |
| ๐ SECURITY.md | Responsible vulnerability disclosure policy |
| ๐ Content Guide | How to add lessons, modules, and quizzes (zero code changes!) |
Thanks to all the amazing people who have contributed to this project! ๐
Want to see your avatar here? Check the Contributing Guide and pick an issue to get started!