A minimal monorepo for a CRM product with a Django API today and a planned Next.js frontend.
This project is a small CRM backend built to practice a real-world backend stack (Django REST Framework, JWT authentication, PostgreSQL) used in my current work.
The focus is not feature completeness, but:
- API design and responsibility boundaries
- Data modeling and query patterns
- Authentication and authorization flow
- Frontend–backend integration via REST APIs
This repository now keeps both application entrypoints in one place so API and web can evolve independently while sharing CI and repository settings.
- JWT-based authentication
- Deal CRUD API
- Deal list with filters
- status (multiple)
- keyword search (deal name / client name)
- date range (created / updated)
- Activity timeline per deal
- Create and update activities
- Owner-based data access control
POST /auth/loginPOST /auth/refresh
GET /dealsPOST /dealsGET /deals/{id}PATCH /deals/{id}DELETE /deals/{id}(optional)
GET /deals/{id}/activitiesPOST /deals/{id}/activitiesPATCH /activities/{id}DELETE /activities/{id}
apps/api: Django REST Framework APIapps/web: reserved for the future Next.js frontend
- Python 3.12+
- Django
- Django REST Framework
- SQLite (local development)
- Ruff (linting)
- GitHub Actions (API CI today, Web CI later)
mini-crm-api/
├── apps/
│ ├── api/
│ │ ├── config/ # Django project settings
│ │ ├── crm/ # Core CRM app (models, views, serializers)
│ │ ├── manage.py
│ │ ├── pyproject.toml
│ │ └── requirements.txt
│ └── web/ # Reserved for Next.js
├── .github/workflows/
│ └── api-ci.yml
└── README.md
- python -m venv .venv
- source .venv/bin/activate
- pip install -r apps/api/requirements.txt
- cd apps/api
- python manage.py migrate
- python manage.py runserver
api-ci.ymlruns only whenapps/api/**or the API workflow changes- Web CI will be added when
apps/webis scaffolded
🚧 Work in Progress
- Django + DRF project initialized
- Health check endpoint implemented
- API CI split out for the monorepo layout
- Core models and APIs under development