Timesheet Applicatie: Tijdsregistratie, Dashboard & Facturatie

Project: Een moderne tijdschrijf-applicatie met JSON-database, analytisch dashboard en geïntegreerde facturatiefunctie — volledig in eigen beheer

PHP Backend JSON Database n8n Automatisering Analytics Dashboard Google Sheets Sync Facturatie module Chart.js grafieken

De uitdaging

Als ondernemer met meerdere bedrijven (De_Eijk, De_AIjk, Eijkpunt, AI-2-GO) is het essentieel om inzicht te hebben in tijdsbesteding. Waar gaat de tijd naar toe? Welke projecten zijn declarabel? Hoeveel tijd gaat er naar administratie versus factureerbaar werk?

Bestaande tijdschrijf-tools zijn vaak te complex, te duur, of vereisen een subscription. Daarnaast wilde ik volledige controle over mijn eigen data, zonder afhankelijk te zijn van externe platforms.

De kernvraag

"Hoe kan ik een simpele, snelle tijdschrijf-tool bouwen die volledig onder mijn eigen controle staat?"

Drie versies: Voortschrijdend inzicht

Een mooi voorbeeld van continue doorontwikkeling — van traag naar snel, van snel naar volledig.

VERSIE 1.0

Directe Google Sheets synchronisatie

Aanpak: Elke tijdsinvoer werd direct via n8n naar Google Sheets geschreven.

  • Voordeel: Data direct in Sheets voor analyses
  • Voordeel: Automatische backup in Google Drive
  • Nadeel: Erg traag (alles via internet)
  • Nadeel: Gebruikerservaring niet optimaal
  • Nadeel: Afhankelijk van n8n beschikbaarheid
Doorontwikkeling
VERSIE 2.0

JSON-database met nachtelijke sync

Aanpak: Lokale JSON-database op de website, 's nachts automatisch naar Sheets.

  • Voordeel: Bliksemsnelle verwerking (lokaal)
  • Voordeel: Optimale gebruikerservaring
  • Voordeel: Data blijft behouden bij site-upgrades
  • Voordeel: Backup naar Sheets voor analyses
  • Voordeel: Werkt ook als n8n tijdelijk offline is
Doorontwikkeling
UPDATE 2026

Dashboard & Facturatie

Aanpak: Twee nieuwe modules bovenop de bestaande JSON-infrastructuur.

  • Nieuw: Analytisch dashboard met Chart.js grafieken
  • Nieuw: 5 KPI-kaarten (uren, omzet, productiviteit, balans)
  • Nieuw: Facturatie vanuit geregistreerde uren
  • Nieuw: Bewerkbare print-preview + PDF export
  • Nieuw: Gefactureerd-status bijhouden in database
Leermoment

Elke versie bouwt voort op de vorige zonder de bestaande data of architectuur te breken. De JSON-database en n8n-backend uit v2 dienen als fundament voor de dashboard- en facturatiemodules — zo groeide een simpele tijdschrijftool uit tot een compleet bedrijfsinstrument.

Update 2026

De applicatie is uitgebreid met twee nieuwe modules: een analytisch Dashboard met grafieken en KPI's, en een volledig geïntegreerde Facturatie-module waarmee je direct vanuit de geregistreerde uren een factuur kunt aanmaken en als PDF kunt exporteren.

De applicatie heeft nu drie modules, bereikbaar via één navigatiebalk:

Dashboard module

  • Totaal uren — alle geregistreerde uren in de geselecteerde periode
  • Declarabel vs. niet-declarabel — ratio betaald/onbetaald werk
  • Geschatte omzet — op basis van tarief × declarabele uren
  • Productiviteit per uur — gemiddelde omzet per declarabel uur
  • Werk/privé-balans — visuele balk met procentuele verdeling
  • Weekgrafiek — gestapelde barchart, uren per groep per week
  • Donut-chart — urenverdeling over doelen in procenten
  • Subcategoriegrafiek — uren per activiteit per groep
  • Inkomstengrafieken — horizontale bar met omzet per groep
  • Detailtabellen — per groep: project, uren, inkomsten, status
  • Periodefilter — snel wisselen tussen maanden of heel jaar

Facturatie module

  • Declarabele uren per onderwerp — automatisch geselecteerd
  • Selecteer welke uren je factureert — per dag of per week aan/uitzetten
  • Opdrachtinformatie — opdrachtgever, adres, contactpersoon, inkoopordernummer
  • Factuurlijn vrij invulbaar — bijv. "Dienstverlening consultancy april 2026"
  • Automatische BTW-berekening — subtotaal + 21% + totaal
  • Bewerkbaar print-preview — klik direct in de tekst om aan te passen
  • Bedrijfslogo op factuur — automatisch op basis van de doelgroep
  • Factuurserienummer — F-YYYY-NNN, automatisch oplopend per jaar
  • Betalingstermijn instelbaar — standaard 21 dagen, aanpasbaar
  • Export naar PDF — direct afdrukken of opslaan
  • "Gefactureerd" markeren — status wordt in de database opgeslagen
  • Eerder gefactureerd inzien — met undo-functie per dag

Hoe het werkt

Een slimme combinatie van lokale opslag en automatische synchronisatie.

Tijd invoeren

JSON opslag

Real-time update

Nachtelijke sync

Google Sheets

Technische architectuur

  • Frontend: JavaScript ES6+ met in-memory cache voor optimale snelheid
  • Backend: PHP 8.x RESTful API met JSON-database voor betrouwbare opslag
  • Database: Server-side JSON bestand met .htaccess bescherming
  • Automatisering: n8n workflows voor sync, backup en AI-features
  • Data structuur: Goals (doelen), Subjects (onderwerpen) en Entries (tijdsinvoer)
  • Backup: Nachtelijke export naar Google Sheets om 03:00u

Architectuur principes: Self-hosted voor volledige controle, eventual consistency voor snelheid, en fail-safe design zodat de app ook werkt als n8n tijdelijk offline is.

n8n Workflows

  • Nachtelijke Sync: Exporteert alle data naar Google Sheets voor backup en analyses
  • Taken CRUD: Beheert doelen en onderwerpen via API calls
  • Dashboard Data: Verzamelt statistieken en genereert rapportages
  • Authenticatie: Veilige token-based toegang tot de API endpoints
  • AI Agent: Chat-interface voor vragen over tijdsbesteding en analyses

Functionaliteiten

Alles wat je nodig hebt voor professionele tijdsregistratie.

Weekoverzicht Visuele weergave van alle tijdsinvoer per dag met kleuren per doel
Meerdere doelen Onderscheid tussen De_Eijk, De_AIjk, Eijkpunt, AI-2-GO en Privé
Onderwerpen Gedetailleerde categorisering per onderwerp binnen elk doel
Live Dashboard Real-time overzicht van uren per doel, week en maand
Declarabele uren Automatische berekening van factureerbare uren en omzet
Snelle invoer Tijd toevoegen in seconden met visuele slider
Responsive Werkt perfect op desktop, tablet én smartphone
Veilig Session-based authenticatie met .htaccess bescherming
Auto-backup Elke nacht automatisch naar Google Sheets
Supersnel JSON-database zorgt voor instant response
Bewerken Alle invoer achteraf aanpasbaar en verwijderbaar
Kleurcodering Elk doel en onderwerp heeft eigen kleur voor overzicht
Dashboard KPI's 5 metrieken: totaaluren, decl. ratio, omzet, productiviteit/u, werk-privé balans
4 Chart.js grafieken Weekgrafiek, donut, subcategorie-chart en inkomstenchart per groep
Periodefilter Snel wisselen tussen maanden of heel jaar — grafieken updaten direct
Factuur aanmaken Selecteer uren per dag/week en genereer direct een factuur met BTW
Bewerkbaar preview Klik direct in de factuurtekst om aan te passen, daarna afdrukken als PDF
Gefactureerd markeren Status wordt opgeslagen in de database; eerder gefactureerd altijd terug te vinden

Het resultaat

Bliksemsnelle invoer

Dankzij de JSON-database en lokale cache werkt alles instant. Geen wachttijden meer.

Volledig inzicht

Real-time dashboards tonen precies waar de tijd naartoe gaat, per doel en onderwerp.

Declaratie-overzicht

Zie direct hoeveel uren declarabel zijn en wat de verwachte omzet is per maand.

Data in eigen beheer

Alle data staat op de eigen server. Geen afhankelijkheid van externe partijen.

Upgrade-proof

De JSON-database blijft behouden bij site-updates. Geen dataverlies meer.

Automatische backup

Elke nacht wordt alles naar Google Sheets gesynct voor extra zekerheid.

Factuur in 30 seconden

Selecteer uren, vul opdrachtgever in en genereer een volledig factuur met BTW, logo en betalingstermijn — klaar als PDF.

Omzetinzicht per groep

Dashboard toont direct welk bedrijf hoeveel omzet genereert en hoe de productiviteit per declarabel uur ligt.

Ook beter inzicht in je tijdsbesteding?

Een op maat gemaakte tijdschrijf-applicatie kan je inzicht geven waar je tijd naartoe gaat.
Laten we bespreken wat er mogelijk is voor jouw situatie.

Plan een gesprek
Vragen over AI?

De_AIjk Assistant

Verbinden...
Hallo! Ik ben de AI-assistent van De_AIjk. Hoe kan ik u helpen?