How mdavidjeremiah/dbms-project works
Hardware World is a retail operations application for browser-based staff workflows. Users authenticate, then manage organisation and staff, catalogue and suppliers, purchase orders, sales, payroll, and ledger records; the FastAPI routes enforce role permissions and persist business data through SQLAlchemy to MySQL. The README also documents local OpenAPI/Swagger documentation. Frontend module wiring and several backend route implementations were not sampled, so the graph groups those documented capabilities without asserting detailed internal calls between them.
Main entry points: main.py FastAPI routes · database.py DB sessions · frontend Application pages · api.js API client
Components 18
Browser application
- Browser
- Application pages
frontend - API client
frontend/assets/js/api.js - Login UI
frontend/assets/js/auth.js
API service
- FastAPI routes
backend/main.py - JWT and RBAC
backend/auth.py - Request models
backend/schemas.py - API documentation
backend/swagger-ui
Retail operations
- Organisation and staff
backend/main.py - Products and suppliers
backend/main.py - Purchase orders
backend/main.py - Sales operations
backend/main.py - Payroll processing
backend/main.py - Financial ledger
backend/main.py
Persistence
- SQLAlchemy entities
backend/models.py - DB sessions
backend/database.py
Other components
- Staff user
- MySQL database
Connections 24
- Staff user → Browser: uses
- Browser → Application pages: opens pages
- Application pages → Login UI: signs in
- Application pages → API client: requests data
- API client → FastAPI routes: calls REST API
- Login UI → FastAPI routes: submits login
- FastAPI routes → JWT and RBAC: authenticates
- JWT and RBAC → DB sessions: loads user
- FastAPI routes → Request models: validates payloads
- FastAPI routes → Organisation and staff: handles requests
- FastAPI routes → Products and suppliers: handles requests
- FastAPI routes → Purchase orders: handles requests
- FastAPI routes → Sales operations: handles requests
- FastAPI routes → Payroll processing: handles requests
- FastAPI routes → Financial ledger: handles requests
- FastAPI routes → API documentation: serves UI
- Organisation and staff → DB sessions: queries and writes
- Products and suppliers → DB sessions: queries and writes
- Purchase orders → DB sessions: queries and writes
- Sales operations → DB sessions: queries and writes
- Payroll processing → DB sessions: queries and writes
- Financial ledger → DB sessions: queries and writes
- DB sessions → SQLAlchemy entities: uses mappings
- DB sessions → MySQL database: persists data