Nederlands, English
Doneer aan ASK-Solutions (Stichting IRADIS), Bekijk onze video's, Steun ons op Patreon
Aanmelden

Bookkeeping

Bookkeeping is een actief AGPLv3 Java-client/server-administratieplatform dat door ASK-Solutions wordt ontwikkeld en gebruikt. Het is ontstaan vanuit boekhoudkundige behoeften, maar uitgegroeid tot een breder intern administratiesysteem voor financiële administratie, relaties, projectdefinities, bankafschriften, abonnementen, rittenregistratie, meldingen, portaalintegratie en operationele infrastructuurondersteuning.

Bookkeeping is geen boekhouddienst. Het is vrije software, ontwikkeld vanuit de eigen behoefte van ASK-Solutions om financiële, organisatorische en operationele administratie onder eigen zeggenschap te houden. Het project verbindt praktische administratie met onderhoudbaarheid op lange termijn, behoud van broncode, herbruikbare infrastructuur en softwarevrijheid.

Wat Bookkeeping is

Bookkeeping is een Java-client/server-applicatie. De server is geschreven in Java en kan onder Linux of Windows draaien. De client is ook geschreven in Java en ondersteunt interfaceschaling en instelbare pluggable look-and-feel-instellingen.

Het systeem wordt door ASK-Solutions gebruikt voor boekhouding, btw-administratie, grootboekwerk, financiële rapportage, relatiebeheer, bankafschriftverwerking, abonnementen, rittenregistratie, projectdefinities en interne processen. Hoewel de naam naar boekhouding verwijst, is het project breder dan een grootboekapplicatie: het is een administratief platform dat in het dagelijkse werk van de stichting wordt gebruikt.

Waarom ASK-Solutions het bouwde

ASK-Solutions had administratiesoftware nodig die bij de eigen structuur paste en onder eigen zeggenschap kon blijven. De stichting werkt met verschillende activiteiten, relaties, projecten, technische systemen, facturen, abonnementen, voertuigen, bankafschriften en interne processen. In de jaren 2000 zou een systeem met die reikwijdte vaak zijn behandeld als een maatwerkachtige ERP- of CRM-applicatie: een lokaal servergebaseerd systeem, ontwikkeld of aangepast door een extern softwarebedrijf, consultancybureau of freelancer, meestal met databasegedreven bedrijfslogica, gebruikerslicenties, supportcontracten en langdurige leveranciersafhankelijkheid.

Die route paste niet bij ASK-Solutions. De stichting had zelf al de technische kennis om zo’n systeem te ontwerpen en te onderhouden, en een groot bedrag betalen voor een gesloten maatwerkapplicatie zou geld, zeggenschap en langdurige afhankelijkheid naar een derde partij hebben verplaatst. Bookkeeping ontwikkelen als vrije software sloot beter aan bij de ethiek en algemeen-nutmissie van de stichting: het systeem kon inspecteerbaar, aanpasbaar, onderhoudbaar en deelbaar blijven, terwijl het direct de eigen administratieve behoeften van de stichting diende.

Bookkeeping groeide daarom vanuit praktisch gebruik. Nieuwe functies werden toegevoegd waar echte administratieve behoeften ontstonden: btw-overzichten, activabeheer, relatiebeheer, abonnementen, rittenregistratie, bankafschriftimport, notificatie-e-mails, projectdefinities, portaalintegratie en operationele ondersteuning voor domein- en e-mailadministratie.

Architectuur

Bookkeeping is opgebouwd als een Java-client/server-systeem. De Java-client communiceert met de server via TLS-beveiligde RMI. De server gebruikt MySQL voor permanente opslag, maar de applicatielogica is niet direct aan ruwe databasetabellen gekoppeld. Het systeem gebruikt serialiseerbare POJO’s (Plain Old Java Objects) en een database-abstractielaag met caching, toegangscontrole en logging.

De server biedt daarnaast een REST API voor integratie met andere ASK-Solutions-systemen. Daardoor kan Bookkeeping worden verbonden met webportalen, automatiseringsdiensten en andere interne hulpmiddelen, zonder dat de Java-client de enige manier is om met het systeem te werken.

Verschillende delen van de onderliggende codebasis komen voort uit eerder softwarewerk van ASK-Solutions en de IRADIS Foundation. Sommige bibliotheken en patronen gaan terug op projecten zoals A340GC en ander Java-gebaseerd werk uit de Java 1.2-periode aan het einde van de jaren negentig. Die codelijnen worden nog steeds onderhouden en gebruikt.

Financiële administratie en rapportages

Naast het grootboek biedt Bookkeeping de gebruikelijke financiële overzichten die nodig zijn voor dagelijkse administratie: balansoverzichten, activa en passiva, winst-en-verliesoverzichten, configureerbare dagboeken en btw-overzichten per dag, week, maand, kwartaal, jaar of zelf gekozen datumbereik.

Facturen kunnen worden bekeken, gezocht en gefilterd op rekening, relatie, omschrijving, referentie, datumbereik en andere praktische velden. Dezelfde benadering is beschikbaar om de onderliggende boekingen en mutaties tussen rekeningen direct te bekijken. Daardoor kan zowel vanuit de factuurkant als vanuit de onderliggende boekingen en het grootboek worden gewerkt.

Bookkeeping ondersteunt ook het importeren van bankafschriften. Geïmporteerde afschriften kunnen worden afgeletterd tegen inkomende en uitgaande facturen, zodat betalingen, vorderingen en schulden vanuit dezelfde administratieve omgeving kunnen worden opgevolgd.

Entiteiten, rekeningen en RGS

Bookkeeping ondersteunt meerdere entiteiten. Elke entiteit kan eigen rekeningen hebben, of rekeningdefinities delen terwijl de eigen mutaties gescheiden blijven. Daardoor kan een volledig rekeningschema, zoals een RGS-inrichting, één keer worden onderhouden, terwijl per entiteit alleen entiteitsspecifieke rekeningen hoeven te worden toegevoegd.

Die structuur is belangrijk voor ASK-Solutions omdat verschillende activiteiten hun eigen administratie nodig kunnen hebben, terwijl zij toch profiteren van gedeelde rekeningdefinities, rapportagestructuren en herbruikbaar inrichtingswerk.

Projecten en WasteBug-integratie

Bookkeeping beheert ook een projectlijst die binnen ASK-Solutions wordt gebruikt. Projecten kunnen een naam, nummer, relatie, startdatum en einddatum hebben, en kunnen worden gegroepeerd voor praktische administratie en opvolging.

Deze projectstructuur wordt ook gebruikt door een aangepaste ASK-Solutions-versie van WasteBug. Die WasteBug-versie, beschikbaar onder de AGPLv3, voegt een extra projectveld en een extra databasekolom toe. Via een databaseview en een cross-database foreign-key-constraint koppelt WasteBug dat veld aan de projectdefinitietabel in Bookkeeping. Daardoor kunnen projecten uit een of meerdere projectgroepen direct in WasteBug worden geselecteerd en kunnen cases, bugs en taken aan het juiste project worden gekoppeld.

De integratie houdt projectadministratie en issue tracking met elkaar verbonden zonder dat het ene systeem het andere wordt. Bookkeeping blijft de administratieve bron voor projectdefinities, terwijl WasteBug het praktische hulpmiddel blijft voor het volgen van cases en ontwikkelwerk.

Relaties, toegang en meldingen

Bookkeeping beheert relaties en contacten. Het bevat ook gebruikersnaam- en wachtwoordgeneratie, toegangscontrole en logging. De server kan clients herkennen op hostnaam en/of IP-adres voor geconfigureerde automatische login of entiteitsselectie.

De server kan notificatie-e-mails verzenden over crediteuren en debiteuren. Het systeem ondersteunt ook het verzenden van e-mail- en sms-meldingen, via een eigen MTA-implementatie waar die wordt gebruikt.

Bookkeeping kan abonnementen bijhouden en meldingen over verlengingen geven. Daarmee wordt financiële administratie verbonden met praktische opvolging: relaties, abonnementen, facturen, verlengingen en meldingen kunnen in één administratieve context worden behandeld.

Portaalintegratie

De REST API van Bookkeeping wordt gebruikt door een Nocterra-add-on die een selfserviceportaal aanbiedt. Via dat portaal kunnen relaties hun eigen gegevens aanpassen, openstaande of verschuldigde facturen bekijken en factuurdocumenten downloaden.

Voor ASK-Media-Solutions ondersteunt dezelfde integratielijn ook administratie rond domeinen en e-mail. Daarmee wordt Bookkeeping onderdeel van een breder administratief en operationeel systeem, niet alleen een grootboekhulpmiddel voor de backoffice.

Operationele diensten

De Bookkeeping-service heeft een uitbreiding die geplande taken kan uitvoeren, configuratiebestanden kan bijwerken en herlaadacties voor Apache- en Postfix-configuratie kan starten. Zo worden administratieve gegevens verbonden met gecontroleerde operationele wijzigingen, terwijl de logica blijft staan in software die geïnspecteerd, onderhouden en aangepast kan worden.

Bookkeeping kan ook printtaken afhandelen. Daardoor kan een client op afstand overzichten afdrukken op een centrale printer via de serveromgeving.

Kassafuncties

De Bookkeeping-client bevat een kassamodus. Die modus kan verbinding maken met een weegschaal, betaalterminal en bonprinter. Deze apparaten hoeven niet noodzakelijk op dezelfde computer te zijn aangesloten als de computer waarop de client draait; ze kunnen via de bredere Bookkeeping-serviceomgeving worden afgehandeld.

Dit weerspiegelt hetzelfde ontwerppatroon als andere delen van het systeem: administratie, apparaten en operationele afhandeling worden verbonden via gecontroleerde software, in plaats van afhankelijk te zijn van één lokale desktopopstelling.

Ritten, kilometers en voertuigen

Bookkeeping ondersteunt ritten- en kilometeradministratie. Het kan ritten bijhouden voor een voertuig van een entiteit, en ook reizen met openbaar vervoer, privéauto’s of fietsen registreren die worden gebruikt voor aftrekbare kilometers en vergoedingen.

Daarmee wordt voertuig- en reisadministratie onderdeel van hetzelfde systeem als de financiële gegevens, relaties en interne processen die ervan afhankelijk zijn.

Wat het momenteel niet doet

Bookkeeping maakt momenteel niet rechtstreeks facturen aan. ASK-Solutions maakt facturen in LibreOffice en voert ze daarna in Bookkeeping in. Het systeem kan vervolgens worden gebruikt om die facturen te administreren, te zoeken, op te volgen en af te letteren.

Bookkeeping bevat momenteel ook geen loonadministratie of andere HR-functies.

Licentie

De Bookkeeping-server, Java-client, service-uitbreiding, Nocterra-portaaladd-on, Linux-systemd-services, scripts en bijbehorende C-programma’s zijn beschikbaar onder de GNU Affero General Public License versie 3.

Die licentiekeuze past bij het project omdat Bookkeeping niet alleen lokale desktopsoftware is. Het omvat serverdiensten, clients op afstand, REST API-integratie, portaalfunctionaliteit en operationele automatisering. De AGPLv3 helpt deze netwerksoftware beschikbaar te houden om te bestuderen, aan te passen, te bewaren en te delen.

Relatie met ASK-Solutions

Bookkeeping behoort tot dezelfde vrije-softwarelijn als Nocterra, WasteBug, BackPage, Synergos en andere softwareprojecten van ASK-Solutions. Het is gebouwd vanuit praktische behoefte, maar drukt ook een bredere positie uit: organisaties zouden geen zeggenschap moeten verliezen over hun eigen administratie, gegevens, werkprocessen en infrastructuur doordat de software daaromheen gesloten, gehuurd, ondoorzichtig of moeilijk te bewaren is.

Voor ASK-Solutions en de IRADIS Foundation staat administratieve software niet los van softwarevrijheid. Bookkeeping verwerkt financiële en operationele informatie waarvan de stichting afhankelijk is. Dat systeem inspecteerbaar, aanpasbaar en onder vrije-softwarevoorwaarden houden, hoort bij dezelfde praktische filosofie die zichtbaar is in reparatie, documentatie, Right to Ownership, vrije hardware en brongebaseerd publiceren.

Bookkeeping laat ook zien hoe ouder softwarewerk bruikbaar kan blijven wanneer het wordt onderhouden in plaats van weggegooid. Codepatronen en bibliotheken uit eerdere projecten zijn meegenomen, aangepast en in gebruik gehouden. In die zin is Bookkeeping niet alleen een administratiesysteem, maar ook onderdeel van de softwarecontinuïteit van ASK-Solutions op lange termijn.

Status

Bookkeeping is een actief vrije-softwareproject dat door ASK-Solutions wordt ontwikkeld en gebruikt. Het ondersteunt de huidige administratie van de stichting en wordt onderhouden en verder ontwikkeld waar praktische behoeften ontstaan. Hoewel het is gebouwd vanuit de eigen administratieve behoeften van ASK-Solutions, is het beschikbaar onder de AGPLv3, zodat anderen het onder de licentievoorwaarden kunnen gebruiken, bestuderen, aanpassen en delen.

De huidige software omvat boekhouding, btw-administratie, grootboekwerk, rapportages, relaties, bankafschriftverwerking, projectdefinities, abonnementen, rittenregistratie, meldingen, portaalintegratie en operationele ondersteuning. Sommige functies, zoals het rechtstreeks aanmaken van facturen en loonadministratie, maken momenteel geen deel uit van het systeem.

Waar kun je verder?

ASK-Solutions werkt volgens de ISO 9001:2008 kwaliteitsnorm.