axd-few-ref1274

This commit is contained in:
KS Jannette
2026-08-04 20:15:40 -04:00
parent 88a8fdd14a
commit 6f9a07798f
2 changed files with 11 additions and 27 deletions

View File

@@ -1,24 +1,18 @@
# React-Dotnet Framework Sekeleton # React-Dotnet Framework
Once upon a time, people maintained "skeleton" repos they could clone to jumpstart new projects. Once upon a time, people maintinaed "skeleton" repos they could clone to quickly jumpstart new projects. Why? It was quick, free and it worked.
Why? It was quick, free and worked.
# A.B.C. ### A. Always. B. Be. C. Consciously TokenWoxxxening
A. Always ### This is a full-stask project jumpstarter with:git status
B. Be. ### .NET backend
### React/Vite frontend
C. Cognitively TokenWoxxxening
# Skel Arch: a full-stask project jumpstarter with:
### .NET backend (with a few existing endpoints/services most applications need)
### React/Vite frontend (just the facts m'am)
# .Net # .Net
Five CRUD endpoints return correct status codes:
Five CRUD endpoints. 201 with a proper Location header
400 on invalid email, 409 on duplicate, 204 then 404 on delete), 150 requests to /v1/info yielded exactly 100 successes and the rest 429, and 40 requests to /health all returned 200 while that window was exhausted.
## Prerequisites ## Prerequisites
@@ -27,7 +21,7 @@ Five CRUD endpoints.
## Backend ## Backend
From root: From the repository root:
```bash ```bash
cd backend cd backend
@@ -41,7 +35,7 @@ Skeleton endpoints:
- `GET /health` — liveness check, exempt from rate limiting - `GET /health` — liveness check, exempt from rate limiting
- `GET /v1/info` — app name, version, environment, and server timestamp - `GET /v1/info` — app name, version, environment, and server timestamp
- `GET|POST /v1/users`, `GET|PUT|DELETE /v1/users/{id}` — placeholder CRUD over the - `GET|POST /v1/users`, `GET|PUT|DELETE /v1/users/{id}` — placeholder CRUD over the
in-memory repository in-memory repository
Requests are rate limited per client IP using the `RateLimiting` section of Requests are rate limited per client IP using the `RateLimiting` section of
`appsettings.json`, and allowed CORS origins come from the `Cors` section. Storage is `appsettings.json`, and allowed CORS origins come from the `Cors` section. Storage is
@@ -63,7 +57,6 @@ The app runs at `http://localhost:3000`.
Copy `.env.example` to `.env.development` (or `.env.local`) if you need to customize the API URL: Copy `.env.example` to `.env.development` (or `.env.local`) if you need to customize the API URL:
``` ```
VITE_API_BASE_URL=http://localhost:5231 VITE_API_BASE_URL=http://localhost:5231
``` ```
@@ -78,12 +71,3 @@ Start the backend and frontend in separate terminals. The backend CORS policy al
backend/ ASP.NET Core Web API backend/ ASP.NET Core Web API
frontend/ React + Vite + TypeScript SPA frontend/ React + Vite + TypeScript SPA
``` ```

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB