π° SmartSpend - Intelligent Finance Tracker
SmartSpend is a modern, cross-platform application (Mobile & Web) designed to help users track expenses, manage budgets, and analyze financial habits. Built with Flutter for a beautiful UI and Django for a robust backend.
| Dashboard | Auth_Cross_Browser | Notifications |
|---|---|---|
![]() |
![]() |
![]() |
π Getting Starte
β¨ Features
π± Cross-Platform: Android, iOS, and Web support.
π Secure Authentication: Email/password login + Google Sign-In.
πΈ Transaction Management: Track income and expenses efficiently.
π Recurring Transactions: Automate monthly bills and subscriptions.
π Interactive Dashboard: Visual spending breakdown by category.
π Budgeting Alerts: Set monthly limits and receive notifications.
π Export Data: Generate PDF & CSV reports.
π¨ Modern UI: Sleek purple & gold theme with Dark Mode support.
π οΈ Tech Stack Frontend (Flutter)
Framework: Flutter (Dart)
State Management: Provider
Networking: HTTP & Dio
Charts: fl_chart
Authentication: Google Sign-In
Backend (Django)
Framework: Django (Python)
API: Django REST Framework (DRF)
Database: SQLite (dev) / PostgreSQL (prod)
Authentication: JWT & OAuth2
Documentation: Swagger / Redoc
π Folder Structure
Hereβs a clear visual of your project:
SmartSpend/ βββ Backend/ β βββ manage.py β βββ requirements.txt β βββ venv/ β βββ .env # NOT committed β βββ app/ β β βββ migrations/ β β βββ models.py β β βββ views.py β β βββ ... β βββ media/ # Uploaded user files βββ frontend_new/ β βββ android/ β βββ ios/ β βββ lib/ β β βββ core/ β β β βββ config/ β β βββ models/ β β βββ providers/ β β βββ screens/ β β βββ widgets/ β β βββ main.dart β βββ build/ β βββ pubspec.yaml βββ .gitignore βββ README.md
Tip: This helps contributors understand your folder structure instantly.
π Getting Started Prerequisites
Flutter SDK
Python 3.10+
Git
1οΈβ£ Backend Setup (Django) cd Backend
python -m venv venv .\venv\Scripts\activate
python3 -m venv venv source venv/bin/activate
pip install -r requirements.txt python manage.py migrate python manage.py runserver
The API runs at: http://127.0.0.1:8000/
2οΈβ£ Frontend Setup (Flutter) cd frontend_new flutter pub get
Configure API URL: Check lib/core/config/api_config.dart
Platform API URL Android Emulator http://10.0.2.2:8000 Web / iOS http://127.0.0.1:8000
Run the app:
flutter run
flutter run -d chrome --web-port=5000
3οΈβ£ Environment Variables
Create a .env file in Backend/:
SECRET_KEY=your_django_secret_key DEBUG=True ALLOWED_HOSTS=127.0.0.1,localhost,10.0.2.2
Important: Never commit .env to Git. Add it to .gitignore.
4οΈβ£ Screenshots (Add Your Own)
You should replace the placeholders below with real screenshots from your app.
Dashboard Transactions Profile
Tip: Take screenshots for Mobile and Web. Include key features like: Dashboard, Transaction List, Budget Alerts, and Profile screens.
π€ Contributing
Fork the repository
Create a feature branch: git checkout -b feature/YourFeature
Commit changes: git commit -m "Add YourFeature"
Push: git push origin feature/YourFeature
Open a Pull Request
π License
This project is open-source under the MIT License.
Backend/venv/ Backend/pycache/ Backend/*.sqlite3 Backend/.env Backend/media/ *.pyc
frontend_new/build/ frontend_new/.dart_tool/ frontend_new/.flutter-plugins frontend_new/.flutter-plugins-dependencies frontend_new/.idea/ frontend_new/android/.gradle frontend_new/ios/.symlinks/ frontend_new/ios/Pods/
.vscode/ .idea/ *.DS_Store


