How yvvvan/coding-challenge-devops works
This is an SMT order-management application: a browser user works through a Blazor web app and its API clients to manage components, assemble boards, create and track orders, and download an order JSON export. The API separates controllers, domain services, data managers, and EF Core persistence. The tree and README establish additional admin and authentication capabilities, though their detailed wiring and the web UI implementation are not included in the sampled source.
Main entry points: OrderService.cs Order service · BoardManager.cs Board manager · ComponentManager.cs Component manager · AppDbContext.cs SQLite via EF Core
Components 24
Web client
- Blazor web app
Source/src/CodingChallenge.Web/Startup.cs - User session
Source/src/CodingChallenge.Web/ApiClients/UserSession.cs - Auth client
Source/src/CodingChallenge.Web/ApiClients/AuthApiClient.cs - Token handler
Source/src/CodingChallenge.Web/ApiClients/AuthTokenHandler.cs - Boards client
Source/src/CodingChallenge.Web/ApiClients/BoardsApiClient.cs - Components client
Source/src/CodingChallenge.Web/ApiClients/ComponentsApiClient.cs - Orders client
Source/src/CodingChallenge.Web/ApiClients/OrdersApiClient.cs - Admin client
Source/src/CodingChallenge.Web/ApiClients/AdminApiClient.cs
API endpoints
- Authentication API
Source/src/CodingChallenge.Api/Controllers/AuthController.cs - Boards API
Source/src/CodingChallenge.Api/Controllers/BoardsController.cs - Components API
Source/src/CodingChallenge.Api/Controllers/ComponentsController.cs - Orders API
Source/src/CodingChallenge.Api/Controllers/OrdersController.cs - Admin API
Source/src/CodingChallenge.Api/Controllers/AdminController.cs
Order domain
- Authentication
Source/src/CodingChallenge.Api/Services/AuthService.cs - Board service
Source/src/CodingChallenge.Api/Services/BoardService.cs - Component service
Source/src/CodingChallenge.Api/Services/ComponentService.cs - Order service
Source/src/CodingChallenge.Api/Services/OrderService.cs - Admin service
Source/src/CodingChallenge.Api/Services/AdminService.cs
Persistence
- Board manager
Source/src/CodingChallenge.Api/Managers/BoardManager.cs - Component manager
Source/src/CodingChallenge.Api/Managers/ComponentManager.cs - Order manager
Source/src/CodingChallenge.Api/Managers/OrderManager.cs - SQLite via EF Core
Source/src/CodingChallenge.Api/Data/AppDbContext.cs
Other components
- Browser user
- JSON download
Connections 21
- Browser user → Blazor web app: uses
- Auth client → Authentication API: login request
- Auth client → User session: stores credentials
- Token handler → User session: reads token
- Boards client → Boards API: API requests
- Components client → Components API: API requests
- Orders client → Orders API: API requests
- Admin client → Admin API: API requests
- Boards API → Board service: delegates
- Components API → Component service: delegates
- Orders API → Order service: delegates
- Order service → JSON download: returns JSON
- Admin API → Admin service: delegates
- Board service → Board manager: manages boards
- Component service → Component manager: manages components
- Order service → Order manager: manages orders
- Order service → Board manager: reads boards
- Order service → Component manager: reads components
- Board manager → SQLite via EF Core: reads and writes
- Component manager → SQLite via EF Core: reads and writes
- Order manager → SQLite via EF Core: reads and writes