veg-finder

Veg Finder - Use Cases

graph LR
    Diner(["Diner"]e)
    RestaurantOwner(["Restaurant Owner"])
    Administrator(["Administrator"])
    
    subgraph VegFinder["Veg Finder System"]
        direction TB
        FindRestaurant["Find Restaurant"]
        RateRestaurant["Rate Restaurant"]
        ShareRestaurant["Share Restaurant<br/>Selections"]
        SubmitRestaurant["Submit Restaurant<br/>Information"]
        UpdateMenu["Update Menu<br/>Details"]
        ApproveRestaurant["Approve Restaurant<br/>Listing"]
        ModerateContent["Moderate Content<br/>Updates"]
        SendAlert["Send New Restaurant<br/>Alert"]
    end
    
    GeolocationService(["Geolocation<br/>Service"])
    EmailService(["Email<br/>Service"])
    SMSService(["SMS<br/>Service"])
    
    %% Diner connections
    Diner --> FindRestaurant
    Diner --> RateRestaurant
    Diner --> ShareRestaurant
    
    %% Restaurant Owner connections
    RestaurantOwner --> SubmitRestaurant
    RestaurantOwner --> UpdateMenu
    
    %% Administrator connections
    Administrator --> ApproveRestaurant
    Administrator --> ModerateContent
    Administrator --> SendAlert
    
    %% Secondary actor connections - grouped by service
    FindRestaurant ---> GeolocationService
    SubmitRestaurant ---> GeolocationService
    ApproveRestaurant ---> GeolocationService
    
    SubmitRestaurant ---> EmailService
    ApproveRestaurant ---> EmailService
    SendAlert ---> EmailService
    
    SendAlert ---> SMSService
    
    classDef actorStyle fill:#4A90E2,stroke:#2E5C8A,stroke-width:3px,color:#FFF
    classDef secondaryStyle fill:#FFB74D,stroke:#F57C00,stroke-width:3px,color:#000
    classDef useCaseStyle fill:#FFF,stroke:#333,stroke-width:2px,color:#000
    classDef systemStyle fill:#757575,stroke:#424242,stroke-width:3px,color:#FFF
    
    class Diner,RestaurantOwner,Administrator actorStyle
    class EmailService,SMSService,GeolocationService secondaryStyle
    class FindRestaurant,RateRestaurant,ShareRestaurant,SubmitRestaurant,UpdateMenu,ApproveRestaurant,ModerateContent,SendAlert useCaseStyle

Primary Actors:

Use Cases:

Secondary Actors:


Use Case Narrative: Find Restaurant

Use Case Name

Find Restaurant

Primary Actor

Diner

Goal

The diner successfully finds a restaurant that matches their dietary needs and current dining context.

Preconditions

Main Success Scenario

  1. The diner specifies their dietary preference (vegetarian, vegan, gluten-free, etc.).
  2. The diner indicates their current context (eating now vs. planning ahead, location preference, dining alone vs. with group).
  3. The system uses Geolocation Service to determine the diner’s current location.
  4. The diner optionally adds filters (price range, food type, open now, specific cuisine).
  5. The system retrieves matching restaurants from the database.
  6. The system ranks results based on the diner’s personal ratings and preferences.
  7. The system displays a compact list of recommended restaurants with key details.
  8. The diner selects a restaurant to view full details.
  9. The system provides complete information including menu, hours, location, and contact details.

Extensions (Alternative Flows)

Postconditions


Use Case Narrative: Submit Restaurant Information

Use Case Name

Submit Restaurant Information

Primary Actor

Restaurant Owner

Goal

The restaurant owner successfully submits their restaurant information for inclusion in the system.

Preconditions

Main Success Scenario

  1. The restaurant owner enters basic restaurant details (name, address, phone, website).
  2. The system validates the address using Geolocation Service.
  3. The restaurant owner specifies dietary options offered (vegetarian, vegan, gluten-free, etc.).
  4. The restaurant owner uploads menu information and photos.
  5. The restaurant owner sets operating hours and days.
  6. The restaurant owner adds special features (takeout, dine-in, outdoor seating, etc.).
  7. The restaurant owner submits the information for review.
  8. The system notifies the Administrator via Email Service.
  9. The system provides submission confirmation to the restaurant owner.

Extensions (Alternative Flows)

Postconditions


Use Case Narrative: Approve Restaurant Listing

Use Case Name

Approve Restaurant Listing

Primary Actor

Administrator

Goal

The administrator successfully reviews and approves a restaurant listing for public visibility.

Preconditions

Main Success Scenario

  1. The administrator views the list of pending restaurant submissions.
  2. The administrator selects a submission to review.
  3. The system displays all submitted restaurant details, menu, and photos.
  4. The administrator verifies the information accuracy and appropriateness.
  5. The administrator verifies location using Geolocation Service.
  6. The administrator approves the listing.
  7. The system publishes the restaurant to the public database.
  8. The system notifies the restaurant owner of approval via Email Service.

Extensions (Alternative Flows)

Postconditions