How navinreddy20/fastapi-demo works
This repository is a set of progressively expanded product-inventory examples: in-memory GET/POST, in-memory CRUD, database-backed CRUD, and a React management UI. The principal workflow is a user viewing, searching, sorting, and editing products in the UI; the UI calls the FastAPI service, which reads or changes product records. The final example seeds an initially empty database and uses PostgreSQL. Earlier examples are standalone variants, not stages that call one another. Frontend and database wiring is shown where supported by the sampled source; unsampled implementations are represented only by their tree paths.
Main entry points: 04-products-with-ui/main.py UI-backed CRUD API · App.js Management screen · models.py Product schema · 03-products-with-db/main.py Database CRUD API
Components 11
Inventory UI
- Management screen
04-products-with-ui/frontend/src/App.js - Tagline section
04-products-with-ui/frontend/src/TaglineSection.js
Inventory APIs
- GET/POST API
01-products-get-post/main.py - In-memory CRUD
02-products-put-delete/main.py - Database CRUD API
03-products-with-db/main.py - UI-backed CRUD API
04-products-with-ui/main.py - Product schema
04-products-with-ui/models.py
Product storage
- DB sessions
04-products-with-ui/database.py - Product table model
04-products-with-ui/database_models.py
Other components
- Inventory user
- PostgreSQL
Connections 14
- Inventory user → Management screen: uses
- Management screen → Tagline section: renders
- Management screen → UI-backed CRUD API: HTTP requests
- UI-backed CRUD API → Management screen: returns results
- UI-backed CRUD API → Product schema: validates input
- UI-backed CRUD API → DB sessions: opens sessions
- UI-backed CRUD API → Product table model: queries and mutates
- DB sessions → PostgreSQL: connects
- Product table model → PostgreSQL: maps products
- Database CRUD API → DB sessions: opens sessions
- Database CRUD API → Product table model: queries and mutates
- Database CRUD API → Product schema: validates input
- GET/POST API → Product schema: validates input
- In-memory CRUD → Product schema: validates input