Loyalty Points and Digital Payment System
This project is a backend API for a loyalty points system integrated with a simulated digital payment system. It is built with Django, Django REST Framework, Celery, and PostgreSQL, and it supports user management, points earning and redemption, simulated payment transactions, voucher management, data warehousing for transactions, background tasks for expiring points, and JWT-based authentication with role-based access control.
Specifications
- Backend Framework: Django with Django REST Framework
- Asynchronous Task Queue: Celery with Redis broker
- Authentication: JWT (using djangorestframework-simplejwt)
- Monitoring: Flower
- Database: PostgreSQL (main DB and warehouse)
- Containerization: Docker & Docker Compose
- Documentation: Swagger UI via drf-yasg
- Testing Framework: Pytest with pytest-django
Milestones
- Project Initialization
- Created the architecture including services for web, database, Redis, Celery worker, and Flower monitor.
- Feature Implementation
- Developed APIs for user management, point accumulation, and redemptions.
- Integrated JWT authentication and role-based access.
- Background Processing
- Built Celery tasks for auto-expiry of loyalty points and scheduled jobs.
- Monitoring and Testing
- Added Flower for real-time monitoring and Pytest for unit testing coverage.
- Documentation and Deployment
- Generated Swagger docs for API testing and simplified deployment with Docker Compose.