How thumesan/fs-engineer-test works
This is a full-stack Angular and .NET demo for browsing Chuck Norris jokes and Star Wars people, with combined query search. Users enter through the Angular app, navigate to results, and the generated API clients expose endpoints backed by .NET controllers and repository interfaces. The backend search controller explicitly queries both repositories and combines their responses. The README documents the Chuck and SWAPI endpoints and hosted deployment; result-component calls and repository-to-external-service details are not shown in the excerpts, so those links are marked unverified or omitted.
Main entry points: services Generated API clients · SearchController.cs Combined search · main.component.ts Main page · results-main.component.ts Results view
Components 20
Angular application
- Main page
FS-Engineer-Test-FE/src/app/main/main.component.ts - Display cards
FS-Engineer-Test-FE/src/app/card/card.component.ts - Results view
FS-Engineer-Test-FE/src/app/results/results-main/results-main.component.ts - Result widgets
FS-Engineer-Test-FE/src/app/results - App routing
FS-Engineer-Test-FE/src/app/app-routing.module.ts
API client
- Generated API clients
FS-Engineer-Test-FE/src/app/api/services - API configuration
FS-Engineer-Test-FE/src/app/api/api-configuration.ts - Request construction
FS-Engineer-Test-FE/src/app/api/request-builder.ts - HTTP response wrapper
FS-Engineer-Test-FE/src/app/api/strict-http-response.ts
.NET API
- Chuck endpoints
FS_Engineer_Test/FS_Engineer_Test/Controllers/ChuckController.cs - SWAPI endpoints
FS_Engineer_Test/FS_Engineer_Test/Controllers/SwapiController.cs - Combined search
FS_Engineer_Test/FS_Engineer_Test/Controllers/SearchController.cs - Chuck repository
FS_Engineer_Test/FS_Engineer_Test/Repo/ChuckRepo.cs - SWAPI repository
FS_Engineer_Test/FS_Engineer_Test/Repo/SwapiRepo.cs
Domain contracts
- Chuck contracts
FS_Engineer_Test/FS_Engineer_Test/Models - SWAPI contracts
FS_Engineer_Test/FS_Engineer_Test/Models - Search contracts
FS_Engineer_Test/FS_Engineer_Test/Models/SearchResponse.cs
Other components
- User
- Chuck API
- SWAPI API
Connections 21
- User → Main page: opens app
- Main page → Display cards: displays cards
- Main page → App routing: navigates
FS-Engineer-Test-FE/src/app/app-routing.module.ts - App routing → Results view: loads results
FS-Engineer-Test-FE/src/app/app-routing.module.ts - Results view → Result widgets: uses views
FS-Engineer-Test-FE/src/app/results/results.routing.module.ts - Results view → Generated API clients: requests results
- Generated API clients → API configuration: reads base URL
FS-Engineer-Test-FE/src/app/api/services/search.service.ts - Generated API clients → Request construction: builds requests
FS-Engineer-Test-FE/src/app/api/services/search.service.ts - Generated API clients → HTTP response wrapper: wraps responses
FS-Engineer-Test-FE/src/app/api/services/search.service.ts - Generated API clients → Chuck endpoints: calls HTTP endpoint
FS-Engineer-Test-FE/src/app/api/services/chuck.service.ts - Generated API clients → SWAPI endpoints: calls HTTP endpoint
FS-Engineer-Test-FE/src/app/api/services/swapi.service.ts - Generated API clients → Combined search: calls HTTP endpoint
FS-Engineer-Test-FE/src/app/api/services/search.service.ts - Chuck endpoints → Chuck repository: dispatches to
FS_Engineer_Test/FS_Engineer_Test/Controllers/ChuckController.cs - SWAPI endpoints → SWAPI repository: dispatches to
FS_Engineer_Test/FS_Engineer_Test/Controllers/SwapiController.cs - Combined search → Chuck repository: searches jokes
FS_Engineer_Test/FS_Engineer_Test/Controllers/SearchController.cs - Combined search → SWAPI repository: searches people
FS_Engineer_Test/FS_Engineer_Test/Controllers/SearchController.cs - Combined search → Search contracts: returns combined result
FS_Engineer_Test/FS_Engineer_Test/Controllers/SearchController.cs - Chuck repository → Chuck API: fetches jokes
- SWAPI repository → SWAPI API: fetches people
- Chuck endpoints → Chuck contracts: returns Chuck data
FS_Engineer_Test/FS_Engineer_Test/Controllers/ChuckController.cs - SWAPI endpoints → SWAPI contracts: returns people data
FS_Engineer_Test/FS_Engineer_Test/Controllers/SwapiController.cs