How vahagndol/destinations works
Destinations is a Vue client backed by an ASP.NET application and separate Locations and Places APIs. The main workflow is a user browsing destination information, the client requesting data through the Application endpoints, and those endpoints forwarding requests to the relevant API. The APIs query entity services backed by repositories and contexts. The README also establishes these as HTTP-connected microservices; unsampled view and context-reader implementations limit the detail of some links.
Main entry points: index.ts Client router · Program.cs Application host · App.vue Vue application · LocationController.cs Location endpoint
Components 22
Web client
- Vue application
src/Application/ClientApp/src/App.vue - Home view
src/Application/ClientApp/src/views/HomeView.vue - Locations view
src/Application/ClientApp/src/views/LocationsView.vue - Places view
src/Application/ClientApp/src/views/PlacesView.vue - Account view
src/Application/ClientApp/src/views/AccountView.vue - Client router
src/Application/ClientApp/src/router/index.ts - JSON client
src/Application/ClientApp/src/composables/useJson.ts
Application gateway
- Application host
src/Application/Program.cs - Locations proxy
src/Application/Controllers/LocationsController.cs - Places proxy
src/Application/Controllers/PlacesController.cs
Destination APIs
- Locations API
src/Locations.API/Program.cs - Location endpoint
src/Locations.API/Controllers/LocationController.cs - Places API
src/Places.API/Program.cs - Place endpoint
src/Places.API/Controllers/PlaceController.cs - Place service
src/Places.API/Helper/PlaceService.cs
Shared domain and infrastructure
- Entity service
src/Infrastructure/Services/EntityService.cs - Repository
src/Infrastructure/Repositories/Repository.cs - Application context
src/Infrastructure/Context/ApplicationDbContext.cs - Context reader
src/Infrastructure/Context/IContextReader.cs - Location entity
src/Domain/Entities/Location.cs - Place entity
src/Domain/Entities/Place.cs
Other components
- Visitor
Connections 23
- Visitor → Vue application: uses
- Vue application → Client router: routes through
- Client router → Home view: selects view
- Client router → Locations view: selects view
- Client router → Places view: selects view
- Client router → Account view: selects view
- Vue application → Application host: served by
- Application host → Locations proxy: maps endpoints
- Application host → Places proxy: maps endpoints
- Application host → Locations API: configures HTTP client
- Application host → Places API: configures HTTP client
- Locations proxy → Locations API: requests locations
- Places proxy → Places API: requests places
- Locations API → Location endpoint: maps controllers
- Places API → Place endpoint: maps controllers
- Location endpoint → Entity service: queries
- Place endpoint → Place service: queries
- Place service → Entity service: inherits
- Entity service → Repository: queries
- Repository → Application context: reads entities
- Application context → Context reader: loads data
- Location endpoint → Location entity: returns
- Place endpoint → Place entity: returns