Case study
- Accounting
- Portal
- Java
Alexcon cabinet
A client document cabinet for an accounting practice in Chișinău. Invoices and bank statements arrive in one place, filed against a company and a month, with a status the accountant can move — instead of arriving as attachments in a chat thread.
- Java
- Spring Boot
- Hibernate
- JDBC
- Angular

- Role
- API, data model and front-end
- Built with
- Java · Spring Boot · Hibernate · Angular
The challenge
Clients were sending invoices and bank extracts over chat. Nothing carried a period, nothing carried a status, and there was no record of who had uploaded what. Finding last March meant scrolling a conversation, and a document that was never sent looked exactly the same as one that was sent and missed.
What we built
A login per company
Each client company gets its own account and sees only its own documents. An accountant sees the companies they work with. Nothing is shared by being in the same thread as somebody else.
Folders by month
Documents are filed against a company and a period, so a month is a place you open rather than a date range you scroll back to.
Upload, and a status that moves
The client uploads; the accountant moves the document from received to in progress. Both sides are looking at the same list, so “did you get it?” stops being a message.
Two roles, and they see different things
Client and accountant are separate roles with separate views and separate permissions, rather than one screen with parts hidden.
Spring Boot API behind an Angular front-end
Hibernate for the model, JDBC where a query is better written by hand. The front-end talks to the API and nothing else.
Technical approach
Documents are keyed by company and period, which is the pair every question about them starts with. Metadata lives in the relational store and the files sit behind the API rather than on a public path, so a link is not a way in. Every route is authenticated — there is no read-only corner that quietly is not. Chat is deliberately out of the path: the point of the system is that a document arrives somewhere with a period, an owner and a status attached, and a chat message can carry none of those.
The product

Got something like this to build?
Start a conversation