Business problem
Many small service-based businesses still manage work hours and invoicing manually using spreadsheets, messaging apps or disconnected accounting workflows. This creates operational friction, inconsistent billing and significant time loss during monthly invoice preparation.
The platform centralizes these processes into a single system where businesses can manage clients, employees, recorded hours and invoice generation from one interface.
Architecture overview
The application follows a multi-tenant SaaS architecture where multiple organizations share one deployment while remaining logically isolated at the database level.
Tenant-aware request handling ensures that authenticated users only access data belonging to their organization. Spring Security manages authentication and RBAC, while Flyway controls schema versioning and migration consistency across environments.
The backend was designed around maintainable domain boundaries instead of tightly coupled controller-driven logic, making future feature expansion significantly easier.
Key technical features
- Database-level tenant isolation
- Automated invoice generation from timesheet entries
- PDF invoice creation and export workflows
- Role-based access control with Spring Security
- Tenant-aware request filtering
- Flyway migration management
- Server-side rendered admin interface with Thymeleaf
- MariaDB persistence layer with JPA/Hibernate
- Invoice numbering and billing workflow automation
Technical challenges
One of the most important challenges was balancing tenant isolation with maintainability. SaaS applications frequently become difficult to evolve when tenant handling logic leaks across the codebase.
The project therefore focuses heavily on separation of concerns, centralized tenant context handling and predictable data access patterns.
Another major challenge involved invoice lifecycle consistency. Billing workflows must remain deterministic and auditable, especially when invoices are generated automatically from timesheet data.
The platform also explores deployment and operational concerns including schema migration safety, future scalability and SaaS-oriented application structure.
Technology stack
Java 17, Spring Boot, Spring Security, MariaDB, JPA/Hibernate, Thymeleaf, Flyway, Docker and Heroku deployment.
Repository
Source code and implementation details are available on GitHub.
View on GitHub →