Skip to content

calebesg/ledgerflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 

Repository files navigation

Ledger.Flow$


Page for personal finance control 💰

GitHub language count Repository size License MIT


Image


🏷️ About

Full stack financial management application designed to help users track income and expenses, providing clear insights into their financial data. The system features a secure backend built with Java and Spring Boot, including JWT-based authentication, RESTful APIs, and structured business logic. It also includes a dynamic dashboard and PDF report generation.

💻 Technologies

This app features all the latest tools and practices in web development!

Back-End

  • Java
  • Spring Boot
  • Spring Security (JWT)
  • JPA / Hibernate
  • H2 Database

Front-End

  • Angular
  • TypeScript
  • Tailwind CSS

✨ Features

  • JWT-based authentication
  • User registration and login
  • Financial transactions CRUD operations
  • Dashboard with:
    • Total income
    • Total expenses
    • Consolidated balance
  • Transaction filtering by user
  • Soft delete for records
  • PDF report generation
  • Global exception handling
  • Data validation using Bean Validation

📡 API

POST /auth/login

Performs user authentication.

Request Body:

{
  "email": "string",
  "password": "string"
}

POST /auth/register

Returns the organization data of the authenticated user.

Request Body:

{
  "name": "string",
  "email": "string",
  "password": "string",
  "organizationName": "string",
  "purpose": "string",
  "reportTitle": "string"
}

GET /organization

Returns the organization data of the authenticated user.

POST /transaction/new

Create a new financial transaction.

Request Body:

{
  "description": "string",
  "transactionDate": "yyyy-MM-dd",
  "transactionType": "INCOME | EXPENSE",
  "amount": 0.0
}

GET /transaction/list

Returns the list of transactions of the authenticated user, ordered by date (most recent first).

DELETE /transaction/{id}

Returns the list of transactions of the authenticated user, ordered by date (most recent first).


🏃💨 Getting started

  1. Clone this repo with git clone https://github.com/calebesg/ledgerflow.git
  2. Move yourself to the proffy directory: cd ledgerflow

☁️ Getting started server

  1. Move yourself to the backend directory: cd backend
  2. Run ./mvnw spring-boot:run install all dependencies and start server

💻 Getting started web

  1. Move yourself to the frontend directory: cd frontend
  2. Run npm install to install all dependencies
  3. Run npm start OR ng server to start project

📌 Next Improvements

  • Advanced filters (date, category)
  • Refresh token implementation
  • PostgreSQL integration
  • Docker containerization for the application
  • Application deployment