readme: add features overview and clean up completed TODOs

This commit is contained in:
2026-03-10 10:29:54 +01:00
parent 5f08661507
commit 03fb0dde95

View File

@@ -1,54 +1,35 @@
# Personal Homepage
My own homepage, bocken.org, built with svelte-kit.
My own homepage, [bocken.org](https://bocken.org), built with SvelteKit and Svelte 5.
## Features
### Recipes (`/rezepte` · `/recipes`)
Bilingual recipe collection with search, category filtering, and seasonal recommendations. Authenticated users can add recipes and mark favorites. Recipes are browsable offline via service worker caching.
### Faith (`/glaube` · `/faith`)
Catholic prayer collection in German, English, and Latin. Includes an interactive Rosary with scroll-synced SVG bead visualization, mystery images (sticky column on desktop, draggable PiP on mobile), decade progress tracking, and a daily streak counter. Adapts prayers for liturgical seasons like Eastertide.
### Expense Sharing (`/cospend`)
Shared expense tracker with balance dashboards, debt breakdowns, monthly bar charts with category filtering, and payment management.
### Self-Hosted Services
Landing pages and themed integrations for Gitea, Jellyfin, SearxNG, Photoprism, Jitsi, Webtrees, and more — all behind Authentik SSO.
### Technical Highlights
- **PWA with offline support** — service worker with network-first caching, offline recipe browsing, and intelligent prefetching
- **Bilingual routing** — language derived from URL (`/rezepte` vs `/recipes`, `/glaube` vs `/faith`) with seamless switching
- **Nord theme** — consistent color palette with light/dark mode support
- **Auth** — Auth.js with OIDC/LDAP via Authentik, role-based access control
- **Progressive enhancement** — core functionality works without JavaScript
## TODO
### General
- [ ] Admin user management -> move to authentik via oIDC
- [x] login to authentik
- [x] only let rezepte_users edit recipes -> currently only letting them log in, should be changed
- [x] get user info from authentik (more than email and name)
- [ ] upload pfp
- [ ] upload/change pfp
- [x] registration only with minimal permissions
- [ ] logout without /logout page
- [ ] preferences page
- [x] change password
- [x] css dark mode `@media (prefers-color-scheme: dark) {}`
- [ ] dark mode toggle
### Rezepte
- [x] Do not list recipes that are all-year as "seasonal"
- [ ] nutrition facts
- [x] verify randomize arrays based on day
- [x] notes for next time
- [ ] refactor, like, a lot
- [ ] expose json-ld for recipes https://json-ld.org/ https://schema.org/Recipe
- [ ] reference other recipes in recipe
- [ ] add a link to the recipe
- [ ] add ingredients to the ingredients list
- [ ] include steps?
- [ ] add favoriting ability when logged in
- [ ] favorite button on recipe
- [ ] store favorites in DB -> add to user object
- [ ] favorite API endpoint (requires auth of user)
- [ ] set
- [ ] retrieve
- [ ] favorite page/MediaScroller
- [ ] graceful degradation for JS-less browsers
- [ ] use js-only class with display:none and remove it with JS
- [ ] disable search -> use form action instead on submit?
- [x] do not blur images without js
- [x] correct Recipe Card rendering
### Glaube
- [ ] just keep it md rendered
- [ ] Google Speech to Text API integration?
- [ ] Gebete
### Outside of this sveltekit project but planned to run on the server as well
- [x] create LDAP and OpenID
#### E-Mail
- [x] emailwiz setup
@@ -60,15 +41,6 @@ My own homepage, bocken.org, built with svelte-kit.
- [ ] Connect to LDAP/OIDC (waiting on upstream)
- [x] Serve some web-frontend -> Just element?
#### Gitea
- [ ] consistent theming
- [x] OpenID Connect
- [x] sane landing page
#### Jellyfin
- [x] connect to LDAP
- [x] consitent theming
#### Webtrees
- [x] setup Oauth2proxy -> not necessary, authentik has proxy integrated
- [x] connect to OIDC using Oauth2proxy (using authentik)
@@ -86,11 +58,4 @@ My own homepage, bocken.org, built with svelte-kit.
#### Photoprism
- [ ] consistent theming
- [ ] OIDC integration (waiting on upstream)
#### Nextcloud
- [x] consistent theming
- [x] collabora integration
#### Transmission
- [x] move behind authentik
- [x] OIDC integration