Nederlands, English
Donate to ASK-Solutions (the IRADIS Foundation), Watch our videos, Support us at Patreon
Logon

Bookkeeping

Bookkeeping is an active AGPLv3 Java client/server administration platform developed and used by ASK-Solutions. It began from bookkeeping needs, but has grown into a broader internal administration system for financial administration, relations, project definitions, bank statements, subscriptions, mileage, notifications, portal integration and operational infrastructure support.

Bookkeeping is not a bookkeeping service. It is free software developed from ASK-Solutions’ own need to keep financial, organisational and operational administration under its own control. The project connects practical administration with long-term maintainability, source-code preservation, reusable infrastructure and software freedom.

What Bookkeeping is

Bookkeeping is a Java client/server application. The server is written in Java and can run under Linux or Windows. The client is also written in Java and includes interface scaling and selectable pluggable look-and-feel settings.

The system is used by ASK-Solutions for bookkeeping, VAT administration, general ledger work, financial reporting, relation management, bank-statement processing, subscriptions, mileage administration, project definitions and internal processes. Although the name points to bookkeeping, the project is broader than a ledger application: it is an administrative platform used in the foundation’s daily work.

Why ASK-Solutions built it

ASK-Solutions needed administration software that could fit its own structure and remain under its own control. The foundation works with different activities, relations, projects, technical systems, invoices, subscriptions, vehicles, bank statements and internal processes. In the 2000s, a system with that scope would often have been treated as a custom ERP- or CRM-like application: an on-premises server-based system developed or customised by an external software house, consultancy or freelancer, usually with database-backed business logic, user licences, support contracts and long-term vendor dependency.

That route did not fit ASK-Solutions. The foundation already had the technical knowledge to design and maintain such a system itself, and paying a large sum for a closed custom application would have moved money, control and long-term dependency toward a third party. Developing Bookkeeping as free software aligned better with the foundation’s ethics and public-benefit mission: the system could remain inspectable, adaptable, maintainable and shareable, while directly serving the foundation’s own administrative needs.

Bookkeeping therefore grew from practical use. New functions were added where real administrative needs appeared: VAT overviews, asset tracking, relation management, subscriptions, mileage, bank-statement imports, notification emails, project definitions, portal integration and operational support for domain and email administration.

Architecture

Bookkeeping is built as a Java client/server system. The Java client communicates with the server through TLS-protected RMI. The server uses MySQL for persistent storage, but the application logic is not tied directly to raw database tables. It uses serializable POJOs (Plain Old Java Objects) and a database abstraction layer with caching, access control and logging.

The server also exposes a REST API for integration with other ASK-Solutions systems. This makes it possible to connect Bookkeeping to web portals, automation services and other internal tools without making the Java client the only way to interact with the system.

Several parts of the underlying codebase come from earlier ASK-Solutions software work. Some of the libraries and patterns go back to projects such as A340GC and other Java-based work from the Java 1.2 era in the late 1990s. Those code lines are still maintained and used today.

Financial administration and reporting

Next to the general ledger, Bookkeeping provides the usual financial overviews needed for day-to-day administration: balance-sheet views, assets and liabilities, profit-and-loss overviews, configurable journals and VAT overviews per day, week, month, quarter, year or custom date range.

Invoices can be viewed, searched and filtered by account, relation, description, reference, date range and other practical fields. The same approach is available for viewing the underlying bookings and mutations between accounts directly. This makes it possible to work both from the invoice side and from the underlying ledger side.

Bookkeeping also supports bank-statement imports. Imported statements can be settled against incoming and outgoing invoices, allowing payments, receivables and payables to be followed up from within the same administrative environment.

Entities, accounts and RGS

Bookkeeping supports multiple entities. Each entity can have its own accounts, or share account definitions while keeping its own mutations separate. This allows a full chart of accounts, such as an RGS setup, to be maintained once, while only entity-specific accounts need to be added per entity.

That structure is important for ASK-Solutions because different activities may need their own administration while still benefiting from shared account definitions, reporting structures and reusable setup work.

Projects and WasteBug integration

Bookkeeping also manages a project list used within ASK-Solutions. Projects can have a name, number, relation, start date and end date, and can be grouped for practical administration and follow-up.

This project structure is also used by an adapted ASK-Solutions version of WasteBug. That WasteBug version, available under the AGPLv3, adds an extra project field and an extra database column. Through a database view and cross database foreign key constraint, WasteBug links that field to the project-definition table in Bookkeeping. This makes it possible to select projects from one or more project groups directly in WasteBug and connect cases, bugs and tasks to the relevant project.

The integration keeps project administration and issue tracking connected without turning either system into the other. Bookkeeping remains the administrative source for project definitions, while WasteBug remains the practical tool for tracking cases and development work.

Relations, access and notifications

Bookkeeping manages relations and contacts. It also includes username and password generation, access control and logging. The server can recognise clients by hostname and/or IP address for configured auto-login or entity selection.

The server can send notification emails about accounts payable and accounts receivable. It also has support for sending email and SMS notifications, through its own MTA implementation where that is used.

Bookkeeping can track subscriptions and notify about renewals. This connects financial administration with practical follow-up: relations, subscriptions, invoices, renewals and notifications can be handled in one administrative context.

Portal integration

The Bookkeeping REST API is used by a Nocterra add-on that provides a self-service portal. Through that portal, relations can edit their own details, view open invoices or invoices due, and download invoice documents.

For ASK-Media-Solutions, the same integration line also supports domain and email-related administration. This makes Bookkeeping part of a wider administrative and operational system, not only a back-office ledger tool.

Operational services

The Bookkeeping service has an extension that can run scheduled jobs, update configuration files and trigger Apache and Postfix configuration reloads. This connects administrative data with controlled operational changes, while keeping the logic in software that can be inspected, maintained and adapted.

Bookkeeping can also handle print jobs. This allows a remote client to print overviews on a central printer through the server-side environment.

Cashier functions

The Bookkeeping client includes a cashier mode. That mode can connect to a scale, payment terminal and receipt printer. These devices do not necessarily need to be connected to the same computer that is running the client; they can be handled through the broader Bookkeeping service environment.

This reflects the same design pattern as other parts of the system: administration, devices and operational handling are connected through controlled software instead of depending on one local desktop setup.

Trips, mileage and vehicles

Bookkeeping supports trip and mileage administration. It can track trips for an entity-owned vehicle, and it can also register public transport trips, private cars or bicycles used for deductible mileage and reimbursements.

This makes vehicle and travel administration part of the same system as the financial records, relations and internal processes that depend on it.

What it currently does not do

Bookkeeping currently does not directly create invoices. ASK-Solutions creates invoices in LibreOffice and then enters them in Bookkeeping. The system can then be used to administer, search, follow up and settle those invoices.

Bookkeeping also does not currently include wage administration or other HR functions.

Licence

The Bookkeeping server, Java client, service extension, Nocterra portal add-on, Linux systemd services, scripts and related C programs are available under the GNU Affero General Public License version 3.

That licence choice fits the project because Bookkeeping is not only local desktop software. It includes server-side services, remote clients, REST API integration, portal functionality and operational automation. The AGPLv3 helps keep that networked software available to study, adapt, preserve and share.

Relationship with ASK-Solutions

Bookkeeping belongs to the same free-software line as Nocterra, WasteBug, BackPage, Synergos and other ASK-Solutions software projects. It was built from practical need, but it also expresses a broader position: organisations should not lose control over their own administration, data, workflows and infrastructure because the software around them is closed, rented, opaque or difficult to preserve.

For ASK-Solutions, administrative software is not separate from software freedom. Bookkeeping handles financial and operational information that the foundation depends on. Keeping that system inspectable, adaptable and under free-software terms is part of the same practical philosophy that appears in repair, documentation, Right to Ownership, free hardware and source-based publishing.

Bookkeeping also shows how older software work can remain useful when it is maintained instead of discarded. Code patterns and libraries from earlier projects were carried forward, adapted and kept in use. In that sense, Bookkeeping is not only an administration system, but also part of ASK-Solutions’ long-term software continuity.

Status

Bookkeeping is an active free software project developed and used by ASK-Solutions. It serves the foundation’s current administration and continues to be maintained and developed where practical needs arise. Although it is built from ASK-Solutions’ own administrative needs, it is available under the AGPLv3 so others can use, study, modify and share it under the licence terms.

The current software covers bookkeeping, VAT administration, general ledger work, reporting, relations, bank-statement processing, project definitions, subscriptions, mileage, notifications, portal integration and operational support. Some functions, such as direct invoice creation and wage administration, are not currently part of the system.

Where to go next