Naviqore Help

C4 Model

The C4 model is a simple, hierarchical way of visualizing software architecture [1, 2]. It consists of four layers:

  • System Context: Shows how the system interacts with its environment.

  • Containers: Defines high-level containers (applications, services, databases) that make up the system.

  • Components: Focuses on the internal structure of each container, showing the components and how they communicate.

  • Code: Zooms in on the details of individual components (often omitted in higher-level diagrams). In general, it is not recommended to create this layer, since it can be generated in modern IDEs.

System Context

This diagram visualizes the Naviqore system and its main actors. These actors include the User, Researcher, and Public Transit Agency, which interact with the system, and the GTFS schedule which is provided by the agency.

Naviqore System - System ContextUser[Person] A simple every day userwho wants to use publictransit.Researcher[Person] A professional who analyzespublic transit and performshigh volume routingrequests.Public Transit Agency[Person] A institution that offerspublic transit.GTFS Schedule A text file basedrepresentation of theoperating schedule of oneor more transit agencies.Naviqore System[Software System] Our solution to statisfy allstakeholder needsRequestsconnectionRequests nextdepartures fromstopRequests closeststopRequests isolinesfor stopLoadsProvides

Container

This diagram breaks down the Naviqore system into its primary containers. These include the Web Application UI and the Service, which depend on the GTFS schedule to fulfill requests.

Naviqore System - ContainersNaviqore System[Software System]Web Application UI[Container: Python / Streamlit] Easy to use website withforms to request and viewconnections.Service[Container: Spring] Service that contains all therequired data andalgorithms to respond toincoming requests.User[Person] A simple every day userwho wants to use publictransit.Researcher[Person] A professional who analyzespublic transit and performshigh volume routingrequests.GTFS Schedule A text file basedrepresentation of theoperating schedule of oneor more transit agencies.RequestsinformationSends requestsSends requestsLoads

Component

This diagram drills into the Service container, showing its key internal components such as the RAPTOR, GTFS, REST API, and Public Transit Service.

Naviqore System - Service - ComponentsService[Container: Spring]RAPTOR[Component: Java] Holds a reduced compactperformant copy of theschedule in memory andcalulates routes efficientlyusing the RAPTORalgorithm.GTFS[Component: Java] Holds the entire GTFSschedule in memory.REST API[Component: Spring] Outwards facing interfaceof the servicePublic Transit Service[Component: Java] Orchestrates the service,pulls external data, createsand caches instances ofrouter and schedule andpre-/post-processesrequests.Researcher[Person] A professional who analyzespublic transit and performshigh volume routingrequests.GTFS Schedule A text file basedrepresentation of theoperating schedule of oneor more transit agencies.Web Application UI[Container: Python / Streamlit] Easy to use website withforms to request and viewconnections.Sends requestsSends requestsDelegates requestsHasHasUses to create GTFSinstance
Last modified: 25 September 2024