Schone start na index corruptie

This commit is contained in:
2026-09-09 14:31:23 +02:00
commit a5324548ec
41 changed files with 9351 additions and 0 deletions
+105
View File
@@ -0,0 +1,105 @@
# Fociz — Focus, Dagplanning, Brainstorm & Roadmap Systeem
Fociz is een compleet, modern webplatform gebouwd in **PHP 8 & MariaDB** voor dagplanning, werkstructurering, interactieve brainstormsessies die met één klik omgezet kunnen worden in een roadmap, en koppelingen met Outlook, Teams en Jira.
---
## 🔒 Beveiliging & Toegangsbeheer
- **Strikt afgesloten**: Geen openbare registratie. Enkel toegankelijk na inloggen met tweetrapsauthenticatie (2FA).
- **First-run Admin Setup (`/auth/setup.php`)**:
- Bij het allereerste gebruik detecteert Fociz automatisch dat er nog geen beheerder bestaat en start de setup wizard.
- De beheerder voert naam, e-mail en wachtwoord in en scant de 2FA QR-code met bijv. **Google Authenticator**, **Microsoft Authenticator** of **1Password**.
- Na verificatie van de 6-cijferige code wordt de beheerder opgeslagen en wordt `/auth/setup.php` definitief vergrendeld.
- **Invite-only Registratie (`/auth/invite.php?token=...`)**:
- Nieuwe collega's kunnen enkel toetreden met een unieke uitnodigingslink aangemaakt door de beheerder (`/users.php`).
- Dwingt direct het instellen van een wachtwoord en 2FA-registratie af.
- **Inloggen (`/auth/login.php`)**:
- Stap 1: E-mailadres & wachtwoord (`password_hash` / `password_verify`).
- Stap 2: 6-cijferige TOTP verificatiecode (of herstelcode).
---
## 🚦 Omgevingsindicator (Dev vs Live)
In de linkerbovenhoek van elk scherm bevindt zich een opvallende flashy badge met live radar-ping animatie:
- **Development (Rood)**: Knippert rood met de tekst `DEVELOPMENT (DEV)` zodat u direct ziet dat u op de test/dev omgeving werkt.
- **Live (Groen)**: Knippert groen met de tekst `LIVE (MAIN)` voor de productie-omgeving.
### Hoe in te stellen per omgeving:
In het bestand **`includes/env_badge.php`**:
- **Op DEV**: `$environment = 'development';` *(staat standaard al zo ingesteld)*
- **Op MAIN / LIVE**: `$environment = 'live';` *(of zet `APP_ENV="live"` in `.env`)*
---
## 🚀 Kernmodules
1. **Dagplanning & Focus (`/planner.php`)**:
- **Dagdoel**: Leg uw nummer 1 focuspunt van de dag vast met één klik.
- **Focus Modus**: Ingebouwde Pomodoro/Stopwatch timer (25 min Focus, 50 min Deep Work, 5 min Pauze) met visuele voortgang en taakselectie.
- **Dagtaken & Prioriteiten**: Taken indelen op prioriteit (P1 Brandend, P2 Belangrijk, P3 Regulier), snel toevoegen en afvinken.
- **Tijdlijn & Time-blocking**: Uuroverzicht (08:00 - 18:00) met time-blocking voor taken en gesynchroniseerde Outlook meetings.
- **Dagnotities**: Snel kladblok voor reflecties en memo's.
2. **Brainstorm Canvas (`/brainstorm.php` & `/brainstorm_canvas.php`)**:
- Interactief whiteboard met sticky notes ingedeeld in 4 categorieën:
- 💡 **Ideeën & Concepten**
- ⚠️ **Knelpunten & Uitdagingen**
- 🚀 **Oplossingen & Features**
- ⚡ **Quick Wins**
- Stemmen (upvoting) op ideeën.
- **Zet om naar Roadmap**: Selecteer brainstormkaarten en zet ze direct om naar planbare roadmap-items met kwartaal, deadline en prioriteit.
3. **Roadmap & Tijdlijn (`/roadmap.php`)**:
- Kwartaaloverzicht (Q1, Q2, Q3, Q4) en statussen (Gepland, In Uitvoering, In Review, Voltooid).
- Voortgangsbalken (0 - 100%) en deadlines.
- Gekoppeld aan de oorspronkelijke brainstormkaarten en optioneel Jira Issue Keys (bijv. `FOC-101`).
4. **Mijn Profiel & Persoonlijke Koppelingen (`/profile.php`)**:
- **Microsoft Outlook & Teams**: Koppel met 1 klik uw persoonlijke werkagenda voor dagelijkse afsprakensynchronisatie en directe Teams meeting links.
- **Atlassian Jira**: Koppel uw persoonlijke Atlassian API token om aan u toegewezen tickets in te zien en in te plannen.
- **Browser Push Meldingen**: Configureer persoonlijke waarschuwingen (vooraankondigingstijd, herhalingsfrequentie, audio chime en live test).
- **Account & Beveiliging**: Wachtwoord wijzigen en 2FA beveiligingsstatus.
5. **Systeembeheer & Integraties Portaal (`/admin.php` - Admin only)**:
- Centrale Microsoft 365 Azure App Registratie (Client ID, Client Secret, Tenant ID, Admin Consent verlenen).
- Standaard Jira bedrijfsdomein voor alle teamleden.
- Systeem & Team Monitor (statistieken over actieve leden, agenda koppelingen en API-status).
- Extensibiliteit Hub voor toekomstige modules (AI Co-Pilot, werkdag standaarden).
6. **Team & Invites Beheer (`/users.php` - Admin only)**:
- Genereer beveiligde uitnodigingslinks voor collega's met kopieerknop.
- Overzicht van actieve gebruikers, rollen en 2FA-status.
---
## 🛠️ Installatie op uw Server
### 1. Bestanden uploaden
Push of upload alle bestanden naar de gewenste webdirectory op uw server (bijv. `/var/www/fociz` of `public_html`).
### 2. MariaDB Database configureren
Pas de databasegegevens aan in `.env` (of direct in `config/config.php`):
```env
DB_HOST="127.0.0.1"
DB_PORT="3306"
DB_NAME="fociz"
DB_USER="uw_mariadb_gebruiker"
DB_PASS="uw_mariadb_wachtwoord"
APP_URL="https://fociz.nl"
```
### 3. Automatische Tabellen Aanmaak
U hoeft **niet** handmatig SQL-commando's uit te voeren: zodra u de website voor het eerst opent in uw browser, detecteert Fociz automatisch MariaDB en worden alle tabellen en relaties uit `config/schema.sql` vanzelf aangemaakt!
*(Optioneel kunt u `config/schema.sql` ook zelf importeren via phpMyAdmin of de MariaDB CLI).*
### 4. Eerste Beheerder Instellen
1. Open uw browser en ga naar `https://fociz.nl` (of `https://dev.fociz.nl`).
2. U wordt automatisch doorverwezen naar `/auth/setup.php`.
3. Vul uw naam, e-mailadres en gewenst wachtwoord in.
4. Scan de QR-code met Google Authenticator of Microsoft Authenticator.
5. Vul de 6-cijferige code in om te bevestigen.
6. **Klaar!** U kunt nu direct inloggen en collega's uitnodigen.