From 6401b50ef932e453a8ddc8c1a407032fca6fc7b6 Mon Sep 17 00:00:00 2001 From: Helis Freitas Date: Sun, 6 Oct 2024 13:27:29 -0300 Subject: [PATCH] Dev (#8) * feat: update module frontend angular * doc: add documentation about the project --- README.md | 40 ++++++++- .../out/architecture/systemdiagram.png | Bin 0 -> 43244 bytes docs/diagrams/src/systemdiagram.puml | 47 ++++++++++ docs/specs/SPEC1.md | 81 ++++++++++++++++++ my-delivery-registration/pom.xml | 2 +- 5 files changed, 167 insertions(+), 3 deletions(-) create mode 100644 docs/diagrams/out/architecture/systemdiagram.png create mode 100644 docs/diagrams/src/systemdiagram.puml create mode 100644 docs/specs/SPEC1.md diff --git a/README.md b/README.md index b04170f..f2d1cd9 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,44 @@ [![Java CI with Maven](https://github.com/helisfreitas/my-delivery-quarkus/actions/workflows/maven.yml/badge.svg)](https://github.com/helisfreitas/my-delivery-quarkus/actions/workflows/maven.yml) + # My Delivery App project -This project uses Quarkus, the Supersonic Subatomic Java Framework and Angular Front End +The *My-Delivery* app, a demo Application for just Study Purposes, is designed to be a general-purpose food delivery platform, similar to iFood. + +This project uses Quarkus, Java Framework and Angular, FrontEnd Framework. + +If you want to learn more about: + +- Quarkus, please visit its website: https://quarkus.io/. +- Angular, please visit its website: https://angular.dev/. + +## Specifications + +[Spec 1](/docs/specs/SPEC1.md) + +## Developer Mode + +### Cloning the application + + git clone https://github.com/helisfreitas/my-delivery-quarkus.git + cd /my-delivery-frontend-angular + git submodule init + +### Running the application + +- Running each module separately + + 1. my-delivery-registration (Restaurant Management) + + See: [Instructions](/my-delivery-registration/README.md) + + 2. my-delivery-marketplace + + See: [Instructions](/my-delivery-marketplace/README.md) + + 3. my-delivery-frontend-angular -If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ . + See: [Instructions](/my-delivery-frontend-angular/README.md) +## Reference links +- [Git Submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) diff --git a/docs/diagrams/out/architecture/systemdiagram.png b/docs/diagrams/out/architecture/systemdiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..e634d11ce3f5a449540dd5330f4394bd0f45d49d GIT binary patch literal 43244 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 literal 0 HcmV?d00001 diff --git a/docs/diagrams/src/systemdiagram.puml b/docs/diagrams/src/systemdiagram.puml new file mode 100644 index 0000000..124d17f --- /dev/null +++ b/docs/diagrams/src/systemdiagram.puml @@ -0,0 +1,47 @@ +@startuml +title My-Delivery System Architecture + +package "Web Clients" { + [User Client\n(Angular App)] +} + +package "Backend Quarkus" { + [Authentication Service] + [Restaurant Management Service] + [Marketplace Service] + [Delivery Service] +} + +package "Database Layer" { + [PostgreSQL] + [MongoDB] +} + +package "External Integrations" { + [Maps API] + [SMS/Email Service] +} + +package "Infrastructure" { + [Load Balancer] + [Message Queue] +} + +' Define interactions between components +[User Client\n(Angular App)] --> [Authentication Service] +[User Client\n(Angular App)] --> [Restaurant Management Service] +[User Client\n(Angular App)] --> [Marketplace Service] +[User Client\n(Angular App)] --> [Delivery Service] + +[Marketplace Service] --> [PostgreSQL] +[Marketplace Service] --> [MongoDB] +[Restaurant Management Service] --> [PostgreSQL] +[Delivery Service] --> [MongoDB] + +[Delivery Service] --> [Maps API] +[Marketplace Service] --> [SMS/Email Service] + +[User Client\n(Angular App)] --> [Load Balancer] + +[Marketplace Service] --> [Message Queue] +@enduml \ No newline at end of file diff --git a/docs/specs/SPEC1.md b/docs/specs/SPEC1.md new file mode 100644 index 0000000..8899502 --- /dev/null +++ b/docs/specs/SPEC1.md @@ -0,0 +1,81 @@ +# SPEC-1: My-Delivery App (Demo Application for just Study Purposes) + +## Background + +The *My-Delivery* app is a demo app designed to be a general-purpose food delivery platform, similar to iFood. It will allow users to browse local restaurants, place orders, and track deliveries in real time. The platform will cater to a wide audience, connecting customers with a variety of cuisines. Both restaurants and delivery personnel will have dedicated interfaces to manage their services efficiently. + +## Architecture Design + +![System Architecture](../diagrams/out/architecture/systemdiagram.png) + +## Requirements + +The requirements for *My-Delivery* are broken down according to the MoSCoW prioritization model: + +### Must Have + +1. **Restaurant Listings** + - A searchable, filterable list of restaurants based on location, cuisine, and ratings. + - Restaurant profiles including details such as menus, ratings, operating hours, and contact information. + +2. **Menu Items Listings** + - A searchable, filterable list of Menu Items based on category, restaurants. + +3. **Restaurant Management (Admin Dashboard for Restaurants)** + - Restaurants can register and create their profiles. + - Restaurant owners can add, modify, or remove menu items, and set prices. + - Update product availability and business hours in real-time. + +4. **Menu and Order Management** + - Customers can browse restaurant menus and add items to their carts. + - Support for order customization (special instructions, portion sizes, etc.). + +5. **Order Placement** + - Comprehensive order summary showing price breakdown, delivery fees, and time estimates. + - Payment manually on delivery. + +### Should Have + +1. **User Registration & Authentication** + - Users can register and log in using email or social media accounts. + - User profile management features (name, contact information, etc.). + +2. **Push Notifications** + - Real-time updates on order status and promotional offers. + +3. **Promotions & Discounts** + - Allow restaurants to offer discount codes, and users to apply promo codes during checkout. + +4. **Customer Support Chat** + - In-app support for customer queries and issues. + +5. **Order History** + - Users can view and reorder from their past orders. + +6. **Real-time Order Tracking** + - Track the order status (preparing, dispatched, delivered) with live delivery tracking via map integration. + +7. **Ratings and Reviews** + - Customers can review both the restaurant and the delivery personnel. + - Display average ratings and reviews on restaurant profiles. + +8. **Delivery Person Interface** + - Dedicated app or interface for couriers to view and accept deliveries. + - Navigation integration to assist delivery personnel in reaching destinations. + +9. **Payment Service** + - System of payment service for customers with multiple payment options including credit/debit cards and Digital wallet. + - Integration for external payment services such as PayPal + +### Could Have + +1. **Loyalty Program** + - Reward customers for repeat orders with points or discounts. + +2. **Scheduled Orders** + - Allow users to place an order for a future time or date. + +### Won't Have (for MVP) + +1. **Table Reservations** + - Features allowing users to reserve tables at restaurants will not be included in the initial version. diff --git a/my-delivery-registration/pom.xml b/my-delivery-registration/pom.xml index cbaa6ff..eac7fb4 100644 --- a/my-delivery-registration/pom.xml +++ b/my-delivery-registration/pom.xml @@ -12,7 +12,7 @@ my-delivery-registration 0.0.1 - Registration Api + Restaurant Management Service 3.13.0