Skip to content

mark79-github/Simple-Invoicing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“§ Simple Invoicing

A Spring Boot invoicing application with role-based access control.

Quality Gate Status Bugs Coverage Code Smells Duplicated Lines (%) Deployment Status MIT License

🎯 Final project for the Spring Advanced - June 2020 course.

This educational project demonstrates user management, company handling, and automated scheduling features.


πŸ—οΈ Technology Stack

βš™οΈ Backend

  • Java 17
  • Spring Boot
  • Spring MVC
  • Spring Data JPA
  • Spring Security
  • Validation

🎨 Frontend

  • Thymeleaf
  • Thymeleaf Security

πŸ—„οΈ Database

  • MySQL Primary database (development)
  • PostgreSQL Production database support
  • H2 In-memory database (testing)

πŸ“š Additional Libraries

  • ModelMapper
  • Cloudinary

πŸ› οΈ Development & Testing

  • Spring Boot DevTools
  • JaCoCo
  • Maven

✨ Features

πŸ” Roles & Users

  • 3 role types: ADMIN, ROUTE, USER
  • The first user gets full admin rights
  • New users need admin approval
  • Role-based access control

🏒 Companies

  • Name, address, and unique identifier
  • The first company becomes an invoice issuer
  • All others are contractors

πŸ“¦ Items

  • Name, price, image, and VAT value
  • Cloudinary image upload with fallback
  • Session-based storage system

🧾 Invoices

  • Auto-generated numbers and tracking
  • Payment types: cash or bank transfer
  • Status workflow: AWAIT β†’ COMPLETE
  • Users see only their own invoices (non-admin)

πŸ“Š Automation

  • Request logging with interceptors
  • Scheduled log cleanup (every 5 minutes)
  • Automatic invoice status updates

πŸš€ Quick Start

  1. Clone the repository

    git clone https://github.com/mark79-github/Simple-Invoicing.git
  2. Configure either MySQL or PostgreSQL database connection

  3. Configure Cloudinary credentials

  4. Run the application

    mvn spring-boot:run
  5. Access at http://localhost:8080


🌟 Star this repository if you find it helpful!

Made with ❀️ and lots of β˜•

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages