A production-ready expense tracking API with JWT authentication, advanced filtering, and financial reporting capabilities. Designed for scalability and security, following RESTful principles and FAANG-level engineering standards.
- JWT Authentication: Secure token-based auth system with refresh tokens
- Role-Based Access Control: Admin/User roles with granular permissions
- Expense Management:
- CRUD operations with monetary validations
- Category-based spending tracking
- Date-range filtering (max 5-year history)
- Advanced Reporting:
- Spending distribution visualization (Matplotlib)
- Financial summary statistics
- Enterprise-Grade Filtering:
- Date ranges
- Amount thresholds
- Category filters
- Multi-field sorting
- PCI-compliant input validation
- Password strength enforcement
- Rate limiting foundations
- UUID primary keys
- Hidden user field enforcement
- JWT token expiration policies
- Docker-ready architecture
- PostgreSQL optimization
- Redis caching foundations
- Automated testing framework
- CI/CD-ready structure
- API documentation (OpenAPI/Swagger)
Backend
- Python 3.11
- Django 4.2
- Django REST Framework 3.14
- PostgreSQL 15
- Redis 7
- Docker 24+
- JWT Authentication
Key Libraries
- django-filter (Advanced querying)
- matplotlib (Data visualization)
- python-decouple (Env management)
- drf-yasg (API docs)
- Python 3.11+
- PostgreSQL 15
- Redis 7
- Docker (optional)
# Clone repository
git clone https://github.com/Korede01/expense-tracker.git
cd expense-tracker
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Database Setup
python manage.py migrate
python manage.py createsuperuser