Files
react-dotnet-framework/README.md
2026-08-03 04:23:32 -04:00

65 lines
1.7 KiB
Markdown

# react-dotnet
### A minimal monorepo skeleton - full-stask project jumpstarter with:
### NET backend
### React/Vite frontend
## Prerequisites
- [.NET SDK](https://dotnet.microsoft.com/download) (project targets `net10.0`)
- [Node.js](https://nodejs.org/) (LTS recommended)
## Backend
From the repository root:
```bash
cd backend
dotnet run
```
The API runs at `http://localhost:5231`. Swagger UI is available in Development at `http://localhost:5231/swagger`.
Skeleton endpoints:
- `GET /health` — liveness check, exempt from rate limiting
- `GET /v1/info` — app name, version, environment, and server timestamp
- `GET|POST /v1/users`, `GET|PUT|DELETE /v1/users/{id}` — placeholder CRUD over the
in-memory repository
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
selected by `Persistence:Provider`, which currently supports `InMemory` only; data is
lost on restart until a real provider is registered in
`backend/Data/PersistenceServiceCollectionExtensions.cs`.
## Frontend
From the repository root:
```bash
cd frontend
npm install
npm run dev
```
The app runs at `http://localhost:3000`.
Copy `.env.example` to `.env.development` (or `.env.local`) if you need to customize the API URL:
```
VITE_API_BASE_URL=http://localhost:5231
```
## Running both
Start the backend and frontend in separate terminals. The backend CORS policy allows requests from `http://localhost:3000` by default; change `Cors:AllowedOrigins` in `backend/appsettings.json` to add more.
## Project structure
```
backend/ ASP.NET Core Web API
frontend/ React + Vite + TypeScript SPA
```