Skip to content

nandinigoyaldev/Open-Source-Contribution-Atelier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,763 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


A complete Open Source Learning Platform designed to help beginners confidently transition from zero to real open-source contributions.

Live Demo Backend API SSoC 2026

GitHub Stars GitHub Forks GitHub Issues GitHub PRs License

CI Checks React Django TypeScript Tailwind Docker


✨ Features

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

🛠️ Technical Stack

⚡ Frontend

React 19 · TypeScript · Vite · Tailwind CSS
React Router 7 · TanStack React Query · Redux Toolkit

🔧 Backend

Django 5.0 · Django REST Framework · Simple JWT
Django Channels · Celery · Redis · PostgreSQL

☁️ Deployment

Vercel (Frontend) · Hugging Face (Backend API)
Neon (PostgreSQL) · Upstash (Redis)

🧪 Testing & CI

Vitest · Playwright · Pytest
GitHub Actions CI · ESLint · Prettier · Black


🚀 Quick Start (Local Development)

1. Setup Environment

cp backend/.env.example backend/.env
cp 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.

  1. Go to GitHub OAuth Apps Settings
  2. Click "OAuth Apps" → "New OAuth App"
  3. Fill in:
    • Application name: Open Source Contribution Atelier
    • Homepage URL: http://localhost:8000
    • Authorization callback URL: http://localhost:8000/accounts/github/login/callback/
  4. Copy Client ID and Client Secret to backend/.env:
    GITHUB_OAUTH_CLIENT_ID=your_client_id
    GITHUB_OAUTH_CLIENT_SECRET=your_client_secret
    

2. Run the Backend (Django)

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/

3. Run the Frontend (React + Vite)

Ensure you are using Node 20+.

cd frontend
npm install
npm run dev
  • SPA: http://localhost:5173/

🐳 Docker (Full Stack)

Spin up the entire stack (Postgres, Redis, Django backend, Celery worker, Vite frontend) with a single command:

docker compose up --build

This 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.

Environment Variables

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/.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

☁️ Deployment (Vercel)

This project is fully configured to be deployed on Vercel as a monorepo.

  1. Import the repository into your Vercel dashboard.
  2. Vercel will automatically detect the configuration in vercel.json and deploy both the Vite frontend and the Django backend as a serverless API.
  3. Ensure you add all backend environment variables (from backend/.env.example) into your Vercel project settings.

🧑‍💻 Contributing

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.

Quick Links

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!)

🤝 Contributors

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!


💖 Support the Project

If you find this project helpful, please consider giving it a ⭐ star on GitHub!

Star this repo Fork this repo Sponsor

About

A full-stack learning and operations platform for teaching open source contribution from beginner to advanced levels

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors