https://github.com/knu-k/event-driven-programming-practica
This repository demonstrates event-driven programming using Java and Spring Boot
https://github.com/knu-k/event-driven-programming-practica
Last synced: 10 months ago
JSON representation
This repository demonstrates event-driven programming using Java and Spring Boot
- Host: GitHub
- URL: https://github.com/knu-k/event-driven-programming-practica
- Owner: KNU-K
- Created: 2024-11-28T06:47:13.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-15T19:11:25.000Z (10 months ago)
- Last Synced: 2025-02-15T20:23:21.951Z (10 months ago)
- Language: Java
- Size: 75.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Event Driven Programming Practica
This project does not use a database; it relies solely on mock data. The goal is to achieve loose coupling between components
## Domain Scenario
- Product
- Coupon
- Customer
- Order
- Delivery
- Payment
- Kitchen
### ๐Condition
1. A **Product** is an item with defined attributes such as price, stock, and options.
2. A **Coupon** can only be applied to specific **Products** and specifies the usage period and conditions.
3. A **Customer** has an account that contains personal and payment information.
4. A **Kitchen** holds specific **Products** and is responsible for the preparation and delivery of those **Products**.
5. A **Customer** can purchase a **Product**.
- 5-1. When ordering via **Mobile**, the customer enters information such as the delivery address and payment method.
- 5-2. When ordering via **Kiosk**, the customer enters payment information.
6. Create an order form that matches the appropriate format.
7. Proceed with payment.
- Payment can be made through mobile payment, card payment, cash payment, etc.
8. Order details transmission:
- 8-a. When ordering via **Mobile**, the order details are transmitted to both the **Kitchen** and **Delivery** domains.
- 8-b. When ordering via **Kiosk**, the order details are transmitted only to the **Kitchen** domain.
1. **Product**๋ ๊ฐ๊ฒฉ, ์ฌ๊ณ , ์ต์
๋ฑ์ด ์ ์๋ ์ํ์ด๋ค.
2. **Coupon**์ ํน์ **Product**์๋ง ์ ์ฉ๋ ์ ์์ผ๋ฉฐ, ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๊ฐ๊ณผ ์กฐ๊ฑด์ด ๋ช
์๋๋ค.
3. **Customer**๋ ๊ฐ์ธ ์ ๋ณด, ๊ฒฐ์ ์ ๋ณด ๋ฑ์ ํฌํจํ ๊ณ์ ์ ๊ฐ์ง๋ค.
4. **Kitchen**์ ํน์ **Product**๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, ํด๋น **Product**์ ์ค๋น ๋ฐ ๋ฐฐ์ก์ ๋ด๋นํ๋ค.
5. **Customer**๋ **Product**๋ฅผ ๊ตฌ๋งคํ ์ ์๋ค.
- 5-1. **Mobile**์ ํตํด ์ฃผ๋ฌธ ์, ์ฌ์ฉ์๋ ๋ฐฐ์ก ์ฃผ์, ๊ฒฐ์ ๋ฐฉ๋ฒ ๋ฑ์ ์ ๋ณด๋ฅผ ์
๋ ฅํ๋ค.
- 5-2. **Kiosk**๋ฅผ ํตํด ์ฃผ๋ฌธ ์, ์ฌ์ฉ์๋ ๊ฒฐ์ ์ ๋ณด๋ฅผ ์
๋ ฅํ๋ค.
6. **๊ฐ ํ์์ ๋ง๋ ์ฃผ๋ฌธ์๋ฅผ ์ ์ํ๋ค.**
7. **๊ฒฐ์ ๋ฅผ ์งํํ๋ค.**
- ๊ฒฐ์ ๋ ๋ชจ๋ฐ์ผ ๊ฒฐ์ , ์นด๋ ๊ฒฐ์ , ํ๊ธ ๊ฒฐ์ ๋ฑ์ ๋ฐฉ๋ฒ์ผ๋ก ์งํ๋๋ค.
8. **์ฃผ๋ฌธ ๋ช
์ธ ์ ๋ณด ์ ์ก:**
- 8-a. **Mobile**๋ก ์ฃผ๋ฌธ ์, **Kitchen**๊ณผ **Delivery** ๋๋ฉ์ธ์ผ๋ก ์ฃผ๋ฌธ ๋ช
์ธ ์ ๋ณด๋ฅผ ์ ์กํ๋ค.
- 8-b. **Kiosk**๋ก ์ฃผ๋ฌธ ์, **Kitchen** ๋๋ฉ์ธ์ผ๋ก๋ง ์ฃผ๋ฌธ ๋ช
์ธ ์ ๋ณด๋ฅผ ์ ์กํ๋ค.