How sofiaumrish/packsmart works
PackSmart guides a traveler from trip planning and weather lookup to a tailored packing list, list customization, readiness scoring, outfit suggestions, inspiration, and locally saved trip management. The main request path is visible in the sampled planner, results, and weather code. README documents additional saved-trip, outfit, and theme capabilities; their precise internal wiring is represented only where supported by the tree and excerpts.
Main entry points: TripDetailsClient.tsx Trip details · storage.ts Trip storage · TripForm.tsx Trip form · PackingList.tsx Interactive packing list
Components 23
Trip planning
- Trip form
components/trip-planner/TripForm.tsx - Weather client
utils/weatherApi.ts - Trip details
components/trip-details/TripDetailsClient.tsx
Packing and outfits
- Packing generator
utils/packingCalculator.ts - Interactive packing list
components/packing-list/PackingList.tsx - Readiness score
components/packing-list/PackingScoreElem.tsx - Outfit generator
components/outfits/OutfitGenerator.tsx - Outfit logic
utils/outfitGenerator.ts - Inspiration gallery
components/outfits/InspirationGallery.tsx
Trip management
- Save trip control
components/trip-details/SaveTripButton.tsx - Saved trips view
components/trip-details/SavedTrips.tsx - Trip storage
utils/storage.ts
External integrations
- Weather handler
app/api/weather/route.ts - Unsplash handler
app/api/unsplash/route.ts
Application UI
- Home page
app/page.tsx - Planner page
app/planner/page.tsx - Results page
app/result/page.tsx - Trips page
app/trips/page.tsx - Header and theme
components/layout/Header.tsx
Other components
- Traveler
- OpenWeather
- Unsplash
- Browser localStorage
Connections 24
- Traveler → Home page: opens
- Home page → Planner page: links to
- Planner page → Trip form: presents
- Trip form → Weather client: requests weather
- Weather client → Weather handler: fetches
- Weather handler → OpenWeather: requests forecast
- Trip form → Results page: navigates with trip
- Results page → Trip details: renders
- Trip details → Trip storage: loads saved trips
- Trip details → Packing generator: generates list
- Trip details → Interactive packing list: provides categories
- Trip details → Inspiration gallery: provides trip context
- Trip details → Save trip control: provides trip data
- Interactive packing list → Readiness score: provides lists
- Interactive packing list → Outfit generator: provides categories
- Outfit generator → Outfit logic: generates combinations
- Inspiration gallery → Unsplash handler: fetches images
- Unsplash handler → Unsplash: searches photos
- Trips page → Saved trips view: presents
- Saved trips view → Trip storage: loads and deletes
- Save trip control → Trip storage: saves trip
- Trip storage → Browser localStorage: reads and writes
- Header and theme → Browser localStorage: stores theme
- Traveler → Header and theme: switches theme