Skip to content

PCPal-nl/LevensLoop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

241 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 Documentatie: Interactieve Levensloop Tijdlijn (Multi-User)

Dit document beschrijft de installatie, configuratie en het gebruik van de Interactieve Levensloop Tijdlijn applicatie.

Het doel van deze tool is om op een visuele en interactieve manier een levensloop in kaart te brengen, waarbij de impact van gebeurtenissen (zowel positief als moeilijk) wordt gevisualiseerd.

1. 💡 Het Concept

De applicatie bestaat uit vier kerndelen:

  1. Een Invoerpagina (gebeurtenissen.php): Een centraal punt voor het invoeren van data via diverse bronnen (tekst, beeld, audio, documenten, banktransacties). Elke gebeurtenis heeft een datum, titel, omschrijving en een "impactscore" (-10 tot +10).
  2. Een Visualisatiepagina (index.php): Een interactieve tijdlijn die alle ingevoerde punten toont.
    • Positieve punten staan boven de nullijn, negatieve eronder.
    • De grafiek berekent een "netto gemiddelde trendlijn".
    • Klik op een punt om de volledige details (inclusief media) te zien.
  3. Timesheet & Dashboard: Inzicht in productiviteit en tijdsbesteding.
  4. Verbanden leggen: Verbind gebeurtenissen visueel met elkaar om oorzaak-gevolg relaties te tonen.

2. ✨ Recente Verbeteringen (Versie 2.25)

Versie 2.25 introduceert diepgaande financiële integratie en productiviteitsinzichten.

  • 💶 Geld Module (Bunq): Koppel je bankrekening om transacties direct om te zetten in tijdlijn-events. Inclusief zoekfuncties en het slim samenvoegen van betalingen.
  • ⏱️ Timesheet Dashboard: Monitor je gewerkte uren, focus-tijd vs. administratie, en je voortgang richting jaardoelen (urencriterium).
  • 🔒 Volledige Encryptie: Gevoelige data (namen, titels, details, banktransacties) wordt versleuteld (AES-256) opgeslagen.
  • 🎙️ Audio Module: Upload audio-opnames; AI transcribeert ze en maakt er gebeurtenissen van.
  • 🛡️ Secure Media: Een digitale kluis voor gevoelige bestanden.

3. 🔐 Beveiliging & Privacy

De applicatie is ontworpen met privacy als uitgangspunt ("Privacy by Design").

  • Multi-User: Iedere gebruiker heeft een eigen, afgeschermde omgeving.
  • Encryptie: Persoonlijke data is onleesbaar in de database zonder de unieke encryptiesleutel in config.php.
  • Audit Logging: Belangrijke acties (inloggen, data-toegang, imports) worden gelogd.
  • Secure Storage: Gevoelige media en API-configs worden buiten de publieke web-map opgeslagen.

4. 🛠️ Technische Componenten

  • Backend: PHP 8.4+
  • Database: MySQL / MariaDB (met AES-256-GCM data at rest)
  • Frontend: HTML5, Tailwind CSS, Chart.js
  • Integraties:
    • Google Gemini API: AI-analyse van tekst, beeld en audio.
    • Bunq API: Real-time banktransacties.
  • Dependencies: Beheerd via Composer (bunq/sdk_php, smalot/pdfparser, phpoffice/phpword).

5. 🚀 Installatie & Configuratie

Stap 1: Systeemeisen

  • Webserver (Apache/Nginx) met PHP 8.1+ (8.4 aanbevolen).
  • MySQL/MariaDB.
  • Composer.
  • Schrijfrechten op uploads/, docs/, storage/ en audio/.

Stap 2: Geautomatiseerde Installatie

Gebruik installer.sh (Ubuntu) voor een snelle setup.

Stap 3: Handmatige Configuratie

  1. Config: Kopieer config.example.php naar config.php.
  2. Database & Keys: Vul DB-gegevens, Gemini API Key en genereer een ENCRYPTION_KEY (php generate_key.php).
  3. Bunq (Optioneel): Vul BUNQ_API_KEY en BUNQ_ENVIRONMENT in.
  4. Installatie:
    • Importeer levensloop.sql.
    • Draai composer install.
    • Draai php run_migration_security.php.

6. ✨ Functionaliteit: Geld (Bunq)

Beheer je financiële historie direct in je tijdlijn.

  • Connect: Verbind veilig via API Key. Sessie-tokens worden versleuteld opgeslagen.
  • Filter: Zoek op datum, rekening, bedrag of omschrijving.
  • Merge: Selecteer meerdere transacties (bv. "Vakantie Italië") en voeg ze samen tot één event met totaalbedrag en specificatie.

7. ✨ Functionaliteit: Timesheet

Houdt je productiviteit bij op basis van activiteitslogs (rt_history).

  • Doelen: Voortgangsbalk voor het urencriterium (1225u).
  • Analyse: Grafieken voor maandelijkse uren en verhouding Focus/Admin werk.

8. 🗂️ Projectstructuur (Selectie)

  • src/BunqService.php: Handelt beveiligde communicatie met de Bunq API af.
  • src/SecurityService.php: Encryptie, CSRF, en Audit logs.
  • dashboard_module.php: Timesheet visualisaties.
  • gebeurtenissen.php: Hoofdcontroller voor invoer en API-logica.

9. 👋 Licentie

Zie het LICENSE bestand. Ontwikkeld door PCPal.