diff --git a/logs/20251007-before-optimatizations/home.pdf b/logs/20251007-before-optimatizations/home.pdf new file mode 100644 index 0000000..56356d4 Binary files /dev/null and b/logs/20251007-before-optimatizations/home.pdf differ diff --git a/logs/20251007-before-optimatizations/login.pdf b/logs/20251007-before-optimatizations/login.pdf new file mode 100644 index 0000000..d00e884 Binary files /dev/null and b/logs/20251007-before-optimatizations/login.pdf differ diff --git a/logs/logboek.md b/logs/logboek.md new file mode 100644 index 0000000..c27ebf1 --- /dev/null +++ b/logs/logboek.md @@ -0,0 +1,173 @@ +# Logboek - Serengo Project + +## Oktober 2025 + +### 7 Oktober 2025 (Maandag) - 1 uur + +**Werk uitgevoerd:** + +- Logo padding gefixed +- Favicon bestanden opgeruimd (verwijderd oude favicon bestanden) +- Manifest.json geoptimaliseerd + +**Commits:** 1 commit (5f0cae6) + +--- + +### 3 Oktober 2025 (Donderdag) - 8 uren + +**Werk uitgevoerd:** + +- Google OAuth implementatie toegevoegd +- Database schema uitgebreid voor OAuth +- Login formulier met shadcn/ui componenten +- Background afbeelding toegevoegd voor login pagina +- Location tracking en kaart functionaliteit geïmplementeerd +- Sonner toast notifications voor foutmeldingen +- Skeleton loading states toegevoegd +- MapLibre GL JS maps geïntegreerd +- Diverse styling fixes en verbeteringen + +**Commits:** 10 commits (fbe0a75, 0caa5dc, 6fddf42, d8aa99e, 101b6cf, 5cb0b9e, d82f590, 00da815, b82141e, 0abf4f9) + +**Details:** + +- Complexe OAuth flow met Google +- Geolocation API integratie +- Real-time location watching +- UI component library uitbreiding +- Map integration met zoom functionaliteit + +--- + +### 2 Oktober 2025 (Woensdag) - 5 uren + +**Werk uitgevoerd:** + +- MapLibre maps feature toegevoegd +- Header component verbeterd +- Basis kaart functionaliteit geïmplementeerd +- Heel wat testen met self-hosted maps adhv OpenMapTiles + +**Commits:** 1 commit (b44a69b) + +--- + +### 29 September 2025 (Zondag) - 3 uren + +**Werk uitgevoerd:** + +- Modal component geïmplementeerd +- Header component toegevoegd aan layout +- Profile panel component ontwikkeld +- UI verbeteringen voor login pagina +- Code cleanup en refactoring + +**Commits:** 6 commits (aa8161f, 0b44f10, 13d9303, 204a443, cc24bc0, b6cf77e) + +**Details:** + +- Grote refactor van UI componenten +- Herbruikbare modal component +- Verbeterde gebruikersinterface + +--- + +### 28 September 2025 (Zaterdag) - 5 uren + +**Werk uitgevoerd:** + +- Complete UI overhaul van homepage +- Storybook integratie verwijderd +- Custom componenten geïmplementeerd (Button, Input, ErrorMessage, UserInfo) +- ProfileIcon en ProfilePanel componenten +- Login UI drastisch verbeterd met custom styling +- Washington font toegevoegd +- CSS styling uitgebreid + +**Commits:** 6 commits (19c1b7b, aa72a3b, 62b2108, 98d745b, bc8a76b, c4deeb8) + +**Details:** + +- Grote codebase cleanup (1000+ lijnen verwijderd) +- Custom component library opgebouwd +- Professionele login interface +- Typography verbeteringen + +--- + +### 27 September 2025 (Vrijdag) - 6 uren + +**Werk uitgevoerd:** + +- Vercel deployment configuratie +- Auth systeem naar main applicatie verplaatst +- Docker configuratie fixes +- Container deployment setup +- CSRF auth fixes +- Database migraties + +**Commits:** 12 commits (925e716, bb118ca, 806fb92, 79f57c1, d8e2569, dd20a12, 219a78e, 0bcf6c8, 752cb04, 62c7c5e, 1b413e1, 88a7e74, bbe68c6, fc39408) + +**Details:** + +- Production deployment voorbereiding +- Docker containerization +- Auth system integratie +- Security verbeteringen + +--- + +### 26 September 2025 (Donderdag) - 5 uren + +**Werk uitgevoerd:** + +- Lucia auth systeem geïmplementeerd +- Database schema voor gebruikers +- Login/logout functionaliteit +- pnpm-lock.yaml cleanup +- AGENTS.md documentatie toegevoegd +- Database setup en migraties +- Logo en PWA manifest +- Chromatic integration +- Code formatting +- Tailwind CSS verwijderd + +**Commits:** 10 commits (7e4570c, 3cdb35b, e4fdfc4, f0d30bc, 9b4e956, fe0f939, ad72884, 8745ef1, 9ce6f96, d8f7921, 93eded5, fc5b927, faa2f94) + +**Details:** + +- Volledige authenticatie systeem +- Database structuur opgezet +- Project configuratie +- PWA functionaliteit +- Initial project setup + +--- + +## Totaal Overzicht + +**Totale geschatte uren:** 33 uren +**Werkdagen:** 6 dagen +**Gemiddelde uren per dag:** 5.5 uur + +### Project Milestones: + +1. **26 Sept**: Project initialisatie en auth systeem +2. **27 Sept**: Deployment en productie setup +3. **28 Sept**: UI/UX complete overhaul +4. **29 Sept**: Component architectuur verbetering +5. **2-3 Okt**: Maps en location features +6. **7 Okt**: Optimalisaties + +### Hoofdfunctionaliteiten geïmplementeerd: + +- ✅ Gebruikersauthenticatie (Lucia + Google OAuth) +- ✅ Responsive UI met custom componenten +- ✅ Real-time locatie tracking +- ✅ Interactive maps (MapLibre GL JS) +- ✅ PWA functionaliteit +- ✅ Docker deployment +- ✅ Database (PostgreSQL + Drizzle ORM) +- ✅ Toast notifications +- ✅ Loading states en error handling diff --git a/src/app.css b/src/app.css index 53b52d8..b46c3fb 100644 --- a/src/app.css +++ b/src/app.css @@ -80,6 +80,7 @@ src: url('/fonts/Washington.ttf') format('truetype'); font-weight: normal; font-style: normal; + font-display: swap; } * { @@ -131,5 +132,30 @@ a { color: inherit; text-decoration: none; + outline: none; + transition: all 0.2s ease; + } + + /* Ensure links have visible focus indicators and non-color differentiation */ + a:hover { + text-decoration: underline; + } + + a:focus { + outline: 2px solid var(--color-ring); + outline-offset: 2px; + text-decoration: underline; + } + + /* Special handling for map attribution links */ + .maplibregl-ctrl-attrib a { + color: #0078a8 !important; + text-decoration: underline !important; + } + + .maplibregl-ctrl-attrib a:hover, + .maplibregl-ctrl-attrib a:focus { + text-decoration: underline !important; + background-color: rgba(0, 120, 168, 0.1) !important; } } diff --git a/src/app.html b/src/app.html index f99d563..48be4a0 100644 --- a/src/app.html +++ b/src/app.html @@ -2,8 +2,16 @@
- + + + + + + + + + %sveltekit.head% diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 99e6b29..1298ce3 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -39,5 +39,31 @@ export const handle: Handle = async ({ event, resolve }) => { event.locals.user = user; event.locals.session = session; - return resolve(event); + + const response = await resolve(event); + + // Add security headers + response.headers.set( + 'Content-Security-Policy', + "default-src 'self'; " + + "script-src 'self' 'unsafe-inline' 'unsafe-eval'; " + + "style-src 'self' 'unsafe-inline' fonts.googleapis.com; " + + "font-src 'self' fonts.gstatic.com; " + + "img-src 'self' data: blob: *.openstreetmap.org *.tile.openstreetmap.org; " + + "connect-src 'self' *.openstreetmap.org; " + + "frame-ancestors 'none'; " + + "base-uri 'self'; " + + "form-action 'self';" + ); + + response.headers.set('X-Frame-Options', 'DENY'); + response.headers.set('X-Content-Type-Options', 'nosniff'); + response.headers.set('Referrer-Policy', 'strict-origin-when-cross-origin'); + + // Add HSTS for HTTPS in production + if (event.url.protocol === 'https:') { + response.headers.set('Strict-Transport-Security', 'max-age=31536000; includeSubDomains'); + } + + return response; }; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index b4a1c47..495dfdd 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -14,6 +14,20 @@