This System Requirements Document (SRD) defines the requirements for Batangas Lowkey Eatery, a free, front-end-only food directory prototype built by Group 7 as a class presentation deliverable.
Batangas Lowkey Eatery helps people find verified, hidden local eateries in Batangas City. It deliberately focuses on small eateries, street food stalls, and turo-turo spots that delivery apps and tourist sites skip. The prototype is built to be simple, responsive, mobile-first, and easy to explain during a classroom presentation.
The system is a static front-end prototype: it runs entirely in the browser with hardcoded sample data, and it deliberately excludes backend services, databases, authentication, and API calls.
Batangas Lowkey Eatery is a free food directory for verified hidden local eats in Batangas City. The system surface consists of a single-page-style browsing experience composed of:
All content is supplied by a single hardcoded data source (data.js) containing 10 sample eateries across different Batangas City barangays. The entire prototype must work when opened locally from a folder (index.html) and must look good on both phone and desktop.
External recipients: local eatery owners whose establishments appear in the directory — in particular the promoted eateries surfaced in the Featured section. They receive visibility from the directory and do not operate any workflow inside the prototype.
A Batangas City resident, student, or visiting newcomer who wants affordable, authentic local food. This persona groups audiences whose workflows and visible information are identical: they browse the eatery grid, search by name, apply category/barangay/price/verified filters, open eatery details, open a listing in Maps, share a listing, and save favorites to localStorage. They never log in and never see any administrative interface.
A student of Group 7 presenting the prototype to a class. Their distinct workflow is demonstration rather than discovery: they walk through the Home view, apply filters, open an eatery detail, show the Promoted section as evidence of the revenue model, show the Favorites behavior backed by localStorage, and deliver a 3-sentence explanation of how the site works. They need the code split into clearly named files they can explain, and the footer must credit Group 7.
index.html locally in a browser.The visual theme is warm, friendly, and local, with a clean palette and large food photography. Rounded cards and simple icons keep the interface approachable and beginner-friendly. The user's explicit design style governs: blue for headings, green for the verified badge, red for accents, big food photos, rounded cards, and simple icons.
Color palette (derived from the specified heading-blue / verified-green / accent-red scheme):
| Role | Color | Usage |
|---|---|---|
| Primary / Headings | #1B4B8F (deep blue) | Headings, logo text, top navbar accents |
| Verified Green | #2E9E5B | "Locally Verified" badge, verification indicators |
| Accent Red | #E63946 | Accent highlights, favorite heart, Promoted accents |
| Warm Canvas | #FFF8F1 | Page background (warm, food-friendly) |
| Surface | #FFFFFF | Cards, modal surfaces |
| Card Border | #EADFD3 | Rounded card outlines |
| Primary Text | #2B2B2B | Body copy |
| Muted Text | #6B7280 | Secondary metadata (barangay, hours) |
| Price / Rating | #F2A93B (warm amber) | Rating stars and price tier emphasis |
Theme rules:
Typography:
Shape language:
Imagery:
Readable text and controls stay whole at every viewport: headlines, wordmarks, labels, numbers, and cards' text and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Imagery, decoration, and motion may be cropped, bled off an edge, rotated, overlapped, or cut exactly as the direction asks, as long as they cover no readable text or control. Moving and scrollable content (marquees, tickers, carousels, horizontally scrollable rows) may cross the viewport or container edge by design; every item must become fully readable as it passes. With prefers-reduced-motion, provide a usable static arrangement: wrap items into rows or allow horizontal scrolling so each item can be brought fully into view.
"Verified Hidden Gem Cards." The signature element is the rounded eatery card anchored by a big food photo and stamped with the green "Locally Verified" badge. Cards behave like small trust certificates: a photo up top, a green verification stamp, and a compact metadata row (category · barangay · price tier · rating). A warm cream canvas and the "Promoted" strip in the Featured section turn the grid into a browsable market street rather than a generic listing table. The chip-based filter row and the price-tier notation (\xe2\x82\xb1 /\x20\xe2\x82\xb1\xe2\x82\xb1 /\x20\xe2\x82\xb1\xe2\x82\xb1\xe2\x82\xb1) keep the local, informal character of a turo-turo directory.
Signature moves:
Motion tempo: expressive (per the CREATIVE DIRECTION Motion Tempo: line). Hero dimensionality: layered_2d; hero drama: bold.
Input → transformation → outcome thesis: The seeker's arrival (input) is transformed by a staged, poster-like hero that assembles the wordmark, tagline, search pill, and a colour-blocked food photo into a browsable food world (transformation), so the seeker immediately understands this is a warm, local, verified-eats directory and is invited to search or swipe the chip row (outcome).
Focal subject: The oversized all-caps wordmark "Batangas Lowkey Eatery" paired with a saturated cut-out food photo (a bowl of lomi) held in a large organic blob that bleeds off the right edge.
Visible layers (back to front):
Staged opening (expressive tempo): On load, the hero band fades in; the wordmark and tagline rise and settle with a light spring; the food photo scales in from 0.94 → 1; the sticker badge rotates into place; the search pill and chip row fade up last. Total opening ≈ 600–900ms, ease-out, no motion that covers readable text or controls.
Story loop: After the opening, the hero settles into a restrained contained loop — the sticker badge gives a subtle idle wobble and the chip row's edge hint gently nudges, signalling swipeability without distracting from the search bar.
Composed first frame: Warm cream band, wordmark top-left in ink, tagline beneath, food photo right with the rotated sticker badge, white search pill below, chip row cut at the right edge — an asymmetric poster composition, never a centred headline over a gradient.
Optional interaction: Hovering/focusing the search pill lifts it slightly with a shadow increase; tapping a chip flips its ground colour instantly and re-renders the grid.
Responsive behavior: Mobile-first single column — wordmark and tagline stack above the photo; the chip row scrolls horizontally and bleeds past the edge. At 768px the photo moves beside the type; at 1024px the hero reaches its largest headline size with the photo bleeding off the right edge.
Reduced-motion fallback: All springs become instant state changes; the sticker badge and chip row are static; the hero appears without transform; the chip row wraps into rows or remains horizontally scrollable so every chip can be brought fully into view.
Implementation: 2D DOM/SVG/CSS composition in the direction's motion vocabulary, implemented with Motion for React (motion/react) or GSAP. No Canvas/R3F/Drei is required (hero dimensionality is layered_2d).
Interaction model:
Motion direction:
prefers-reduced-motion, all springs become instant state changes, the marquee becomes a static row of labels, and cards appear without transform.This section defines the presentation contract for each page: its purpose, the information it shows, the actions it offers, the domain and feedback states it must handle, and the components it owns. It adds no personas, routes, behaviors, integrations, or adjacent modules beyond the accepted scope.
HeroBand (wordmark, tagline, search pill, chip row, blob, sticker badge); FilterBar (chips, barangay dropdown, price dropdown, verified toggle); EateryGrid; EateryCard; NoResultsMessage; LoadingEffect; FeaturedBand; Footer; BottomNav (mobile); TopNavbar (desktop).CardPhoto; CardTitle; CardMetaRow (category · barangay · price tier · rating); VerifiedBadge; FavoriteHeart.DetailPhoto; DetailDescription; DetailAddress; DetailHours; DetailMenuHighlights; DetailContact; OpenInMapsButton; ShareButton; DetailClose.FeaturedBand; PromotedMarquee; PromotedTag; EateryCard (reused).FavoritesList; EmptyPlateIllustration; EateryCard (reused).AboutUs; GroupCredit.index.html, with no server, build step, or installation.data.js.The accepted delivery shape is a static, front-end-only prototype, so only presentation-layer technology is required.
index.html)style.css) — responsive layout with mobile-first breakpoints at 768px and 1024pxscript.js) — live search, combined filtering, detail view, favorites, and rendering logicdata.js) holding 10 eatery objects with id, name, category, barangay, address, priceRange, rating, isVerified, isPromoted, hours, description, menuHighlights, contact, imagelocalStorage for saved favorites (no login)Explicitly out of scope — do not implement: backend services, databases, authentication or login, API calls, and JavaScript frameworks. Plain HTML/CSS/JavaScript is chosen as the simplest option permitted by the source material.
Assumptions:
index.html locally in a browser.Constraints:
| Term | Definition |
|---|---|
| Batangas Lowkey Eatery | The free food directory prototype that helps people find verified, hidden local eateries in Batangas City. |
| Eatery | A small local food establishment listed in the directory; also one of the three listing categories. |
| Street Food | A listing category for informal, often roadside food vendors. |
| Turo-turo | A Filipino-style eatery where cooked dishes are displayed and pointed at ("turo") when ordering; a listing category in this directory. |
| Barangay | The smallest local administrative division in the Philippines, used here as a location filter and displayed on each listing. |
| Locally Verified | The green trust badge indicating an eatery has been verified as a genuine hidden local spot. |
| Promoted | The label applied to the 2–3 eateries in the Featured section, included to demonstrate the prototype's revenue model. |
| Featured Section | The home section that surfaces promoted eateries. |
| Price Range | The cost tier of an eatery, expressed as\x20\xe2\x82\xb1,\x20\xe2\x82\xb1\xe2\x82\xb1, or\x20\xe2\x82\xb1\xe2\x82\xb1\xe2\x82\xb1. |
| Rating | The numeric reputation score shown on an eatery card. |
| Menu Highlights | Selected signature dishes shown in the eatery detail view. |
| Favorites | A localStorage-backed personal shortlist of eateries, saved with the heart button and requiring no login. |
| data.js | The single hardcoded JavaScript file holding the 10 sample eatery records. |
| Group 7 | The student group that owns and presents the Batangas Lowkey Eatery project. |
Source: chat_media/6b7ce22f-1528-460e-a065-32e0b18c094e/741fc317_GROUP-7_Batangas-Lowkey-Eatery_Value-Proposition-Canvas-Lean-Canvas.pdf — Group 7's Value Proposition Canvas / Lean Canvas for Batangas Lowkey Eatery.
Authority: domain_context and content_source — used as supplemental domain context for the directory's value proposition and audience, and as an authoritative content source for the project's stated value proposition. It is not a source of additional pages or features.
Identity:
Content (as supplied by the source):
Unverified facts: Specific canvas cell wording, named customer segments beyond those above, and any quantitative figures in the PDF are not reproduced here and remain unverified; downstream artifacts must not invent them. Where the canvas and the user requirement thread differ, the user requirement thread governs.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!