Skip to content

About

A full-stack invoice management application

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Foreign Exchange Payment Processor

A full-stack invoice management application with service fee calculation based on currency.

Tech Stack

  • Backend: Spring Boot 4.0.2, Kotlin, PostgreSQL, Flyway
  • Frontend: Angular 21, Angular Material, TypeScript
  • Database: PostgreSQL 17.2 (Docker)

Prerequisites

  • Java 21
  • Node.js 25.x
  • Maven 3.x
  • Docker & Docker Compose
  • npm 11.x

Quick Start

1. Start Database

cd backend
docker-compose up -d

Wait for the database to be healthy (check with docker ps).

2. Start Backend

cd backend
mvn clean package
java -jar target/foreign-exchange-payment-processor-1.0.0.jar

Backend runs on: http://localhost:8080

3. Start Frontend

cd frontend/app
npm install
npm start

Frontend runs on: http://localhost:4200

Features

  • Create invoices with automatic service fee calculation
  • EUR invoices: 0% fee
  • USD/GBP invoices: 1% fee (minimum 5 units)
  • Paginated invoice history
  • Real-time form validation
  • Responsive Material Design UI

API Endpoints

  • POST /api/invoices - Create invoice
  • GET /api/invoices?page=0&size=20 - List invoices (paginated)

Database

The application uses Flyway migrations to set up the database schema and seed initial data. Migrations run automatically on startup.

Development

  • Backend: Port 8080
  • Frontend: Port 4200
  • Database: Port 5432

Database credentials (development only):

  • Database: invoice_db
  • User: local_user
  • Password: local_password

About

A full-stack invoice management application

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages