How baltazardostatny/sprint-5-backend works
SafeCo’s checked-in product is a React/TypeScript administration frontend for company users, places, and access checks. The main workflow routes a visitor through login, then to user and place administration or access validation; page-level hooks coordinate API calls and UI state. User management also supports PDF downloads, badges, and profile-image uploads. The README describes JWT authentication and permission enforcement as backend requirements, but this tree contains no backend implementation. Edges are limited to relationships shown in sampled source or the source index.
Main entry points: App.tsx Route application · UserList.tsx User list page · PlaceList.tsx Places page · useCreateUserModal.tsx User create/edit forms
Components 22
Routing and shell
- Route application
Frontend/src/App.tsx - Login state
Frontend/src/hooks/useAuth.ts - Login page
Frontend/src/pages/LoginPage/LoginPage.tsx - Page shell
Frontend/src/components/PageWrapper.tsx
User administration
- User list page
Frontend/src/pages/UserList/UserList.tsx - User list state
Frontend/src/pages/UserList/useUserList.ts - User create/edit forms
Frontend/src/pages/UserList/components/CreateUserModal/useCreateUserModal.tsx - Users table
Frontend/src/pages/UserList/components/UsersTable.tsx - Modal component
Frontend/src/components/Modal.tsx - PDF report download
Frontend/src/hooks/useUserAPI.ts
Places and access
- Places page
Frontend/src/pages/PlacesList/PlaceList.tsx - Places state
Frontend/src/pages/PlacesList/usePlaceList.ts - Place forms
Frontend/src/pages/PlacesList/components/CreatePlaceModal/CreatePlaceModal.tsx - Places table
Frontend/src/pages/PlacesList/components/PlacesTable.tsx - Access check page
Frontend/src/pages/AllowAcess/AllowAcess.tsx
API and media integration
- User API client
Frontend/src/hooks/useUserAPI.ts - Place API client
Frontend/src/hooks/usePlaceAPI.ts - Image resizing
Frontend/src/hooks/useImage.ts - S3 upload client
Frontend/src/hooks/useAWSAPI.ts
Other components
- Visitor
- HTTP API
- S3 storage
Connections 30
- Visitor → Route application: opens
- Route application → Login state: checks state
Frontend/src/App.tsx - Route application → Login page: routes to
Frontend/src/App.tsx - Route application → User list page: routes to
Frontend/src/App.tsx - Route application → Places page: routes to
Frontend/src/App.tsx - Route application → Access check page: routes to
Frontend/src/App.tsx - Login page → User API client: submits credentials
Frontend/src/pages/LoginPage/LoginPage.tsx - Login page → Login state: sets login state
Frontend/src/App.tsx - User list page → Page shell: renders
Frontend/src/pages/UserList/UserList.tsx - User list page → User list state: uses state
Frontend/src/pages/UserList/UserList.tsx - User list page → Users table: renders
Frontend/src/pages/UserList/UserList.tsx - User list page → User create/edit forms: renders
Frontend/src/pages/UserList/UserList.tsx - User list state → User API client: calls
Frontend/src/pages/UserList/useUserList.ts - User create/edit forms → Modal component: uses
Frontend/src/pages/UserList/components/CreateUserModal/CreateUserModal.tsx - User create/edit forms → Image resizing: resizes images
Frontend/src/pages/UserList/components/CreateUserModal/useCreateUserModal.tsx - User create/edit forms → S3 upload client: uploads images
Frontend/src/pages/UserList/components/CreateUserModal/useCreateUserModal.tsx - User list page → PDF report download: requests report
Frontend/src/pages/UserList/UserList.tsx - User API client → HTTP API: HTTP requests
Frontend/src/hooks/useUserAPI.ts - Places page → Page shell: renders
Frontend/src/pages/PlacesList/PlaceList.tsx - Places page → Places state: uses state
Frontend/src/pages/PlacesList/PlaceList.tsx - Places page → Places table: renders
Frontend/src/pages/PlacesList/PlaceList.tsx - Places page → Place forms: renders
Frontend/src/pages/PlacesList/PlaceList.tsx - Places state → Place API client: calls
Frontend/src/pages/PlacesList/usePlaceList.ts - Place forms → Place API client: calls
Frontend/src/pages/PlacesList/components/CreatePlaceModal/CreatePlaceModal.tsx - Access check page → Page shell: renders
Frontend/src/pages/AllowAcess/AllowAcess.tsx - Access check page → Place API client: checks places
Frontend/src/pages/AllowAcess/AllowAcess.tsx - Access check page → User API client: loads users
Frontend/src/pages/AllowAcess/AllowAcess.tsx - Place API client → HTTP API: HTTP requests
Frontend/src/hooks/usePlaceAPI.ts - S3 upload client → HTTP API: gets upload URL
Frontend/src/hooks/useAWSAPI.ts - S3 upload client → S3 storage: uploads file
Frontend/src/hooks/useAWSAPI.ts