Project Case Study

FinanceTracker

A program to extract transaction data from Capitec bank statements. Transaction data is then displayed and organised in a meaningful way.

Project Overview

💰 Personal Finance Tracker

🌟 Overview

This project is a comprehensive Personal Finance Tracker designed to help me manage my income and expenses effectively. Built with Java and Spring Boot, it offers a robust backend with a responsive frontend powered by Thymeleaf and Bootstrap.

Key Features

  • Dashboard Overview: Get a snapshot of your current financial health, including total balance, income, and expenses.
  • Transaction Management: Easily add, edit, and delete income and expense records with categorization.
  • Visual Analytics: Interactive charts powered by Chart.js to visualize spending habits and trends over time.
  • Responsive Design: A clean, mobile-friendly interface built with Bootstrap 5.

Empowering you to take control of your financial future.

Technology Stack

🛠️ Tech Stack

Backend

  • Language: Java 25
  • Framework: Spring Boot
  • Persistence: Spring Data JPA
  • Database: MySQL

Frontend & Interactivity

  • Templating: Thymeleaf
  • Styling & Scripts: Bootstrap 5, Chart.js, HTML5, and custom CSS for a responsive and clean design.

Other tools

  • Version Control: Git for source code management.

Build & DevOps

  • Build Tool: Maven

Technical Documentation

📖 Documentation

Project Structure

The project follows a standard Spring Boot application structure:

  • src/main/java/com/example/FinanceTracker: Root package.
    • Controllers: Contains Spring MVC controllers for handling dashboard views, transaction forms, and API endpoints.
    • Services: Houses business logic, such as processing transactions, calculating budget totals, and generating chart data.
    • Repositories: Interfaces for database access and data persistence.
    • Entities: JPA entities representing database tables (e.g., Transaction, Category).
    • DTO: Data Transfer Objects used to shape data for the views and API responses.
    • Component: Contains general-purpose components and utility classes.
  • src/main/resources:
    • static: For static assets like CSS, JavaScript, and images.
    • templates: Contains Thymeleaf HTML templates.
    • application.properties: For application configuration.

The Roadmap

🚀 Future Plans

I am constantly looking to evolve my Personal Finance Tracker. Here is what is currently on my development roadmap:

Analytics

  • Visualizations: Advanced charts for spending habits using Chart.js.

Data Management

  • Export: Ability to export data to CSV and PDF formats.

Budgeting

  • Category Limits: Set monthly spending limits for specific categories.
  • Alerts: Email or UI notifications when approaching budget limits.

Security

  • User Accounts: Implementation of Spring Security for user registration and login.
  • Encryption: Secure storage of sensitive financial data.

Video Demonstration

Walkthrough Video Coming Soon