About The App
Casierul clasei (“the class treasurer”) is for the parent who looks after a school class's fund. It keeps each child's contributions, the class's expenses, and every payment in one shared record, so the treasurer always knows the balance and who still owes what. One installation can look after several classes and schools, each with its own separate ledger.
The app is in Romanian, with amounts in lei. Access is by invitation, for one class and one role at a time. The treasurer can see and change everything. A parent can see the class totals and their own child's account. An auditor can see the whole ledger and the reports without changing anything. Read-only access can expire on a chosen date. One invitation can activate two devices, such as a phone and a laptop.
Gallery
All the data in these screenshots is made up.
How it works
- Set up the class. Add the school, the class, and the school year, then the children, one at a time or by pasting a list.
- Create expenses. Choose the children taking part and how the cost is shared: a fixed amount per child, a total split between them, or a quantity per child times a unit price.
- Collect money. Tap a child and pick everything they owe or a single expense. Big buttons round the amount up to the next 5, 10, 50, or 100 lei, and any difference is given back as change or kept as an advance.
- Pay and keep records. Record money paid out, with where it went and, optionally, the expense it belongs to, and follow the class balance in the ledger.
Every flow at a glance
Four printable diagrams map all 15 workflows, the same ones the app's built-in help walks you through. Like the app, they are in Romanian.
Features
- Every child's account: Contributions, amounts still owed, advances, and the full history for each child.
- Advances that add up: An advance can later cover another contribution or be refunded, and using it never counts as new money coming in.
- Settled at the till: A child's advance can be used right in the collection screen, so only the rest is asked for in cash. If at most 1 leu is left over, it can stay owed, be covered from the advance, or be closed as a rounding adjustment. The cash itself is always recorded exactly.
- Stop collecting: When a contribution will not be collected, the child can be taken out of a split expense while that is still possible, and everyone else's share is recalculated. Or the contribution can be covered, in part or in full, from money someone advanced to the fund. That lowers what the class owes them without moving cash again, and the child is never shown as paid by their parents.
- Corrections without erasing: A confirmed operation is undone by a separate correction with a reason, so the history always stays complete.
- Exact to the last ban: Amounts are stored in whole bani, the Romanian cents, and splitting a total shares out every last one exactly.
- Safe on a shaky connection: Saving needs the internet, but if a reply gets lost, a retry confirms the same request without recording the payment twice. Changes made on another device have to be checked before saving.
- Money advanced to the fund: When someone pays for the class out of their own pocket, the app records it, links it to an expense if needed, and shows how much the class still owes them until it is repaid in part or in full.
- Supporting documents: Attach PDFs or photos, such as receipts, to expenses and payments. Each file is fingerprinted, and the treasurer decides whether it stays with the treasurer and auditors or is shared with the class's parents.
- PDF reports: Preview, share, or download reports right in the app, colour-coded green for paid, yellow for partly paid, red for overdue, and blue for balances and money paid out. Each PDF keeps the school and class logos and colours it was issued with.
- Expense coverage: The class summary, each expense report, and the contributions table show a bar and a percentage for every expense: how much of what is needed has been covered, with money from parents and amounts covered by the fund shown apart.
- WhatsApp reminders: Save up to two WhatsApp contacts per child and open a private chat with the child's balance already written, optionally sharing their PDF report too. Nothing is sent automatically, and the contacts are only ever seen by the treasurer: never by parents or auditors, and never in PDFs or exports.
- Payment details: The class's Revolut.me link, beneficiary name, and IBAN are kept in the settings and appear in individual, class, and expense reports and in reminders, ready to copy or share.
- Help on every screen: The question mark in the header opens visual guides for all 15 workflows, tailored to your role. Each main screen opens its own guide, and checking how to collect never loses an amount you have already typed.
- Several classes, kept apart: Each class has its own database, children, expenses, reports, logos, and permissions. A selector in the header switches between classes, and the same device can have different roles in different classes.
- Parents see only their own child: A parent's device receives the class totals and their child's details, and never the names or payments of the other children.
- Made for every screen: On a phone, collecting money stays within easy reach. On a tablet, lists spread into columns; on a laptop, the navigation moves to the side and the ledger shows the balance and the history next to each other. Rotating or resizing keeps whatever you were in the middle of typing.
- A friendly look: Warm colours, discreet illustrations, and plain explanations of who owes what. Reports carry small stationery touches, like a notebook and a paper plane, while the amounts and tables stay clear.
- JSON export: A readable copy of the data and its history, without any credentials.
Under the hood
Casierul clasei runs on Node.js 24 with its built-in SQLite. PDFKit creates the reports and a local copy of PDF.js previews them, and the app loads no libraries or fonts from outside servers. It updates itself with pwa-kit, and its invitations and devices are managed from PWA Invite Console. Daily backups are checked for integrity before they are kept. The project is open source under the GPL-3.0 licence.