How stiansame/fed2_pe2_holidaze works
Holidaze is a React accommodation-booking frontend. Travelers browse and filter venues, inspect availability, review and manage stays; venue managers create listings and oversee venues and bookings. The map also includes account/authentication, profiles, and manager workflows. API modules connect these screens to the Noroff service, with shared date and booking utilities supporting availability and summaries. Edges follow the excerpts and SOURCE INDEX references; unsampled features are included where the README or route table establishes them, but uncertain internal calls are omitted.
Main entry points: App.jsx Route application · venues.js Venue API · BookingReview.jsx Booking review · bookings.js Booking API
Components 26
App and access
- Route application
src/App.jsx - Authentication
src/auth/AuthProvider.jsx - Access guard
src/auth/RequireAuth.jsx - Sign in / register
src/pages/AuthForm.jsx
Traveler booking
- Venue discovery
src/pages/Venues.jsx - Venue details
src/pages/VenueDetails.jsx - Stay availability
src/components/venues/AvailabilityCalendar.jsx - Booking review
src/pages/BookingReview.jsx - Booking lifecycle
src/pages/BookingConfirmation.jsx - My bookings
src/components/bookings/BookingsList.jsx - Profiles and account
src/pages/Profile.jsx
Venue management
- Manager overview
src/pages/ManagerDashboard.jsx - Venue listings
src/pages/MyVenues.jsx - Listing editor
src/components/venues/VenueForm.jsx - Venue bookings
src/pages/VenueBookings.jsx - Booking details
src/pages/ManagerBookingDetails.jsx
API and domain
- Venue API
src/api/venues.js - Booking API
src/api/bookings.js - Profile API
src/api/profiles.js - Noroff API client
src/api/client.js - Availability rules
src/utils/availability.js - Booking calculations
src/utils/bookings.js - Manager summaries
src/utils/manager.js
Shared interface
- Site layout
src/components/layout/Layout.jsx
Other components
- Traveler
- Venue manager
Connections 41
- Traveler → Route application: opens routes
src/App.jsx - Venue manager → Route application: opens routes
src/App.jsx - Route application → Access guard: guards routes
src/App.jsx - Access guard → Authentication: checks session
src/auth/RequireAuth.jsx - Sign in / register → Authentication: uses session
src/pages/AuthForm.jsx - Route application → Venue discovery: routes to
src/App.jsx - Route application → Venue details: routes to
src/App.jsx - Route application → Booking review: routes to
src/App.jsx - Route application → Booking lifecycle: routes to
src/App.jsx - Route application → My bookings: routes to
src/App.jsx - Route application → Profiles and account: routes to
src/App.jsx - Route application → Manager overview: routes to
src/App.jsx - Route application → Venue listings: routes to
src/App.jsx - Route application → Listing editor: routes to
src/App.jsx - Route application → Venue bookings: routes to
src/App.jsx - Route application → Booking details: routes to
src/App.jsx - Route application → Site layout: wraps routes
src/App.jsx - Venue discovery → Venue API: loads listings
src/pages/Venues.jsx - Venue details → Venue API: loads venue
src/pages/VenueDetails.jsx - Venue details → Stay availability: shows booking
src/pages/VenueDetails.jsx - Stay availability → Availability rules: validates stay
src/components/venues/AvailabilityCalendar.jsx - Booking review → Venue API: loads venue
src/pages/BookingReview.jsx - Booking review → Booking API: submits booking
src/pages/BookingReview.jsx - Booking review → Availability rules: checks stay
src/pages/BookingReview.jsx - Booking review → Booking calculations: summarizes stay
src/pages/BookingReview.jsx - Booking lifecycle → Booking API: manages booking
- My bookings → Booking API: loads bookings
src/components/bookings/BookingsList.jsx - Manager overview → Profile API: loads venues
src/pages/ManagerDashboard.jsx - Manager overview → Manager summaries: summarizes data
src/pages/ManagerDashboard.jsx - Manager overview → Venue bookings: links to
- Booking details → Booking API: loads booking
src/pages/ManagerBookingDetails.jsx - Booking details → Venue API: loads venue
src/pages/ManagerBookingDetails.jsx - Booking details → Stay availability: shows dates
src/pages/ManagerBookingDetails.jsx - Listing editor → Venue API: saves listing
- Venue API → Noroff API client: sends requests
src/api/venues.js - Booking API → Noroff API client: sends requests
src/api/bookings.js - Profile API → Noroff API client: sends requests
- Venue API → Availability rules: filters dates
src/api/venues.js - Booking calculations → Availability rules: uses date rules
src/utils/bookings.js - Manager summaries → Booking calculations: groups bookings
src/utils/manager.js - Manager summaries → Availability rules: checks dates
src/utils/manager.js