Skip to content
Alejandro edited this page Sep 19, 2026 · 18 revisions

Table of contents

Value Proposal

Unlike the current approach students take piecing together information from Instagram, Tiktok, Google Maps, word of mouth, and WhatsApp groups, our app centralizes the entire nearby gastronomic offer in one place and personalizes it automatically based on budget, dietary restrictions, and free time between classes. Where existing tools only show what exists (a location pin, a photo, a generic review), our app tells students what fits them right now: it combines a real-time occupancy indicator with a personalized recommendation engine, something no single existing platform offers together. This saves students time and reduces the uncertainty of showing up to a full restaurant or a place that doesn't match their diet or budget, all at no cost to them.

The app's smart features (the real-time occupancy indicator and the personalized recommendation engine) generate value by turning raw information into an actionable decision. Existing tools like Google Maps or Instagram only show static facts about a place (a location, a photo, a star rating), leaving the student to do the mental work of figuring out whether that place is actually a good choice right now. The recommendation engine does that work instead, cross-referencing the student's saved dietary restrictions and budget against the available options so the suggestion is already filtered to what fits them. The occupancy indicator adds a layer of value existing tools don't offer at all: it prevents the specific frustration identified in the interviews (arriving at a full restaurant with no warning), saving the student a wasted trip during their limited time between classes.

The app's context-aware features (using the student's free time between classes and their current location on campus) generate value by making the recommendation relevant to the exact moment the student is using the app, not just their general preferences. A generic recommendation engine might suggest a great restaurant that takes 20 minutes to reach when the student only has 10 minutes free. The context-aware layer helps you filters that out automatically, factoring in the actual constraint the student is under right now. This is what makes the app fundamentally different from browsing Instagram or a static map, it doesn't just centralize information, it adapts that information to the situation the student is currently in, which is precisely the differentiation the value proposition claims over existing tools.

Native Prototype

Kotlin

Home View - Kotlin

The Home screen (Discover) serves as the app's landing page and main discovery surface. Its purpose is to present personalized restaurant recommendations for the student, organized into sections that highlight what is most relevant right now—such as trending spots near campus, places matching dietary preferences, and restaurants with short wait times. It uses a vertical scrollable layout with category filter chips and featured cards, allowing users to quickly browse curated lists and find food options tailored to their current needs between classes.

image

Search View - Kotlin

The Search screen allows users to quickly find specific restaurants within the application using an interactive text bar that filters results in real time by name, category, location, or tags. Its purpose is to facilitate direct access to establishments by displaying recent searches, popular quick-filter tags, and the complete list of restaurants available on campus.

image

Map View - Kotlin

The Map screen provides a spatial overview of all restaurant locations across the Universidad de los Andes campus, featuring a stylized map drawn with a custom CustomPainter that displays paths, buildings, and a water feature as visual landmarks. Restaurants appear as circular pins with category-specific emojis and colors indicating their open or closed status, accompanied by a floating legend, toggle chips at the top to filter between "All Spots" and "Open Now," and interactive tooltips. Below the map, a scrollable quick-list displays all visible spots with their name, wait time, and open/closed badge, allowing users to seamlessly select a restaurant from either the map or the list.

image

Saved View - Kotlin

The Saved screen displays the user's saved dietary preferences at the top, a featured dark card highlighting spots currently open with their closing times, and a list of saved restaurants shown as large photo cards complete with location details, bookmark toggles, ratings, open statuses, and crowding indicators.

image

Profile View - Kotlin

The My Profile screen displays a dark card at the top featuring the user's initials, name (Kevin), university affiliation, and a progress bar indicating that the profile is 83% complete. Right below, three quick-stat cards detail the number of selected cuisines, frequency of use, and budget range, followed by organized sections with tags and fields for dietary restrictions (such as vegetarian and vegan), cuisine preferences (Colombian and Asian), usual meal times, top priorities, and foods to avoid, keeping the personalization layer under the user's direct control.

image

Video Demostration

https://www.youtube.com/shorts/GNrUZaHBJhA

Flutter

Search View - Flutter

We created the search screen with a text field that filters the list of restaurants in real time by name, category, location, or tags. When no text is entered, it displays recent searches, popular tags for quick filtering, and the complete list of restaurants. As the user types, it highlights the text in the list that matches the search and displays an empty status if there are no results.

Screenshot of the screen:

Screenshot_1789696357

Saved View - Flutter

We created the favorites screen, which displays the user's saved dietary preferences (just as informational text, for now), a featured section with up to 3 restaurants that are currently open and their closing times, a list of saved restaurants (also hardcoded, for the time being) as large photo cards, and a “recently viewed” section with horizontal scrolling for unsaved restaurants. It includes an empty state if the user hasn’t saved any places yet.

Screenshots of the screen:

saved screen 1 saved screen 2

Home View (Discover) - Flutter

The Home screen serves as the app's landing page and main discovery surface. It presents personalized restaurant recommendations for the student, organized into sections that highlight what is most relevant right now: trending spots near campus, places that match the student's dietary preferences, and restaurants with short wait times. The screen uses a vertical scrollable layout with horizontally scrollable cards for each category, allowing the user to browse multiple curated lists without leaving the page.

Screenshots of the screen:

WhatsApp Image 2026-09-19 at 12 01 07 AM WhatsApp Image 2026-09-19 at 12 02 02 AM

Map View - Flutter

The Map screen provides a spatial overview of all restaurant locations across the Universidad de los Andes campus. It renders a stylized campus map drawn with a custom CustomPainter, showing paths, buildings, and a water feature as visual landmarks. Restaurants appear as circular pins with category-specific emoji (☕ for cafés, 🍜 for Asian, 🍔 for burgers, etc.), colored to indicate their current status: dark brown for open, gray for closed, and orange for the currently selected pin. Users can filter between "All Spots" and "Open Now" using toggle chips at the top. Tapping a pin reveals a tooltip with the restaurant's name and wait time, and a detail card appears below the map showing the restaurant's full summary. A scrollable quick-list below the map shows all visible spots with their name, wait time, and open/closed badge, allowing the user to select a restaurant from either the map or the list.

Screenshot of the screen:

map view

Profile View - Flutter

The Profile screen shows the user's personal information and app preferences. It displays the user's name, profile photo, and university affiliation at the top, followed by their dietary preferences and notification settings. The screen allows the user to review and edit the preferences that the recommendation engine and filtering system use across the app, keeping the personalization layer transparent and under the user's control.

Screenshot of the screen:

Profile View

Detail View - Flutter

The Detail View is the full information page for a single restaurant, accessed by tapping any restaurant card or list item from any of the main views. It opens with a large hero image spanning the top of the screen, overlaid with a back button, a save/unsave bookmark toggle, and status chips showing "OPEN NOW" or "CLOSED" alongside the restaurant's category. Below the image, a rounded info card presents the restaurant's name, location (with a pin icon), and three key stats in columns: star rating (with review count), average wait time, and price range. Further down, a card displays operating hours with a clock icon and a set of tag chips (e.g., "Coffee", "Pastries", "Ramen"). If crowding reports exist, a dedicated crowding card shows a visual bar indicator (scaled to 5 bars), a label ("Not crowded", "Moderate", or "Busy"), a linear progress bar, and the number of reports. The restaurant's description appears as body text. The menu section uses horizontally scrollable category tabs (e.g., "Drinks", "Food", "Ramen", "Pho"); tapping a tab displays the items in that category, each showing its name, description, and price. At the bottom, two buttons allow the user to "See Reviews" or "Write a Review."

Screenshots of the screen:

Detail 1 Detail 2

Video Demostration

Flutter | Android


Implementation

The release containing the Flutter implementation of all six views for MS7 can be found here:

🔗 Release v1.0.0 — MS7