# 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. **Integraties Hub (`/integrations.php`)**: - **Microsoft Outlook**: Synchroniseert agenda-afspraken direct naar de dagplanning. - **Microsoft Teams**: Directe deelnamelinks naar online meetings en kanaalnotificaties. - **Atlassian Jira**: Issues synchroniseren en direct met één klik inplannen als dagtaak. - **Sandbox / Demo Modus**: Schakel met één vinkje tussen live productie en interactieve testdata. 5. **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.