Skip to content

SVIGHNESH/Anton-Money-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Anton Java - Money Tracker

A comprehensive money tracking and budgeting application with Indian Rupee (β‚Ή) support, built with Java and JavaFX.

πŸš€ Quick Start

Download & Run (Recommended)

  1. Download: Get the latest anton-money-tracker.jar from Releases
  2. Install Java 17+: Download from Adoptium if needed
  3. Run: Double-click the JAR file or run java -jar anton-money-tracker.jar

Build from Source

git clone https://github.com/[your-username]/Anton.git
cd Anton
mvn clean package
java -jar target/anton-money-tracker.jar

Features

πŸ’° Budget Management

  • Period-based Budgeting: Set budgets for specific time periods with start and end dates
  • Daily Budget Calculation: Automatic calculation of daily spending allowance
  • Budget Redistribution: Smart recalculation of daily budgets based on spending patterns
  • Multiple Budget Support: Track different budget periods and view historical data

πŸ“Š Expense Tracking

  • Easy Expense Entry: Quick and intuitive expense recording
  • Category Organization: Organize expenses with customizable categories
  • Transaction History: Complete history of all transactions with search and filtering
  • Real-time Updates: Instant updates to budget calculations and progress

πŸ“ˆ Analytics & Insights

  • Spending Analytics: Visual charts and graphs showing spending patterns
  • Category Breakdown: Pie charts showing spending distribution by category
  • Daily/Weekly/Monthly Views: Multiple time period analysis
  • Budget Progress: Real-time progress tracking with visual indicators
  • Spending Trends: Historical data analysis and trend identification

🎨 Modern User Interface

  • JavaFX-based UI: Modern, responsive interface built with JavaFX
  • Card-based Design: Clean, organized layout with card-based components
  • Color-coded Progress: Visual indicators for budget health
  • Responsive Layout: Adapts to different window sizes

πŸ’Ύ Data Management

  • SQLite Database: Local storage with reliable SQLite database
  • Data Persistence: All data stored locally and securely
  • Backup Ready: Easy to backup and restore data files
  • Default Categories: Pre-configured expense categories to get started quickly

Getting Started

Prerequisites

  • Java 17 or higher
  • Maven 3.6 or higher

Installation & Running

  1. Clone or download the project

    git clone <repository-url>
    cd anton-java
  2. Build the project

    mvn clean compile
  3. Run the application

    mvn javafx:run

    Or alternatively:

    mvn clean javafx:run

Building an Executable JAR

mvn clean package
java -cp target/anton-java-1.0.0-shaded.jar com.moneytracker.BuckwheatApp

Project Structure

src/
β”œβ”€β”€ main/
β”‚   β”œβ”€β”€ java/
β”‚   β”‚   └── com/moneytracker/
β”‚   β”‚       β”œβ”€β”€ BuckwheatApp.java           # Main application class
β”‚   β”‚       β”œβ”€β”€ controller/                 # UI Controllers
β”‚   β”‚       β”‚   └── MainController.java
β”‚   β”‚       β”œβ”€β”€ model/                      # Data Models
β”‚   β”‚       β”‚   β”œβ”€β”€ Budget.java
β”‚   β”‚       β”‚   β”œβ”€β”€ Transaction.java
β”‚   β”‚       β”‚   └── Category.java
β”‚   β”‚       β”œβ”€β”€ service/                    # Business Logic
β”‚   β”‚       β”‚   β”œβ”€β”€ BudgetService.java
β”‚   β”‚       β”‚   β”œβ”€β”€ TransactionService.java
β”‚   β”‚       β”‚   └── CategoryService.java
β”‚   β”‚       └── database/                   # Data Access
β”‚   β”‚           └── DatabaseManager.java
β”‚   └── resources/
β”‚       β”œβ”€β”€ fxml/                          # FXML UI Files
β”‚       β”‚   └── main.fxml
β”‚       β”œβ”€β”€ css/                           # Stylesheets
β”‚       β”‚   └── application.css
β”‚       └── images/                        # Application Images
└── test/                                  # Unit Tests (Future)

Core Components

Models

  • Budget: Represents a budget period with total amount, spent amount, and date range
  • Transaction: Represents individual transactions (expenses, income, budget changes)
  • Category: Represents expense categories for organization

Services

  • BudgetService: Handles budget creation, updates, and calculations
  • TransactionService: Manages all transaction operations and analytics
  • CategoryService: Manages expense categories
  • DatabaseManager: Handles SQLite database operations

Features Implementation

Budget Management

Similar to the original Buckwheat app's budget system:

  • Set total budget amount and period
  • Automatic daily budget calculation
  • Smart budget redistribution when spending changes
  • Progress tracking and visual indicators

Daily Budget Calculation

The app implements intelligent daily budget calculation:

  • Initial daily budget = Total budget Γ· Total days
  • Recalculation when needed = Remaining budget Γ· Remaining days
  • Considers actual spending patterns and remaining time

Analytics Dashboard

Comprehensive analytics similar to Buckwheat:

  • Budget progress with percentage and visual bars
  • Spending by category with pie charts
  • Daily, weekly, monthly spending analysis
  • Biggest expenses and spending trends

Technology Stack

  • Java 17: Core programming language
  • JavaFX 19: Modern UI framework
  • SQLite: Local database storage
  • Maven: Build and dependency management
  • Jackson: JSON processing (for future features)

Key Features Inspired by Buckwheat

  1. Smart Budget Distribution: Like Buckwheat's intelligent daily budget recalculation
  2. Period-based Budgeting: Set budgets for trips, months, or custom periods
  3. Visual Progress Tracking: Color-coded progress bars and percentage indicators
  4. Category-based Organization: Organize and analyze spending by categories
  5. Real-time Updates: Immediate feedback on spending and budget status

Database Schema

Tables

  • budgets: Budget periods with amounts and dates
  • transactions: All financial transactions with types and categories
  • categories: Expense categories with colors and descriptions

Relationships

  • Transactions belong to budgets and categories
  • Categories are reusable across different budgets
  • Foreign key constraints ensure data integrity

Future Enhancements

  • Import/Export functionality
  • Multiple currency support
  • Advanced reporting and charts
  • Recurring transaction support
  • Budget templates
  • Dark mode theme
  • Mobile companion app
  • Cloud sync capabilities

Development

Adding New Features

  1. Create/modify model classes in model/ package
  2. Add business logic in appropriate service classes
  3. Update UI controllers and FXML files
  4. Add database schema changes in DatabaseManager
  5. Update tests and documentation

Testing

mvn test

Code Style

  • Follow Java naming conventions
  • Use meaningful variable and method names
  • Add JavaDoc comments for public methods
  • Keep methods focused and classes cohesive

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

This project is open source. Feel free to use, modify, and distribute according to your needs.

Acknowledgments

  • Inspired by the original Buckwheat app by Danil Zakhvatkin
  • Built with modern Java and JavaFX technologies
  • Designed with user experience and functionality in mind

Note: This is a desktop application built with JavaFX. Make sure you have Java 17+ and JavaFX runtime available on your system to run the application.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors