Skip to content

OriginalMHV/kCoffee

Repository files navigation

kCoffee

This project was created using the Ktor Project Generator.

Here are some useful links to get you started:

Features

Here's a list of features included in this project:

Name Description
Routing Allows to define structured routes and associated handlers.

Building & Running

To build or run the project, use one of the following tasks:

Task Description
./gradlew test Run the tests
./gradlew build Build everything
buildFatJar Build an executable JAR of the server with all dependencies included
buildImage Build the docker image to use with the fat JAR
publishImageToLocalRegistry Publish the docker image locally
run Run the server
runDocker Run using the local docker image

If the server starts successfully, you'll see the following output:

2024-12-04 14:32:45.584 [main] INFO  Application - Application started in 0.303 seconds.
2024-12-04 14:32:45.682 [main] INFO  Application - Responding at http://0.0.0.0:8080

docker-compose up --build

🔹 Scenario: Coffee Shop Order System 1️⃣ Customers place orders at the counter → RabbitMQ queues the order for processing. 2️⃣ The barista (order processor) prepares the coffee → RabbitMQ delivers the order to the barista. 3️⃣ Customers wait → They can check their phone (via WebSocket) to see if their order is ready. 4️⃣ Once an order is ready → The system sends a WebSocket notification to the customer.

🔹 Mapping

Real-Life Coffee Shop ☕ Tech Equivalent 🔥
🛒 Customer places an order at the counter RabbitMQ Producer sends the order to a queue
👨‍🍳 Barista (order processor) prepares coffee RabbitMQ Consumer listens and processes the order
📲 Customer checks app for order updates WebSocket connection stays open
Order is ready, customer is notified WebSocket message is sent to the client
📦 If customer is not online, order is still ready RabbitMQ holds messages until a consumer picks them up

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published