How willberg510/willbergforever.com works
Willberg Forever is a portfolio and community site for browsing projects on an interactive map or by category, viewing media, reacting, reading updates, and taking daily project races; admins manage projects and updates. The browser app is the workflow coordinator, calling API wrappers that communicate with Express routes and MongoDB-backed models. Project media is stored in S3. The excerpts establish the map, project, race, authentication, and upload paths; other documented-by-structure features are represented where their modules exist, but unsampled internals are not asserted.
Main entry points: App.jsx App workflow · server.js Express server · projects.js Project routes · ProjectsAPI.js Projects API
Components 30
Visitor experience
- App workflow
frontend/src/pages/App.jsx - Interactive map
frontend/src/components/Island.jsx - Project browsing
frontend/src/components/GroupList.jsx - Project details
frontend/src/components/Project.jsx - Media player
frontend/src/components/Player.jsx - Daily races
frontend/src/components/DailyRaces.jsx - Race interaction
frontend/src/components/RaceBox.jsx - Updates feed
frontend/src/components/UpdatesBox.jsx - Admin panel
frontend/src/pages/AdminPanel.jsx
Browser APIs
- Projects API
frontend/src/api/ProjectsAPI.js - Races API
frontend/src/api/RacesAPI.js - Updates API
frontend/src/api/UpdatesAPI.js - Admin API
frontend/src/api/AdminAPI.js - User API
frontend/src/api/UserAPI.js - HTTP client
frontend/src/api/BaseAPI.js
Backend service
- Express server
backend/server.js - Project routes
backend/routes/projects.js - Race routes
backend/routes/races.js - Update routes
backend/routes/updates.js - Admin routes
backend/routes/admin.js - User routes
backend/routes/user.js - Admin auth
backend/utils/auth.js - Race refresh
backend/utils/refreshRaces.js
Persistence and media
- Project model
backend/models/Project.js - Race model
backend/models/Race.js - Update model
backend/models/Update.js - Media object storage
backend/utils/s3Client.js
Other components
- Site visitor
- MongoDB
- AWS S3
Connections 44
- Site visitor → App workflow: uses
frontend/src/pages/App.jsx - App workflow → Interactive map: renders
frontend/src/pages/App.jsx - App workflow → Project browsing: renders
frontend/src/pages/App.jsx - App workflow → Daily races: renders
frontend/src/pages/App.jsx - App workflow → Race interaction: renders
frontend/src/pages/App.jsx - App workflow → Updates feed: renders
frontend/src/pages/App.jsx - App workflow → User API: renews identity
frontend/src/pages/App.jsx - App workflow → Admin API: signs out
frontend/src/pages/App.jsx - Interactive map → Projects API: loads region
frontend/src/components/Island.jsx - Project browsing → Projects API: loads groups
frontend/src/api/ProjectsAPI.js - Project details → Projects API: loads and reacts
frontend/src/components/Project.jsx - Media player → Projects API: loads project
frontend/src/components/Player.jsx - Daily races → Races API: requests races
frontend/src/components/DailyRaces.jsx - App workflow → Races API: starts race
frontend/src/pages/App.jsx - Updates feed → Updates API: loads updates
frontend/src/components/UpdatesBox.jsx - Admin panel → Admin API: admin actions
frontend/src/pages/AdminPanel.jsx - Admin panel → Projects API: manages projects
frontend/src/pages/AdminPanel.jsx - Admin panel → Updates API: manages updates
frontend/src/pages/AdminPanel.jsx - Projects API → HTTP client: sends requests
frontend/src/api/ProjectsAPI.js - Races API → HTTP client: sends requests
frontend/src/api/RacesAPI.js - Updates API → HTTP client: sends requests
frontend/src/api/UpdatesAPI.js - Admin API → HTTP client: sends requests
frontend/src/api/AdminAPI.js - User API → HTTP client: sends requests
frontend/src/api/UserAPI.js - HTTP client → Express server: HTTP requests
- Express server → Project routes: mounts
backend/server.js - Express server → Race routes: mounts
backend/server.js - Express server → Update routes: mounts
backend/server.js - Express server → Admin routes: mounts
backend/server.js - Express server → User routes: mounts
backend/server.js - Project routes → Admin auth: guards writes
backend/routes/projects.js - Project routes → Project model: queries and saves
backend/routes/projects.js - Project routes → Race model: queries races
backend/routes/projects.js - Project routes → Race refresh: refreshes races
backend/routes/projects.js - Project routes → Media object storage: stores media
backend/routes/projects.js - Race routes → Race model: queries and updates
backend/routes/races.js - Race routes → Project model: queries projects
backend/routes/races.js - Race routes → Race refresh: refreshes races
backend/routes/races.js - Update routes → Update model: queries and saves
backend/routes/updates.js - Update routes → Admin auth: guards admin actions
backend/routes/updates.js - Admin routes → Admin auth: checks access
- Project model → MongoDB: persists records
- Race model → MongoDB: persists records
- Update model → MongoDB: persists records
- Media object storage → AWS S3: stores objects