Desktopbaserat bokföringsprogram för små svenska företag. Byggt med Groovy, Swing och en inbäddad H2-databas — inga externa tjänster behövs.
Programmet hanterar löpande bokföring, moms, rapporter, SIE-utväxling och årsbokslut. Det är inte ett komplett affärssystem — fakturering, lönehantering, bankintegration och årsredovisningsflöden ingår inte.
- Flerföretagsstöd — skapa och växla mellan flera företag i samma installation. Varje företag har egen kontoplan, egna räkenskapsår, nummerserier, hashkedjor och rapportarkiv. Data isoleras fullständigt via
company_idi datamodellen. - Kontoplan — BAS-baserad kontoplan med import från Excel och automatisk klassificering. Kontoplanen är företagsspecifik — två företag kan ha samma BAS-kontonummer utan konflikt.
- Räkenskapsår och perioder — skapa år, dela in i perioder och lås perioder när de är klara.
- Verifikationer — registrera, bokför och korrigera verifikationer med bilagor.
- Moms — beräkna, rapportera och bokför momsöverföring per period. Stöder månads-, kvartals- och årsmoms.
- Rapporter — generera verifikationslista, huvudbok, provbalans, resultat- och balansrapport, transaktionsrapport och momsrapport som PDF eller CSV. Rapporter arkiveras med checksumma.
- SIE4 — importera och exportera bokföringsdata via SIE4 med dubblettskydd och integritetskontroll.
- Bokslut — stäng räkenskapsår med bokslutsverifikation och automatisk generering av nästa års ingående balanser.
- Revisionskedja — alla väsentliga händelser loggas i en hashkedja för spårbarhet.
Följande funktioner ingår inte i v1.0.0:
- Fakturering och lön
- Bankintegration
- Årsredovisningsflöden
- Anläggningsregister (planerat till v1.1.0)
- Förbättrad kraschsäker bilagehantering (planerat till v1.1.0)
- Java 21 eller senare
git clone https://github.com/Alipsa/accounting.git
cd accounting
./gradlew runApplikationen skapar sin H2-databas automatiskt vid första start.
./gradlew buildkör full validering med kompilering, tester, Spotless och CodeNarc../gradlew testkör testsviten../gradlew runstartar desktopapplikationen../gradlew :app:packageCurrentPlatformReleasebygger releasepaket för aktuell plattform viajpackage../gradlew :app:verifyCurrentPlatformReleasepaketerar aktuell plattform och verifierar att launchern kan starta applikationen i ett isolerat hemkatalogsläge.
app/src/main/groovy/se/alipsa/accounting/
├── domain/ # domänmodeller
├── service/ # databas- och affärslogik
├── ui/ # Swing-paneler och dialoger
└── support/ # hjälpklasser
app/src/main/resources/
├── db/migrations/ # SQL-migrationer
└── reports/ # FreeMarker-mallar för PDF-rapporter
app/src/test/groovy/
├── unit/ # enhetstester
├── integration/ # integrationstester
└── acceptance/ # acceptanstester
req/ # kravdokumentation och färdplan
./gradlew build # kompilering, tester, Spotless och CodeNarc
./gradlew test # kör enbart tester
./gradlew spotlessApply # auto-formatera kod
./gradlew spotlessCheck # kontrollera formatering utan att ändra
./gradlew codenarcMain # statisk analys på produktionskodKör alla kommandon från rotmappen.
| Komponent | Teknologi |
|---|---|
| Språk | Groovy (@CompileStatic) |
| UI | Swing |
| Databas | H2 (inbäddad) |
| PDF-rapporter | Journo (FreeMarker + HTML → PDF) |
| SIE-parsning | sie-reader |
| Bygg | Gradle 9.4 |
| Kodstil | Spotless + CodeNarc |
| Tester | JUnit 6 + groovier-junit |
- Applikationen använder endast embedded H2 i fil-läge.
- Databasen, bilagor, rapportarkiv, loggar, backups och exporterad dokumentation lagras under applikationskatalogen i användarens profil.
- Startup-verifiering kontrollerar driftkonfiguration och integritet för hashkedjor, bilagor och rapportarkiv.
- Känsliga operationer som rapportexport, SIE-export, backup och årsstängning blockerar på kritiska integritetsfel.
- Bokföringsdata, bilagor och rapportarkiv omfattas av sju års bevarandespärr.
- Backupformatet är ZIP med:
- H2
SCRIPT-dump manifest.txtmed schema-version och checksummor- bilagearkiv
- rapportarkiv
- H2
- Restore verifierar manifest och checksummor innan data och filarkiv återskapas.
- Backup och restore kan köras från fliken
System.
- Fliken
Systemvisar diagnostik, backup/restore och inbyggd systemdokumentation. - Hjälpmenyn öppnar användarmanualen från
app/src/main/resources/docs/user-manual.md.
Releasebyggen använder jpackage och kräver Java 21 med tillhörande paketeringsverktyg på respektive plattform.
- Linux:
./gradlew :app:packageLinuxReleaseZip - Windows:
./gradlew :app:packageWindowsInstaller - macOS:
./gradlew :app:packageMacosAppImage - Aktuell plattform:
./gradlew :app:packageCurrentPlatformRelease - Smoke test av aktuell plattform:
./gradlew :app:verifyCurrentPlatformRelease
Om Gradle hittar fel JDK för jpackage (t.ex. en inbäddad JDK utan jpackage) kan sökvägen sättas explicit:
./gradlew :app:verifyCurrentPlatformRelease -Pjpackage.executable=/path/to/jdk-21/bin/jpackage
Byggartefakter skrivs till app/build/release/ och använder samma appnamn, versionsnummer och ikonuppsättning för alla tre plattformar.
Linux-releasen producerar en app-image plus ett zip-arkiv som även innehåller .desktop-filen. Windows-releasen producerar en exe-installerare med meny- och skrivbordsgenväg. macOS-releasen producerar AlipsaAccounting.app.
Applikationen använder plattformsspecifika standardvägar för data och loggar:
- Linux:
~/.local/share/alipsa-accounting - Windows:
%APPDATA%\\Alipsa\\Accounting - macOS:
~/Library/Application Support/AlipsaAccounting
Signering av Windows-installatör och notarisering/signering av macOS-app är avsiktligt lämnade som framtida release-steg. Nuvarande buildflöde producerar signerbara artefakter men utför inte signering automatiskt.