How ethanchenhyland/fall2026-codingchallenge works
Mosaic is a social visual-discovery application. A typical user searches and previews images, saves pins into organized collections, then shares collections or discusses pins with other users. The map includes the documented collection, recommendation, social, messaging, and sharing branches. Some backend route implementations were not sampled, so their internal calls are not detailed; their documented capabilities and paths are represented without inventing wiring.
Main entry points: App.tsx App shell and routes · app.ts HTTP application · api.ts REST client · search.ts Search and recommendations
Components 27
Web experience
- App shell and routes
frontend/src/App.tsx - Sign in and register
frontend/src/pages/AuthPage.tsx - Discover search
frontend/src/pages/DiscoverPage.tsx - Explore feed
frontend/src/pages/ExplorePage.tsx - Collection workspace
frontend/src/pages/CollectionPage.tsx - Collections and smart views
frontend/src/pages/CollectionsPage.tsx - Profiles and pins
frontend/src/pages/ProfilePage.tsx - Shared presentations
frontend/src/pages/SharedPresentationPage.tsx - Direct messages
frontend/src/pages/MessagesPage.tsx - REST client
frontend/src/api.ts
Application API
- HTTP application
backend/src/app.ts - Account and sessions
backend/src/routes/auth.ts - Search and recommendations
backend/src/routes/search.ts - Collection operations
backend/src/routes/collections.ts - Social interactions
backend/src/routes/pins.ts - Profiles and follows
backend/src/routes/profiles.ts - Public sharing
backend/src/routes/shared.ts - Messaging
backend/src/routes/messages.ts - AI phrase suggestions
backend/src/lib/aiDiscovery.ts - Fallback image catalog
backend/src/catalog.ts
Persistence and media
- SQLite database
backend/src/db.ts - Persisted provider media
backend/src/lib/media.ts
Other components
- User
- Pixabay provider
- Wikimedia Commons
- OpenRouter AI
- Resend email
Connections 39
- User → App shell and routes: uses
- App shell and routes → Sign in and register: routes to
- App shell and routes → Discover search: routes to
- App shell and routes → Explore feed: routes to
- App shell and routes → Collections and smart views: routes to
- App shell and routes → Collection workspace: routes to
- App shell and routes → Profiles and pins: routes to
- App shell and routes → Shared presentations: routes to
- App shell and routes → Direct messages: routes to
- Sign in and register → REST client: requests auth
- Discover search → REST client: requests discovery
- Explore feed → REST client: requests feeds
- Collections and smart views → REST client: requests collections
- Collection workspace → REST client: saves and organizes
- Profiles and pins → REST client: requests social actions
- Shared presentations → REST client: loads shared views
- Direct messages → REST client: sends messages
- REST client → HTTP application: calls API
- HTTP application → Account and sessions: dispatches auth
- HTTP application → Search and recommendations: dispatches search
- HTTP application → Collection operations: dispatches collections
- HTTP application → Social interactions: dispatches pin actions
- HTTP application → Profiles and follows: dispatches profiles
- HTTP application → Public sharing: dispatches sharing
- HTTP application → Messaging: dispatches messages
- Account and sessions → SQLite database: reads and writes
- Search and recommendations → SQLite database: reads and caches
- Collection operations → SQLite database: stores collections
- Social interactions → SQLite database: stores interactions
- Profiles and follows → SQLite database: reads and writes
- Public sharing → SQLite database: reads shared data
- Messaging → SQLite database: stores messages
- Search and recommendations → Fallback image catalog: uses fallback
- Search and recommendations → AI phrase suggestions: requests phrases
- Search and recommendations → Pixabay provider: searches images
- Search and recommendations → Wikimedia Commons: searches images
- AI phrase suggestions → OpenRouter AI: requests suggestions
- Account and sessions → Resend email: sends verification
- Search and recommendations → Persisted provider media: persists provider images