Take control of your recurring subscriptions and never miss a payment again!
π Quick Start β’ π Documentation β’ π€ Contributing β’ β Features
Subscription Expense Tracker is a full-stack web application that helps you manage all your recurring subscriptions in one place. Built with modern technologies, it provides comprehensive expense tracking, intelligent reminders, and detailed analytics to optimize your subscription spending.
π― Perfect for: Individuals and families who want to take control of their subscription expenses and avoid unwanted charges.
- πΈ Forgotten subscriptions draining your wallet
- β° Missed free trial cancellations
- π Hidden recurring charges on credit cards
- π No visibility into monthly subscription costs
- π± Centralized dashboard for all subscriptions
- π Smart reminders before renewals
- π Detailed analytics and spending insights
- π‘ Optimization suggestions to save money
|
|
|
|
|
|
graph TD
A[π Frontend<br/>React + Vite<br/>Port: 5173] <--> B[β‘ Backend<br/>FastAPI<br/>Port: 8000]
B <--> C[ποΈ PostgreSQL<br/>Database]
B <--> D[π Redis<br/>Cache & Tasks]
B <--> E[π§ Celery<br/>Background Jobs]
F[π³ Docker<br/>Containerization] -.-> A
F -.-> B
F -.-> C
F -.-> D
π¨ Frontend Technologies
| Technology | Version | Purpose |
|---|---|---|
| React | 18+ | UI Framework |
| Vite | Latest | Build Tool & Dev Server |
| Tailwind CSS | 3+ | Styling & Design |
| React Router | 6+ | Client-side Routing |
| Axios | Latest | HTTP Client |
| Chart.js | Latest | Data Visualization |
βοΈ Backend Technologies
| Technology | Version | Purpose |
|---|---|---|
| FastAPI | 0.104+ | Web Framework |
| PostgreSQL | 15+ | Primary Database |
| SQLAlchemy | 2+ | ORM |
| Redis | 7+ | Caching & Task Queue |
| Celery | 5+ | Background Tasks |
| JWT | - | Authentication |
π DevOps & Infrastructure
| Technology | Purpose |
|---|---|
| Docker | Containerization |
| Docker Compose | Local Development |
| Nginx/Traefik | Reverse Proxy |
| GitHub Actions | CI/CD Pipeline |
| AWS/GCP | Cloud Deployment |
- π³ Docker & Docker Compose
- π¦ Node.js 18+ (for manual setup)
- π Python 3.11+ (for manual setup)
# Clone the repository
git clone https://github.com/Parvezkhan0/subscription-expense-tracker.git
cd subscription-expense-tracker
# Start all services with Docker Compose
docker-compose up --build
# π That's it! Your app is running:
# Frontend: http://localhost:5173
# Backend API: http://localhost:8000
# API Docs: http://localhost:8000/docsClick to expand manual setup instructions
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set environment variables
cp .env.example .env
# Edit .env with your configuration
# Run database migrations
alembic upgrade head
# Start the server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000cd frontend
# Install dependencies
npm install
# Set environment variables
cp .env.example .env
# Edit .env with your configuration
# Start development server
npm run dev| Endpoint | Method | Description |
|---|---|---|
/auth/signup |
POST | Register new user |
/auth/login |
POST | User authentication |
/auth/refresh |
POST | Refresh JWT token |
/auth/logout |
POST | User logout |
| Endpoint | Method | Description |
|---|---|---|
/subscriptions/ |
GET | List all subscriptions |
/subscriptions/ |
POST | Create new subscription |
/subscriptions/{id} |
PUT | Update subscription |
/subscriptions/{id} |
DELETE | Delete subscription |
| Endpoint | Method | Description |
|---|---|---|
/dashboard/summary |
GET | Monthly summary |
/analytics/trends |
GET | Spending trends |
/analytics/categories |
GET | Category breakdown |
π Full API Documentation: Visit
http://localhost:8000/docsafter starting the backend
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/subscription_db
# JWT
SECRET_KEY=your-secret-key-here
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
# Redis
REDIS_URL=redis://localhost:6379
# Email (for notifications)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-passwordVITE_API_BASE_URL=http://localhost:8000
VITE_APP_NAME=Subscription Tracker# Backend tests
cd backend
pytest tests/ -v --coverage
# Frontend tests
cd frontend
npm run test
# E2E tests
npm run test:e2e# Build production images
docker-compose -f docker-compose.prod.yml build
# Deploy to production
docker-compose -f docker-compose.prod.yml up -dAWS Deployment Guide
- Setup RDS PostgreSQL
- Setup ElastiCache Redis
- Deploy to ECS/EKS
- Configure CloudFront
- Setup Route53 DNS
See deployment guide for detailed instructions.
- π‘οΈ JWT Authentication with refresh tokens
- π Password hashing using bcrypt
- π« Rate limiting on API endpoints
- π HTTPS enforcement in production
- π Input validation with Pydantic
- π SQL injection prevention
- π€ AI-powered subscription optimization
- π± Mobile app (React Native)
- π OCR for receipt scanning
- π Advanced analytics dashboard
- π¬ WhatsApp/Telegram notifications
- π Multi-currency support
- π₯ Family/team sharing
- π¨ Custom themes and branding
We welcome contributions! Please see our Contributing Guide for details.
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/AmazingFeature) - π Commit your changes (
git commit -m 'Add some AmazingFeature') - π€ Push to the branch (
git push origin feature/AmazingFeature) - π Open a Pull Request
- Follow the existing code style
- Write tests for new features
- Update documentation as needed
- Be respectful and collaborative
β If you found this project helpful, please give it a star!
Made with β€οΈ by Parvez Khan