Welcome to the Open Source Contribution Atelier — a complete Open Source Learning Platform designed to help a beginner confidently transition from "I know nothing about Open Source" to "I can confidently contribute to real open source repositories."
The platform preserves a playful, neobrutalist developer console aesthetic while delivering a structured, gamified curriculum.
- Frontend: React 19, TypeScript, Vite, Tailwind CSS (Neobrutalist Theme), React Router 7, TanStack React Query
- Backend: Django, Django REST Framework, Simple JWT, PostgreSQL, Redis (Caching)
- Deployment: Configured for monorepo environments (e.g. Netlify for static frontend, Render/Docker for backend)
- Structured Learning Curriculum: 8 core modules going from mindset basics to advanced conflict resolution.
- Markdown-Driven Content: Lessons and metadata are parsed dynamically. Adding content requires no code changes. See the Content Guide.
- Interactive Quizzes: Theoretical modules feature multiple-choice checking dashboards.
- Sandbox Terminal: Practical Git lessons incorporate a mock-up sandbox terminal that validates inputs.
- Gamification & Badges Cabinet: Locked and unlocked milestone rewards mapping directly to module progress.
- Printable Completion Certificates: Generates a gorgeous A4 neobrutalist certificate with verification hashes once the curriculum hits 100%.
- Hall of Fame & Leaderboard: Cohort stats, active streak calendars, and GitHub contributor APIs recognition boards.
- Onboarding Guide Tour: Walkthrough sliders introduce the sandbox console to newcomers.
- Module 1: Introduction to Open Source: Mindset, Why it matters, History, and Misconceptions.
- Module 2: Git Fundamentals: Repos, Commits, Branching, Merging, and Remotes.
- Module 3: GitHub Fundamentals: Forks, Pull Requests, Issues, Discussions, and Organizations.
- Module 4: Open Source Etiquette: Respectful communication, Reading README & CONTRIBUTING files first, and Review processes.
- Module 5: First Contribution: Interactive step-by-step mock PR setup drill.
- Module 6: Real Contribution Workflow: Tracing Issue -> Assignment -> Develop -> PR -> Review -> Merge cycles.
- Module 7: Advanced Open Source: Rebasing, Squashing, Conflict resolution, and CI/CD checks.
- Module 8: Finding Projects: Discovering issues using filters, Hacktoberfest, and good first issues.
├── backend/ # Django REST API, views, tests, and caching logic
├── frontend/ # React SPA frontend UI
│ ├── public/
│ │ ├── content/ # Static Markdown files and curriculum.json metadata catalog
│ │ └── _redirects # Netlify single page application redirect configuration
│ └── src/ # Components, pages, hooks, state
├── netlify.toml # Root Netlify configuration mapping monorepo builds
└── CONTENT_GUIDE.md # Playbook on how to write/add lessons, modules, and quizzes
To boot both the Django backend and React frontend:
docker compose up --build- Backend REST API:
http://localhost:8000/api/ - Frontend SPA:
http://localhost:5173/
Follow these steps to run the client and server locally on your system.
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.envWarning
Google OAuth login will not work without a valid VITE_GOOGLE_CLIENT_ID.
If this variable is missing or incorrect in frontend/.env, the app will load but Google Sign-In will fail with an OAuth configuration error.
How to set up your Google OAuth Client ID:
- Go to Google Cloud Console and sign in.
- Create a new project or select an existing one.
- In the left sidebar, go to APIs & Services → OAuth consent screen.
- Select External (recommended for local/dev setups).
- Fill in the required app details and add test users if needed.
- Continue through the setup screens until the configuration is complete.
- Next, go to APIs & Services → Credentials in the sidebar.
- Click Create Credentials → OAuth Client ID.
- Set the application type to Web application.
- Under Authorised JavaScript origins, add:
http://localhost:5173 - Under Authorised redirect URIs, add:
http://localhost:5173 - Click Create and copy the generated Client ID.
- Open
frontend/.envand set:VITE_GOOGLE_CLIENT_ID=your-client-id-here
.env file — it is already covered by .gitignore.
The Django backend supports Python 3.9+ and defaults to a local SQLite database for effortless onboarding without needing PostgreSQL or Redis.
cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
python manage.py migrate
python manage.py seed_lessons
python manage.py seed_dashboard
python manage.py runserver- Backend REST API:
http://localhost:8000/api/ - Interactive API Docs:
http://localhost:8000/api/docs/
The frontend uses Vite and React. Ensure you are using Node 20+. We recommend using NVM to manage Node versions.
cd frontend
# If using NVM, load it and switch to Node 20
source ~/.nvm/nvm.sh && nvm use 20
npm install
npm run dev- Frontend SPA:
http://localhost:5173/
Run tests locally to prevent regressions:
- Backend tests:
cd backend && pytest - Frontend tests:
cd frontend && npm run test
We welcome contributions of all levels suitable for SSOC 2026 and long-term participation! Please review our guides:
- CONTRIBUTING.md: Forking, branching guidelines, commit conventions, and review cycles.
- SUPPORT.md: How to get help, community channels, and asking questions.
- CODE_OF_CONDUCT.md: Community participation guidelines.
- SECURITY.md: Responsible vulnerability disclosure rules.
- CONTENT_GUIDE.md: Write new modules, markdown lessons, or interactive quizzes without modifying code.