Skip to content

Commit a9e2840

Browse files
authored
Update README.md
1 parent 253fb25 commit a9e2840

File tree

1 file changed

+96
-2
lines changed

1 file changed

+96
-2
lines changed

README.md

Lines changed: 96 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,99 @@
1-
# 🛒 E-Commerce Future Implementations Roadmap
1+
# 🛒 QRShop (.NET Portfolio Project)
22

3-
This part of the document describes planned features and business rules for the e-commerce system (built with .NET 9 and Rust as feature flag provider).
3+
## 📘 Index
4+
1. [Overview](#overview)
5+
2. [Tech Stack](#tech-stack)
6+
3. [Architecture](#architecture)
7+
4. [CI/CD Workflow](#cicd-workflow)
8+
5. [Running the Demo](#running-the-demo)
9+
6. [Roadmap](#roadmap)
10+
7. [License](#license)
11+
12+
---
13+
14+
## 🧩 Overview
15+
16+
**QRShop** is an ongoing **.NET portfolio project** designed to explore clean, maintainable, and scalable application design.
17+
It serves as a sandbox for implementing production-grade concepts such as **Domain Events**, **Vertical Slice Architecture**, and **asynchronous messaging** with **RabbitMQ** (future implementation).
18+
19+
To visualize and interact with this backend, a corresponding frontend has been implemented using Next.js: [nextjs-qrshop](https://github.com/dLopes-SE/nextjs-qrshop).
20+
Additionally, a **demo version** of the project is available, as described in the **Demo** section below.
21+
22+
The project is still **in active development**, with multiple open issues reflecting ongoing improvements and planned features.
23+
24+
---
25+
26+
## ⚙️ Tech Stack
27+
28+
- **.NET 8 / C#**
29+
- **Entity Framework Core** — ORM and migrations
30+
- **PostgreSQL** — primary database
31+
- **Docker & Docker Compose** — containerization and local orchestration
32+
- **xUnit** — testing framework
33+
- **GitHub Actions** — CI/CD pipeline
34+
- **(Planned)** RabbitMQ — message-based communication
35+
- **(Planned)** Redis — distributed caching
36+
37+
---
38+
39+
## 🏗️ Architecture
40+
41+
QRShop follows a **Vertical Slice Architecture** (feature-based design), focusing on organizing code by behavior rather than technical layers.
42+
43+
### Folder Overview:
44+
- **`Features/`** – Core business use cases, each encapsulating commands, queries, and handlers
45+
- **`Domains/`** – Domain models and business logic
46+
- **`Infrastructure/`** – Database, external services, and persistence setup
47+
- **`Common/`** and **`Abstractions/`** – Shared utilities, base classes, and abstractions
48+
- **`Services/`** – Supporting application services and cross-cutting concerns
49+
50+
### In Progress:
51+
- **Domain Events** – to decouple domain logic and react to business changes
52+
- **Output Pattern** – standardizing responses and error handling
53+
54+
This approach enhances modularity and testability while keeping the system extensible.
55+
56+
---
57+
58+
## 🚀 CI/CD Workflow
59+
60+
A **GitHub Actions** workflow automatically builds, tests, and publishes a **public Docker image** for QRShop.
61+
This enables fast demo setup and continuous delivery of new versions.
62+
63+
---
64+
65+
## 💻 Running the Demo
66+
67+
You can quickly spin up a demo instance of QRShop using the provided scripts — no manual setup required.
68+
69+
**Windows:**
70+
```powershell
71+
powershell -ExecutionPolicy Bypass -Command "iwr -useb https://raw.githubusercontent.com/dlopes-se/dotnet-qrshop/main/scripts/run-qrshop.ps1 | iex"
72+
```
73+
74+
**macOS / Linux:**
75+
```
76+
bash <(curl -fsSL https://raw.githubusercontent.com/dlopes-se/dotnet-qrshop/main/scripts/run-qrshop.sh)
77+
```
78+
79+
These scripts automatically download and run the latest Docker image published by the CI/CD pipeline.
80+
81+
---
82+
83+
## 🗺️ Roadmap
84+
85+
- [ ] Integrate RabbitMQ for event-driven workflows
86+
- [ ] Add Redis caching layer
87+
- [ ] Implement Domain Events pattern
88+
- [ ] Finalize Output Pattern
89+
- [ ] Expand test coverage (unit + integration)
90+
- [ ] Extend CI/CD workflow (linting, static analysis)
91+
92+
---
93+
94+
## 🛒 Future Implementations Ideas
95+
96+
This part of the document describes some ideas for features and business rules for the e-commerce system (built with .NET 9 and (e.g.) Rust as feature flag provider).
497

598
---
699

@@ -33,3 +126,4 @@ This part of the document describes planned features and business rules for the
33126
- Role-based or user-segment targeting.
34127
- Percentage rollouts (canary releases).
35128
- Audit log of feature flag changes.
129+

0 commit comments

Comments
 (0)