Skip to content

2020 Autumn runner-up, O'Reilly Software Architecture Kata

Notifications You must be signed in to change notification settings

TheKataLog/Team-Pacman

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Architecture Katas - Farmacy Food

Presentation

View Presentation

Overview

Overview

Farmacy Food is a tech-enabled healthy food startup that creates tasty meals around people's dietary needs and active lifestyles to support their overall well-being.

Their mission is to make health and wellness radically affordable and accessible.

Let me explain the basic concept of Farmacy Food:

  1. Farmacy Food is a “Ghost Kitchen” which will prepare the meals.
  2. We use Smart Fridges and Sub-let spaces in other businesses as our Points of Sale. So, the meals are delivered to these POS from the Kitchen.
  3. Customers will check availability of meals using Mobile/Web App in the nearby Points of Sale.
  4. Customers go to the nearest available POS and purchase or pick-up the meals.
  5. The system has to maintain the inventory levels in the Smart Fridge and other POS.

Some Long Term goals are:

  1. Allowing multiple vendors or kitchens to provide meals using our system.
  2. Provide personalized recommendation based on user profile & purchase history.

Step 1

Identifying the Users/Clients

  1. Customers
  2. Vendors
  3. Kitchens
  4. Smart Fridges
  5. Kiosk / POS Systems
  6. Admin

Identifying Use Cases and deriving components

Use-Case Analysis

Step 2

Overall High-level Architecture

High Level Architecture Diagram

Architecture Approach for Farmacy Food Service - Decision Records

  1. Monolithic Design
  2. Serverless Design

Moving ahead with the Serverless design for the Farmacy Food Service.

Step 3

Architecture of POS integration

Decision Record: POS Integration Design

POS Integration Architecture Diagram

Step 4

Component & Sequence Diagrams

Component Diagram

Vendor Registration

Vendor Sequence Diagram

Kitchen Registration

Kitchen Sequence Diagram

Adding Menu Items

Menu Sequence Diagram

Kitchen Order Placement

Kitchen Order Placement Diagram

Expiry Tracker

Expiry Tracker Diagram

Online Order Reservations

Architecture Decisions:

Inventory Updates Communicaiton

Payment Service Communication

Order Resevation Diagram

Purchasing Meal offline

Architecture Decisions:

POS Integration

Purchase Meal Diagram

Create Surveys

Create Surveys Diagram

Create Coupons

Create Coupons Diagram

Step 5

Components Architecture Characteristics

Component Description Architecture Characteristics
Inventory As this is one of the system's core
components, it need to be highly available,
provide necessary responses to other system services
in short time.
1- Scalability
2- Performance
3- Availability
4- Reliability
Expiry
Tracker
This job needs to run daily but should be
quick enough to analyze all items that are expired.
1- Performance
Feedback This component is highly needed to render the menu,
and thus needs to be highly available and performant.
1- Performance
2- Availability
3- Customizable
User Profile User Profile will provide users' data and authentication services 1- Availability
2- Performance
3- Reliability
4- Scalability
Coupons Coupons service will be used mainly to create promotional coupons and validate them. 1- Availability
2- Reliability
3- Customizable
Menu Catalog Menu Catalog will hold the menu for all enabled items and it will manage adding/removing/disabiling menu items as well as listing menu items for customers. 1- Availability
2- Performance
3- Customizable
4- Scalability
5- Reliability

Releases

No releases published

Packages

No packages published