FinGuide is a personal finance management application designed to help users track income and expenses, understand spending patterns, and gain meaningful insights through analytics and AI-assisted suggestions.
The app focuses on clarity, visualization, and actionable insights, making personal finance easier to understand and manage.
- Make financial data easy to understand
- Encourage better spending habits
- Provide data-driven insights, not just raw numbers
- Keep the system extensible for future features
- Displays total income and total expenses across all time
- Shows current month income and expenses separately for better budgeting
- Clean, modern UI with intuitive financial cards
- Category-wise expense distribution for the current month
- Interactive pie chart to visualize spending habits
- Helps users identify categories with the highest spending
- Bar chart comparing income and expenses over time
- Supports flexible date ranges (not limited to a single month)
- Useful for tracking trends and identifying overspending periods
- Displays the most recent transactions at a glance
- Clearly differentiates income and expense entries
- Enables quick review of latest financial activity
- Generates smart financial suggestions based on user spending data
- Users can provide preferences (e.g., “I want to reduce entertainment spending”)
- AI responses are structured and actionable
- Automatically detects the current month and year
- Calculates:
- Monthly expense trend
- Percentage change from the previous month
- Weekday vs weekend spending behavior
- Spending spikes and anomalies
- Each user has an associated currency code
- Currency is displayed consistently across dashboard and analytics views
├── backend/ # Flask API, Models, and Routes
├── frontend/ # Flutter Application
├── database/ # SQL Schemas and Migrations
└── README.md
Flutter App
|
|── REST API Calls
↓
Flask Backend
|
|── Analytics Services
|── Transaction Services
|── AI Insight Generator
↓
PostgreSQL Database
- Date handling is month-aware and year-aware (no hardcoded inputs)
- Monthly analytics use:
- First day of month → Last day of month
- Decimal-safe calculations to avoid floating-point inaccuracies
- Backend responses are JSON-structured and frontend-safe
- Frontend: Flutter (Mobile/Web)
- Backend: Flask (Python)
- Database: PostgreSQL
- Authentication: JWT (JSON Web Tokens)
git clone git@github.com:sudeepSubedi01/FinGuide-APIE-Advanced-Camp.git
cd FinGuide-APIE-Advanced-Campcd backend
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
source venv/bin/activate # Linux
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txtEnvironment Variables: Create a .env file in the /backend directory:
DATABASE_URL=postgresql+psycopg2://<username>:<password>@localhost:5432/finguide
JWT_SECRET_KEY=your_super_secret_key
GEMINI_API_KEY=your_key_hereDatabase Initialization:
# Ensure PostgreSQL is running and 'finguide' DB is created
flask db upgrade
# Or if using raw SQL:
psql -U <username> -d finguide -f database/schema.sqlRun Server:
flask runBackend runs at: http://localhost:5000
Ensure your emulator is running or a device is connected.
# Navigate to /frontend folder
cd frontend
# Get dependencies
flutter pub get
# Run the flutter app
flutter run- Budget limits per category
- Savings goals and progress tracking
- Export reports (PDF / CSV)
- Multi-currency conversion
- Notifications for unusual spending
| Register | Login | Profile |
|---|---|---|
| Dashboard Screen | Dashboard Graphs | Transaction History |
|---|---|---|
| Add Income | Add Expense | Categories List |
|---|---|---|
| Add Category | Insights | AI Insights |
|---|---|---|