RECursion NITD Website Backend
- User registration, login, and profile management
- Forum with questions, answers, and discussions
- Event creation, listing, updating, and details
- Interview experience sharing and browsing
- Blog content management
- Team member pages and team-related data
- Calendar-related event APIs
- Google social authentication
- Email notification support using SMTP
- REST API endpoints for frontend integration
- Python 3.11
- Django 3.2
- Django REST Framework
- Django Filters
- Django MarkdownX
- Django Prometheus
- social-auth-app-django
- dj-database-url
- python-decouple / python-dotenv
requirements.txt— project dependencieswebsite/— Django application rootmanage.py— Django management scriptwebsite/— project settings and URL configurationsettings.py— application settingsurls.py— root URL routingwsgi.py— WSGI entrypoint
blog/— blog applicationevents/— event management applicationevents_calendar/— calendar API applicationforum/— forum applicationgetting_started/— onboarding and guides appteam/— team management appuser_profile/— user profile and account appinterview_exp/— interview experience apputils/— shared utilities
- Python 3.11
- pip
- Git
- Optional: Microsoft Visual C++ Build Tools if package compilation fails
- Download Python 3.11 from the official website:
https://www.python.org/downloads/release/python-3110/ - Windows (via winget): winget install -e --id Python.Python.3.11
- macOS (via Homebrew): brew install python@3.11
- Linux (Ubuntu/Debian): sudo apt update && sudo apt install python3.11 python3.11-venv
Verify Python version:
python --version
Expected output:
Python 3.11.x
-
Go to: https://github.com/RECursion-NITD/RECursionNITD-website
-
Click Fork to create your own copy
-
Clone your fork:
git clone https://github.com/<your-username>/RECursionNITD-website.git
cd RECursionNITD-website
Add upstream remote:
git remote add upstream https://github.com/RECursion-NITD/RECursionNITD-website.git
git remote -v
Checkout development branch:
git checkout dev-api
python -m venv venv.\venv\Scripts\Activate.ps1If you are using Command Prompt:
venv\Scripts\activate.batpython -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements.txtPlace the downloaded database file here:
website/db.sqlite3
Extract the downloaded media.zip into the website/ folder.
Create the env file and add the required configuration values. Do not commit secrets.
cd website
python manage.py makemigrations
python manage.py migratepython manage.py collectstatic --noinputpython manage.py runserverOpen the site at:
http://127.0.0.1:8000/
- Create a separate branch for each change:
git checkout -b feature/your-change - Keep pull requests focused and small
- Add a clear title and description for each PR
- Include testing or setup steps in the PR description
- Request review from the team or maintainer
- Environment variables should be stored in
website/.envand kept private. - If
DATABASE_URLis not provided, the project defaults to SQLite atwebsite/db.sqlite3. - If using SQLite locally, database host/user/password settings are not required.
- The frontend repository is separate:
https://github.com/RECursion-NITD/RECursionNITD-Frontend