You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+47-2Lines changed: 47 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,12 +22,54 @@ This is intendend as both to serve as a scaffold for our internal projects as to
22
22
- Aggregate's atomic services consistency guaranteed using `postgres` locks.
23
23
- Isolated and pure domain layer that has no dependencies (no, not even ORM).
24
24
25
+
## Roadmap
26
+
27
+
This is project's in its early stages, and should receive a big WIP tag. We should track progress using GitHub features:
28
+
29
+
1.[https://github.com/t10d/kingdom-python-server/discussions](Discussions) for brainstorming & prioritizing
30
+
1.[https://github.com/t10d/kingdom-python-server/milestones](Milestones) for planned features
31
+
1.[https://github.com/t10d/kingdom-python-server/issues/](Issues) for ongoing tasks
32
+
33
+
## Instructions
34
+
35
+
As it is disclaimed the project current status, running *for now* means making sure tests pass.
36
+
We are shortly improving the entire installation experience and usage. Hold tight.
37
+
38
+
### Step 1: Dependencies & environment
39
+
40
+
This projects uses `poetry` to manage dependencies.
41
+
Having said that, how you instantiate your virtual environment is up to you. You can do that now.
42
+
43
+
Inside your blank python virtual environment:
44
+
45
+
```shell
46
+
pip install poetry & poetry install
47
+
```
48
+
49
+
### Step 2: Prepare your database
50
+
51
+
As there aren't any containerization being done for now, you'd need `postgres` up and running in your local machine.
52
+
53
+
```shell
54
+
psql -c "create database template"
55
+
```
56
+
57
+
### Step 3: Test it
58
+
59
+
Right now you should be able to run the entire test-suite properly.
60
+
61
+
```shell
62
+
make test
63
+
```
64
+
25
65
26
66
## Why?
27
67
28
68
Why not use django? Or flask? Or FastAPI? Because these are great but heavily opiniated frameworks. We have a need to implement and deliver maintainable software we really know what's happening under the hood.
29
69
As a software house, we've come to find that by using such frameworks tends to inhibit programmers from practicing and improving their design skills.
30
70
71
+
We're (obviously) not alone here. [https://github.com/pcah/python-clean-architecture](`pca`) have touched base a few years ago.
72
+
31
73
## Philosophy
32
74
33
75
We are committed to these non-negotiables principle:
@@ -39,10 +81,13 @@ We are committed to these non-negotiables principle:
39
81
40
82
## Inspiration
41
83
42
-
We don't claim to have created everything from scratch. Quite the opposite, all of these are inspirations from elsewhere.
84
+
We don't claim to have created everything from scratch. Quite the opposite, the work here is a direct fork
85
+
from ideas we really identify with that were hard earned throughout the past two decades.
43
86
44
87
Specifically:
45
88
46
89
1. Architecture Patterns with Python from Bob Gregory & Harry Percival,
90
+
1. Python Clean Architecture, from [https://github.com/pcah](`pcah`)
47
91
1. Functional Core, Imperative Shell from Destroy All Software,
48
-
1. Hexagonal Architecture aka Ports & Adapters
92
+
1. Hexagonal Architecture aka Ports & Adapters by Alistair Cockburn
93
+
1. Domain-Driven-Design by Eric Evans & Martin Fowler
0 commit comments