DDMatch is a full-stack project-matching application for students, project partners, and administrators. It supports the end-to-end workflow for managing users, publishing projects, collecting applications, extending offers, and operating each application season.
- Python / Django 4
- Django REST Framework
- PostgreSQL
- JWT authentication with Djoser
- AWS S3 + CloudFront for file storage
- AWS SES for transactional email
- Docker + Gunicorn for application serving
- Swagger / OpenAPI documentation
- Student, partner, and administrator account management
- JWT login, password reset, OTP verification, and profile image upload
- Project partner onboarding, review, and approval
- Application season management
- Public project listings and project detail views
- Student project applications
- Partner offer workflows and student offer responses
- Dashboards, activity logs, and administrative tooling
- File uploads for resumes, partner logos, and related assets
- Python 3
- PostgreSQL
- Git
- A configured
.envfile
git clone <repo-url>
cd DDMatch
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserverOnce the app is running, API documentation is available at the root route:
http://127.0.0.1:8000/
Create a local .env file and keep it out of source control. The application expects configuration for:
- Django settings:
DJANGO_SECRET,ENVIRONMENT,ALLOWED_HOSTS,TRUSTED_ORIGINS - Server settings:
PORT,CONTAINER - PostgreSQL database connection values
- AWS S3 and CloudFront storage values
- AWS SES email values
- Optional third-party integrations such as Google OAuth and Cloudinary
Key application routes include:
/v2/auth/— authentication and account flows/v2/students/— student profiles/v2/partners/— project partner records/v2/project/— project management/v2/application/— student applications/v2/projects/offers/— offer workflows/v2/dashboards/— dashboard data/v2/public/projects/— public project browsing/v2/health/— health check
Internet
¦
?
Nginx (SSL termination)
¦
?
Dockerized Django app (Gunicorn)
¦
+-- AWS RDS PostgreSQL
+-- AWS S3 + CloudFront
+-- AWS SES
DDMatch is designed for deployment on AWS with:
- AWS RDS (PostgreSQL) for relational data storage
- AWS S3 + CloudFront for file and media storage
- AWS SES for transactional email delivery
- AWS EC2 for application hosting
- Docker + Gunicorn for serving the Django application
- Nginx + Let's Encrypt for reverse proxying and SSL termination
- GitHub Actions for CI/CD deployment
- Sentry for production monitoring
For the full production setup, infrastructure configuration, and post-deployment checklist, read deployment.md.
Contributions are welcome. When making changes:
- Create a focused branch
- Keep secrets out of commits
- Run migrations and relevant tests before opening a pull request
- Document any setup or deployment changes that affect other contributors
George Obaido