A complete Open Source Learning Platform designed to help beginners confidently transition from zero to real open-source contributions.
| 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/.envWarning
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_OAUTH_CLIENT_ID=your_client_id GITHUB_OAUTH_CLIENT_SECRET=your_client_secret
Ensure you are using Python 3.9+.
cd backend
python3 -m venv .venv
source .venv/bin/activate
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/.envKey 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 suitable for SSoC 2026 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!