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
+18-7Lines changed: 18 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# PokerBank
2
2
3
-
PokerBank tracks friendly poker games where players do not need to bring cash to the table. It records buy-ins, cash-outs, and real-money settlement payments so the group can reconcile who owes money and who should receive money later.
3
+
PokerBank helps small poker groups play without cash on hand. It records buy-ins, cash-outs, and real-money settlement payments so everyone can see what they owe or are owed after each game.
4
4
5
-
The project is also a .NET portfolio app: the backend uses a vertical-slice API style, a small domain model, EF Core with PostgreSQL, integration tests, OpenAPI/Scalar, Docker Compose, and OpenTelemetry through the Aspire dashboard.
5
+
The app is built around a feature-oriented ASP.NET Core API, a small domain model, EF Core with PostgreSQL, integration tests, OpenAPI/Scalar, Docker Compose, and OpenTelemetry through the Aspire dashboard.
6
6
7
7
## Features
8
8
@@ -12,7 +12,8 @@ The project is also a .NET portfolio app: the backend uses a vertical-slice API
12
12
- Track settlement payments made by or received by players
13
13
- View balances across game results and payments
14
14
- Manage players, including optional contact email addresses
15
-
- Use a Svelte frontend backed by generated OpenAPI types
15
+
- Sign in with group-scoped manager/member access
16
+
- Send balance update emails to players
16
17
17
18
## Tech Stack
18
19
@@ -39,6 +40,8 @@ The domain project contains the core business objects:
39
40
40
41
The domain handles local rules such as valid money amounts, game close rules, player email validation, and payment direction. Query-heavy screens such as balances and game results are projected with EF Core so the database does the aggregation work.
41
42
43
+
Authentication uses ASP.NET Core Identity. Access is scoped to a poker group, with group roles used to separate manager workflows from member-facing views.
44
+
42
45
## Run Locally
43
46
44
47
Start the full local stack:
@@ -67,6 +70,17 @@ Password: pokerbank
67
70
68
71
EF Core migrations are applied by the API on startup.
69
72
73
+
### Development Login
74
+
75
+
Docker Compose configures a default owner account for local development:
76
+
77
+
```txt
78
+
Email: admin@pokerbank.local
79
+
Password: PokerBank123!
80
+
```
81
+
82
+
Override `AUTHENTICATION__ADMINEMAIL` and `AUTHENTICATION__ADMINPASSWORD` in `.env` if you want different local credentials. The API only seeds an owner account when both values are configured.
83
+
70
84
### Email
71
85
72
86
Balance update emails use `LoggingEmailSender` by default, so local sends are written to API logs instead of actually being sent.
@@ -103,6 +117,7 @@ Run frontend checks:
103
117
104
118
```sh
105
119
cd PokerBank.Web
120
+
npm ci
106
121
npm run check
107
122
npm run build
108
123
```
@@ -113,7 +128,3 @@ Regenerate frontend API types while the API is running:
113
128
cd PokerBank.Web
114
129
npm run generate:api
115
130
```
116
-
117
-
## Current Direction
118
-
119
-
The app is focused on the core poker-night workflow first: record games, compute results, track settlement payments, and make balances obvious. Future work will likely include authentication/RBAC, better settlement communication, pagination/filtering where it becomes useful, and a more polished frontend.
0 commit comments