Een eenvoudige web-applicatie om de financiën van mijn lokale bandje bij te houden. Houd inkomsten en uitgaven bij, upload facturen en krijg inzicht in de financiële status van mijn band.
- 📊 Transacties bijhouden: Voeg inkomende en uitgaande transacties toe
- 📅 Datum selectie: Kies de exacte datum van elke transactie
- 📄 Factuur upload: Upload PDF facturen bij je transacties
- 🎨 Moderne UI: Gebouwd met SvelteKit en shadcn/ui componenten
- 🗄️ Lokale database: SQLite database voor je privacy
- 🐳 Docker support: Eenvoudig te deployen met Docker
- Node.js 20+
- pnpm (aanbevolen) of npm
-
Clone het project
git clone <repository-url> cd Geldzakje
-
Installeer dependencies
pnpm install
-
Database opzetten
pnpm run db:push
-
Start de development server
pnpm run dev # Of open direct in browser pnpm run dev -- --open -
Open je browser op
http://localhost:5173
-
Build en start met Docker Compose
docker-compose up -d
-
Of handmatig bouwen
docker build -t geldzakje . docker run -p 3000:3000 -v ./data:/app/prisma geldzakje
- Klik op "Nieuwe Transactie"
- Kies het type (Inkomend/Uitgaand)
- Voer het bedrag in
- Selecteer de datum
- Voeg een omschrijving toe
- Upload eventueel een factuur (PDF)
- Klik "Create"
- Vind de transactie in de lijst
- Klik op de verwijder knop (🗑️)
- Bevestig de verwijdering
- Frontend: SvelteKit met Svelte 5
- Database: SQLite met Prisma ORM
- UI: shadcn/ui componenten
- Styling: Tailwind CSS
- Validatie: Zod met sveltekit-superforms
- File Storage: Google Cloud Storage (GCP) voor PDF facturen
- Deployment: Docker
⚠️ Disclaimer PDF Storage: De applicatie gebruikt momenteel Google Cloud Storage (GCP) voor het opslaan van PDF facturen. Deze implementatie kan eenvoudig worden uitgewisseld voor andere object storage providers zoals AWS S3, Azure Blob Storage, of lokale file storage, afhankelijk van je voorkeuren en infrastructuur.
# Database migratie (development)
pnpm run db:migrate:dev
# Database push (development)
pnpm run db:push
# Database migratie (productie)
pnpm run db:migrate:deploy
# Prisma client genereren
pnpm run db:generate
# Prisma Studio (database viewer)
pnpm run db:studio# Build de applicatie
pnpm run build
# Preview de productie build
pnpm run preview
# Start productie server (met database migratie)
pnpm run start:prodsrc/
├── routes/ # SvelteKit routes
│ ├── +page.svelte # Hoofdpagina
│ ├── +page.server.ts # Server-side logica
│ └── components/ # Form componenten
├── lib/ # Gedeelde bibliotheek
│ ├── components/ui/ # UI componenten
│ └── prisma/ # Database client
└── prisma/ # Database schema & migraties
Suggesties en verbeteringen zijn welkom! Open een issue of maak een pull request.
Dit project is beschikbaar onder de MIT licentie.
