DentalCare Pro Backend is a modern, scalable and modular Django REST API designed for managing the operations of a dental clinic. It supports patient management, clinical treatments, billing, inventory tracking, role-based authentication, and more. Built with clean architecture principles, this backend integrates powerful tools such as Celery, Redis, Sentry, and JWT for a robust developer and production experience.
This Django API is equipped with everything you need to build and scale a real-world application:
-
🛠 Docker & Docker Compose
Spin up the entire stack locally or in production with consistent environments. -
📦 Celery with RabbitMQ and Redis (optional) Asynchronous background task support for email sending, analytics, etc.
-
🧩 Django Rest Framework (DRF)
Robust RESTful APIs with full CRUD support, filtering, pagination, and more. -
🔐 DRF Simple JWT
Stateless authentication with access/refresh tokens and custom claims (e.g., role, name). -
📑 DRF Spectacular (OpenAPI)
Generate clean and customizable Swagger documentation for your API. -
🌐 Django CORS Headers
Cross-Origin Resource Sharing configured for frontend integration. -
📊 Django Silk
Profiling and performance monitoring for database queries and view logic. -
🛡 Django Axes
Protection against brute-force login attacks with lockout and logging support. -
🗃 AWS S3 Support (optional)
Store static and media files in scalable cloud storage. -
📈 Sentry Integration
Real-time error tracking and visibility into production failures. -
🏗 Modular App Design
Separate apps foruser,clinical,inventory,billing,notifications, etc. -
🚦 Soft Delete Support
Patients and other entities implement soft deletion for safer data handling. -
🔍 Dynamic Filtering & Pagination
With Django Filters and global ordering/filtering exposed in OpenAPI docs.
All environment configuration is managed via a .env file and works seamlessly with Docker Compose or local uv setups.
Update the following for production security:
DJANGO_SECRET_KEYPOSTGRES_PASSWORDRABBITMQ_DEFAULT_PASSDJANGO_ADMIN_PASSWORD
- API:
localhost:8010 - RabbitMQ Dashboard:
localhost:15672
You can configure workers and threads via:
WORKERS=4
THREADS=16Set trusted origins:
CORS_ALLOWED_ORIGINS=http://localhost:5173
CSRF_TRUSTED_ORIGINS=http://localhost:5173PostgreSQL connection via:
DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}uv: install from https://github.com/astral-sh/uv
git clone https://github.com/your-org/dentalcare-backend.git
cd dentalcare-backenduv sync --all-extras --devcp .env.example .envUpdate any values as needed (especially secrets and ports).
make migratemake run.server.localgit clone https://github.com/your-org/dentalcare-backend.git
cd dentalcare-backendMake sure your .env is properly configured.
docker compose up -d- 🔐 Security: Never commit your
.envfile or secret values to version control. - 📈 Monitoring: Use Sentry and Silk for real-time performance/error insights.
- ⚙️ Scalability: Adjust Celery workers and Django threads based on production load.
- 📚 Documentation: Visit
/schema/swagger-ui/or/schema/redoc/for full API documentation.
For any issues or suggestions, feel free to open an issue or contribute to this project.