An intelligent expense management application powered by AI
Features β’ Installation β’ API Docsβ’ Team
AI Expense Tracker is a comprehensive financial management solution that leverages artificial intelligence to simplify expense tracking. The application features a robust Spring Boot backend, native iOS mobile app, and responsive web dashboard.
- AI-Powered: Automatic receipt scanning and expense categorization
- Multi-Platform: iOS app + Web dashboard with real-time sync
- Voice Control: Hands-free expense creation via voice commands
- Smart Analytics: Interactive charts and spending insights
| Feature | Description | Status |
|---|---|---|
| π Manual Expense Entry | Traditional form-based expense logging | π§π»βπ» Completed |
| π· Receipt OCR Scanning | AI-powered receipt scanning with automatic data extraction | π§π»βπ» Completed |
| π€ Voice Input | Natural language expense creation via voice commands | π§π»βπ» Completed |
| π·οΈ AI Categorization | Machine learning-based automatic expense categorization | π§π»βπ» Completed |
| π Data Visualization | Interactive charts and spending analytics | π§π»βπ» Completed |
| π Secure Authentication | JWT + OAuth2 with role-based access control | π§π»βπ» Completed |
- Backend: Spring Boot with RESTful APIs
- Database: PostgreSQL with optimized queries
- Mobile: Native iOS app built with SwiftUI
- Web: React dashboard with Tailwind CSS
- Security: JWT authentication with secure credential storage
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β iOS Mobile β ββββ Spring Boot β βββΊβ PostgreSQL β
β (SwiftUI) β β Backend API β β Database β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β
β β
βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ
β Web Dashboard β β AI Services β
β (React) β β (OCR, ML, Voice) β
βββββββββββββββββββ ββββββββββββββββββββ
- Java 21+
- PostgreSQL 12+
- Xcode 15+ (for iOS development)
- Node.js 18+ (for web dashboard)
- Maven 3.6+
- Create Database:
CREATE DATABASE aiexpensedb;- Create Users Table:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(20) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
contact_number VARCHAR(10) UNIQUE,
role VARCHAR(50),
enabled BOOLEAN DEFAULT TRUE,
-- Constraints
CHECK (char_length(name) >= 2 AND char_length(name) <= 20),
CHECK (char_length(password) >= 5),
CHECK (contact_number ~ '^[0-9]{10}$')
);# Clone the repository
git clone https://github.com/NemSothea/AIExpenseTrackerBackEnd.git
cd AIExpenseTrackerBackEnd
# Configure database connection
# Edit src/main/resources/application.properties
# Run the application
mvn spring-boot:run# Clone frontend repository
git clone https://github.com/NemSothea/AIExpenseTrackerFrontend.git
cd AIExpenseTrackerFrontend
# Create environment file
echo "VITE_BASE_URL=https://localhost:5173" > .env
# Install dependencies
npm install
# Start development server
npm run dev- Open in Xcode:
git clone https://github.com/NemSothea/AI-Expense-Tracker.git
open AI-Expense-Tracker/AIExapenseTracker.xcodeproj-
Configure API Endpoint:
- Update
API_BASE_URLinNetworkManager.swift - Configure bundle identifier and signing certificates
- Update
-
Build and Run:
- Select target device/simulator
- Press
Cmd + Rto build and run
http://localhost:8080
POST /auth/signup
{
"name": "Sothea",
"email": "[email protected]",
"password": "secret123",
"contact": "0123456789",
"role": "ROLE_CUSTOMER"
}POST /auth/login
{
"email": "[email protected]",
"password": "secret123"
}Response:
{
"token": "eyJhbGciOiJIUzI1NiJ9...",
"email": "[email protected]"
}GET /api/expenses
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
http://localhost:8080/api/expensesPOST /api/expenses
{
"amount": 29.99,
"description": "Lunch at restaurant",
"category": "Food & Dining",
"date": "2024-12-19",
"paymentMethod": "Credit Card"
}PUT /api/expenses/{id}
DELETE /api/expenses/{id}
GET /api/categories
Access Swagger UI at: http://localhost:8080/swagger-ui/index.html
-
Manual Entry:
- Tap the "+" button on main screen
- Fill in expense details (amount, category, date, description)
- Save to automatically categorize with AI
-
Receipt Scanning:
- Select "Scan Receipt" option
- Capture receipt using device camera
- AI extracts amount, merchant, and date automatically
- Review and confirm details
-
Voice Input:
- Tap microphone icon
- Speak expense details naturally: "I spent $15 on lunch today"
- AI processes and creates expense entry
- Dashboard: View spending overview with interactive charts
- Expense List: Scroll through all expenses with sort/filter options
- Search: Find specific expenses by description or merchant
- Categories: View spending breakdown by category
- Smart Filtering: Filter by date range, category, amount
- Data Export: Export expenses to CSV format
- Budget Alerts: Set monthly budgets and receive notifications
- Multi-Currency: Support for different currencies
| Role | Member | Responsibilities |
|---|---|---|
| Project Lead | Sothea | iOS development, Spring Boot API, AI integration |
| Database Architect | Pisey | PostgreSQL design, query optimization, data integrity |
| UI/UX Designer | Seyha | Application design, web dashboard development |
| Documentation Lead | Srey Nich | Documentation, presentations, demo preparation |
AI-Expense-Tracker/
βββ backend/ # Spring Boot application
β βββ src/main/java/
β βββ src/main/resources/
β βββ pom.xml
βββ ios/ # iOS SwiftUI application
β βββ Models/
β βββ Views/
β βββ ViewModels/
β βββ Utilities/
βββ frontend/ # React web dashboard
βββ src/
βββ public/
βββ package.json
cd backend
mvn clean package
java -jar target/expense-tracker-1.0.0.jarcd ios
xcodebuild -workspace AIExapenseTracker.xcworkspace -scheme AIExapenseTrackercd frontend
npm run build
npm startWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- Use descriptive commit messages
- Include relevant emojis for better readability:
- π¨: Code structure/format improvements
- π: Bug fixes
- β¨: New features
- π: Documentation updates
- π§: Configuration changes
Backend won't start:
- Check PostgreSQL is running:
pg_isready - Verify database credentials in
application.properties - Ensure port 8080 is available
iOS build failures:
- Clean build folder:
Shift + Cmd + K - Reset package caches:
File > Packages > Reset Package Caches - Check signing certificates and bundle identifier
Frontend connection issues:
- Verify backend is running on port 8080
- Check
VITE_BASE_URLin.envfile - Clear browser cache or try incognito mode
Backend logs: tail -f logs/application.log
iOS debugging: Use Xcode debug console
Frontend debugging: Browser developer tools
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for AI/ML capabilities
- Spring Boot community for excellent documentation
- SwiftUI team for modern iOS development framework
- PostgreSQL for reliable database performance
- Backend Issues: Create Issue
- iOS App Issues: Create Issue
- Frontend Issues: Create Issue
- Main Repository: AI Expense Tracker
- Backend API: Spring Boot Backend
- Web Dashboard: React Frontend
- OpenAI Platform: API Keys
- Slide Document: Slide
Made with β€οΈ by the AI Expense Tracker Team
Simplifying financial management through AI power