A Spring Boot invoicing application with role-based access control.
π― Final project for the Spring Advanced - June 2020 course.
This educational project demonstrates user management, company handling, and automated scheduling features.
- 3 role types:
ADMIN,ROUTE,USER - The first user gets full admin rights
- New users need admin approval
- Role-based access control
- Name, address, and unique identifier
- The first company becomes an invoice issuer
- All others are contractors
- Name, price, image, and VAT value
- Cloudinary image upload with fallback
- Session-based storage system
- Auto-generated numbers and tracking
- Payment types: cash or bank transfer
- Status workflow:
AWAITβCOMPLETE - Users see only their own invoices (non-admin)
- Request logging with interceptors
- Scheduled log cleanup (every 5 minutes)
- Automatic invoice status updates
-
Clone the repository
git clone https://github.com/mark79-github/Simple-Invoicing.git
-
Configure either MySQL or PostgreSQL database connection
-
Configure Cloudinary credentials
-
Run the application
mvn spring-boot:run
-
Access at
http://localhost:8080