Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/AndrewwCO/Panahashi/llms.txt

Use this file to discover all available pages before exploring further.

Panahashi surfaces local bakeries to customers through two entry points: the Home screen, which highlights open bakeries and promotions at a glance, and the Bakeries tab, which lists every active bakery with filtering by open/closed status. From either view, tapping a bakery opens its full detail page with products, reviews, and operating hours.

Bakery list

The Bakeries tab (BakeriesScreen) fetches all active bakeries from the backend via fetchBakeries() and displays them in a scrollable list. Each card shows the bakery name, address, star rating, and a live open/closed badge. Users can pull down to refresh the list at any time. Bakeries are split into two visual sections:
  • Open now — bakeries where isOpen is true, shown with a green live indicator
  • Also available — currently closed bakeries that users can browse ahead of time
Tapping any card navigates to BakeryDetailScreen for that bakery.

Home screen highlights

The Home screen (HomeScreen) gives users a fast overview without navigating away from the main feed. Sliding banner — three auto-scrolling promotional banners cycle every 3.5 seconds. Each banner includes a call-to-action that deep-links to Bakeries or Loyalty screens. Quick-access shortcuts — four one-tap buttons sit below the banner:

Nearby

Opens the full Bakeries tab to browse all available bakeries.

Search

Opens SearchScreen for keyword and category search across all bakeries.

Favorites

Opens FavoritesScreen with the user’s saved bakeries.

Stamps

Opens LoyaltyScreen to check stamp card progress.
Below the shortcuts, the Home screen renders up to four open bakeries and up to three closed bakeries, each navigating to BakeryDetailScreen.

Bakery detail

BakeryDetailScreen loads a full profile for a single bakery using fetchBakeryById(bakeryId). The screen includes:
  • Name, address, and description
  • Rating — average star rating and total review count (e.g. ⭐ 4.7 (32 reseñas))
  • Operating hoursopenTime and closeTime displayed as a chip (e.g. 🕐 07:00 – 20:00)
  • Open/closed badge — live status from the isOpen field
  • Product catalog — scrollable list of the bakery’s products with inline add-to-cart controls
  • Reviews tab — paginated customer reviews fetched via fetchReviewsByBakery(bakeryId)
  • Active promotions — a horizontal carousel of fetchPromotions(bakeryId) results
  • Favorite toggle — a heart button (❤️ / 🤍) in the top-right corner that calls toggleFavorite(bakeryId) to add or remove the bakery from the user’s favorites
If the user’s cart contains items from a different bakery, a warning banner appears before the product list explaining that adding items here will clear the existing cart.

Nearby bakeries

To find bakeries close to the user’s current location, the app calls fetchNearbyBakeries:
fetchNearbyBakeries(lat, lng, radius = 5)
ParameterTypeDescription
latnumberLatitude of the user’s location
lngnumberLongitude of the user’s location
radiusnumberSearch radius in kilometers (default: 5)
This hits GET /bakeries/nearby and returns an array of bakery objects sorted by distance. The results are displayed in the same card format as the Bakeries tab.
The open/closed status is fetched live from the backend — isOpen is set by the bakery’s openTime and closeTime on the server.

Build docs developers (and LLMs) love