-
Notifications
You must be signed in to change notification settings - Fork 0
High Level Analysis

In our program, users are college students and campus community members who want to explore and review dining options conveniently. Users can register on our platform and manage their personal profiles. They can browse restaurants based on preferences such as cuisine, price range, dietary restrictions, and ratings, while viewing detailed information including menu items, location, operating hours, and reviews. Users can also rate restaurants, leave feedback, and upload photos of their meals to help others make informed dining decisions. Users can share recommendations with friends too.
In our program, Restaurants are partner stakeholders who use the platform to represent their brand, reach nearby students and campus community members, and actively manage their public presence. Restaurant owners or managers can register and log in to a dedicated business account, create and maintain a detailed restaurant profile with information such as description, cuisine type, price range, photos, location, and operating hours, and update this information as their menu or services evolve. They can respond directly to user reviews and feedback to address concerns, highlight improvements, and build trust with potential customers, while also using the platform’s messaging features to communicate with users for clarifications, special requests, or promotions. Restaurants can view the composite neighborhood score and related analytics to understand how they rank within their area, compare nearby neighborhoods, and identify opportunities to improve appeal (for example, hygiene, affordability, or cuisine diversity). Through these capabilities, Restaurants use the platform not only as a discovery channel, but as a management and engagement tool to maintain accurate information, foster relationships with diners, and stay competitive within their local dining ecosystem.
In our program, Admins are system managers responsible for maintaining platform integrity, accuracy, and performance. Admins authenticate users and restaurants to ensure secure access and prevent fraudulent activity. They oversee user and restaurant management, including moderating accounts and handling reports. Admins manage the data pipeline by integrating external datasets (such as NYC Open Data), monitoring system data flow, and ensuring data consistency across the platform. They recompute composite scores to maintain fair and unbiased restaurant rankings. Through these responsibilities, Admins ensure the platform remains trustworthy, transparent, and operational for all users and restaurant partners.
Restaurants can communicate directly with users to answer questions, handle special requests, and share important updates. This communication channel may include messaging or chat features that support one‑to‑one conversations, enabling restaurants to personalize service for students and community members. By staying responsive, restaurants can strengthen relationships with diners and encourage repeat visits. A business account allows restaurants to engage with customer feedback and manage their reputation on the platform. Restaurants can read individual reviews and overall ratings, understand recurring issues or compliments, and respond publicly to show that they are listening and improving. This two‑way interaction helps build trust and encourages more constructive feedback from diners. Users can communicate with restaurants and friends to enhance their dining experience.
- As a restaurant, I want to send and receive messages from users so that I can answer questions about menu items, reservations, or dietary needs.
- As a restaurant, I want to control my communication settings (e.g., enable/disable messages, set office hours for replies) so that expectations around response times are clear.
- As a restaurant, I want to receive notifications when I get a new message so that I can respond promptly.
- As a restaurant, I want to see all reviews and ratings left by users so that I can understand customer satisfaction and pain points.
- As a restaurant, I want to respond publicly to user reviews so that I can clarify issues, thank customers, and demonstrate good customer service.
- As a restaurant, I want to view a history of my responses so I can track how I have addressed user feedback over time.
- As a user, I want to chat with restaurants so I can ask questions or get more information.
- As a user, I want to chat with friends so we can plan dining together.
Admins are responsible for ensuring the security, integrity, reliability, and fairness of the entire platform. They oversee secure authentication and access control to prevent unauthorized activity, manage the lifecycle and conduct of user and restaurant accounts, supervise the platform’s data infrastructure and external integrations, govern the composite scoring system to ensure unbiased evaluations, and monitor overall system performance to maintain operational stability.
Through centralized oversight of security, moderation, data accuracy, scoring transparency, and system health, Admins safeguard user trust, protect restaurant credibility, and ensure the platform remains accurate, compliant, and fully functional.
- As an Admin, I want to verify and control account access (including approving business accounts and enforcing security policies) so that unauthorized or fraudulent use is prevented.
- As an Admin, I want to monitor authentication logs and suspicious activity so that potential security threats are detected and addressed early.
- As an Admin, I want to review reported content, moderate accounts, and correct inaccurate information so that community standards and data integrity are maintained.
- As an Admin, I want to remove fraudulent reviews or spam and review account histories so that moderation decisions are fair and evidence-based.
- As an Admin, I want to oversee data ingestion processes, including external datasets, so that system information remains current and consistent.
- As an Admin, I want to detect and resolve data inconsistencies and audit data updates so that recommendations and rankings remain accurate.
- As an Admin, I want to recompute composite scores and validate scoring logic so that restaurant evaluations remain transparent and unbiased.
- As an Admin, I want to maintain historical scoring records and investigate anomalies so that trends can be audited and manipulation is prevented.
- As an Admin, I want to monitor system performance and receive alerts for technical failures so that downtime and service disruptions are minimized.
- As an Admin, I want to review system-wide audit logs so that platform operations remain transparent and accountable.
Restaurants, users, and administrators can create and manage secure accounts and maintain personalized or business profiles that support tailored experiences, accurate information sharing, and platform governance. Users can register, securely log in, and manage their credentials to access personalized features such as saved preferences and recommendations. They can update their taste preferences over time and view stored preferences to better understand how recommendations are generated. Restaurants have dedicated business accounts that allow them to securely access management tools and maintain a rich, accurate restaurant profile containing information such as location, cuisine, pricing, operating hours, contact details, and photos. Keeping profiles updated ensures diners receive reliable information and helps restaurants present their business effectively. Restaurants may also temporarily modify availability information or deactivate their profiles when necessary. Additionally, restaurants can view composite performance scores summarizing factors such as hygiene, affordability, availability, and cuisine diversity, along with breakdowns, comparisons, and historical trends that provide actionable insights. Administrators access the platform through secure administrative accounts with enhanced authentication controls, enabling governance, monitoring, and protection of system integrity. Together, authentication, profile management, personalization, and performance visibility create a unified profile management experience across all platform roles.
- As a user, I want to be able to create an account by providing my email, username, and password so that I can access the platform.
- As a user, I want to log into my account using my credentials so that I can access my preferences and saved data.
- As a user, I want to reset my password via email so that I can regain access if I forget it.
- As a user, I want to log out of my account so that my information stays secure on shared devices.
- As a user, I want to create a preference profile so the system understands my tastes.
- As a user, I want to update my preferences anytime so recommendations stay relevant.
- As a user, I want to view my saved preferences so I can understand how recommendations are generated.
- As a restaurant, I want to sign up for a business account using a business email, restaurant name, and password so that I can manage my restaurant on the platform.
- As a restaurant, I want to log into my account using my credentials so that I can access my restaurant dashboard.
- As a restaurant, I want to reset my password via email if I forget it so that I can regain access to my account.
- As a restaurant, I want to update my login credentials (password, recovery email) so that my account remains secure.
- As a restaurant, I want to log out of my account from any device so that unauthorized users cannot access my dashboard.
- As a restaurant, I want to create a restaurant profile with basic information (name, address, cuisine, price range, contact details) so that users can discover my business.
- As a restaurant, I want to upload and update photos of my restaurant and dishes so that my page looks appealing and informative.
- As a restaurant, I want to edit my profile details (description, location, business hours, phone number, website) so that my information stays current.
- As a restaurant, I want to mark certain fields as temporarily unavailable (e.g., closed for renovation) so users are not misled.
- As a restaurant, I want to deactivate or delete my restaurant profile if I no longer wish to appear on the platform.
- As a restaurant, I want to view my restaurant’s composite score so that I can understand how my business is evaluated on the platform.
- As a restaurant, I want to see a breakdown of score components (e.g., hygiene, affordability, availability, cuisine diversity) so that I know which areas are strong or weak.
- As a restaurant, I want to compare my score with the average score in my neighborhood so that I can see how I perform relative to nearby competitors.
- As a restaurant, I want to view how my score changes over time so that I can track the impact of improvements I make.
- As a restaurant, I want to read explanations or insights attached to the score so that I understand what actions might help me improve it.
- As an Admin, I want to log into a secure administrative account so that I can access system management features.
- As an Admin, I want enhanced authentication measures (e.g., multi-factor authentication) so that administrative access is highly secure.
- As an Admin, I want to manage or revoke access to administrative accounts so that only authorized personnel can control the platform.
- As an Admin, I want to review login activity across user and restaurant accounts so that suspicious behavior can be detected and addressed.
Users can receive smart, personalized restaurant recommendations based on their taste palette, stated preferences, and past activity on the platform. The system analyzes factors such as favorite cuisines, budget range, dietary restrictions, past ratings, and browsing or review history to suggest restaurants and neighborhoods that best match each user’s profile. Over time, the recommendation engine continuously learns from user behavior such as searches, visits, ratings, and reviews to refine suggestions and make them increasingly relevant, accurate, and aligned with changing tastes. This capability helps users quickly discover new places they are likely to enjoy without manually filtering all available options.
- As a user, I want the system to recommend restaurants that match my taste palette (cuisine, budget, and dietary preferences) so that I can quickly find places that fit my style without manually filtering everything.
- As a user, I want to receive personalized restaurant suggestions based on my saved preferences and my activity on the platform so that the recommendations feel tailored to me rather than generic.
- As a user, I want my recommendations to improve over time as I rate, review, and interact with restaurants so that the system becomes more accurate and better at predicting what I will enjoy.
Users can actively explore restaurants on the platform by searching, filtering, sorting, and comparing dining options based on structured restaurant data and composite performance indicators. While the recommendation engine provides automated suggestions, this functionality enables users to directly control how they discover restaurants using specific criteria relevant to their needs. Users can search for restaurants by name, keyword, or neighborhood, and apply filters such as cuisine type, price range, dietary accommodations, rating thresholds, availability status, and composite score. Search results dynamically update to reflect selected filters and ensure accurate, relevant results based on the current restaurant database and scoring system. Users can also sort search results by rating, composite score, price range, distance, or popularity to prioritize what matters most in a given context. Additionally, users can select multiple restaurants and compare them side-by-side, reviewing key information such as cuisine type, price range, operating hours, user ratings, and composite score breakdowns. This functionality supports informed decision-making by allowing users to evaluate options using both individual restaurant attributes and neighborhood performance data.
- As a user, I want to search for restaurants by name or keyword so that I can quickly find a specific restaurant.
- As a user, I want to search for restaurants by neighborhood so that I can explore dining options within a specific area.
- As a user, I want to filter restaurants by cuisine type so that I can narrow results to food categories I prefer.
- As a user, I want to filter restaurants by price range so that I can stay within my budget.
- As a user, I want to filter restaurants by dietary accommodations so that I can find options that match my dietary needs.
- As a user, I want to filter restaurants by rating threshold so that I can prioritize highly rated places.
- As a user, I want to filter restaurants by composite score so that I can identify restaurants that perform well across evaluation factors.
- As a user, I want to filter restaurants by availability status (e.g., open now) so that I do not select a closed restaurant.
- As a user, I want to sort restaurant results by rating, composite score, price, or popularity so that I can prioritize what matters most to me.
- As a user, I want to compare multiple restaurants side-by-side so that I can evaluate differences in pricing, ratings, cuisine type, hours of operation, and composite performance before making a decision.