Related Pages
- Narrative: Course Oriented Maintenance
- Use Case (not yet following the template): Build New Course
- DB Design - Course
- Manually Add Course
Use Cases
Use Case Catalog (in new window)We're just beginning to develop the Use Cases for Courses (CRS is the UC mnemonic).
- CRS-01 Select Course
- CRS-02 Present Course Info
- CRS-03 Place Course Routes and Locations on Map
- CRS-11 Create Course
- CRS-12 Edit Course
- CRS-21 Find Location Issues
Context & Conditions
- Courses have three states:
- Draft
- Complete
- Problem
Draft is used while building up a candidate Course. The Nodes may not have been turned into Places or Attractions yet, and perhaps the route isn't complete either.
Complete means all data is provided, there is a defined set of Attractions (minimum) and Features (optional, but recommended), and the paths are operable.
Problem means the route — whether otherwise complete or draft — has an issue that makes the course unusable. It is flagged for attention.
Data elements
Generally, you'll start out with these general constraints on your route:
- Destination and Start
- Distance to be covered
- Some idea of the neighborhoods you'll want to visit.
- Day of week and time of day (affects what's open and what's not open)
Often, you'll work backwards from a Destination or forward from a Start and find an appropriate way to meet in the middle. Development is largely from a map of the route. Being able to piece together separate sections from past routes would be a big help.
- At this time, the best way to represent a Path is from a Track, a single LineString geometry that represents a sequence of Segments between two Locations. This allows the front-end to handle this as a single element (Feature). Yes, the design is driving the Use Case, but this design happens to be driven by the requirement to present to the user a single sequence of points (a Track) between the two Locations.
Locations and Paths plus Non Geometrical Data
Geometry Data
Locations have Nodes, and Nodes have POINTs. Edges/Segments have LineString.
Could start out with a FeatureCollection with exactly the elements we use to build up a Course: a sequenced set of
- Location (representing Start)
- At least one but probably no more than 8 iterations of the following:
- One or more Edges / Segments each separated/connected by a Node
- Location
The last Location may well be the same as the first Location if this is course is a loop. Otherwise, it is called a point-to-point course.
Non-Geometry Data
- Location to Location is treated as a Path. This organization would provide:
- Starting Location
- One or more paths:
- Path ending at a Location, and traversing multiple Edges / Segments.
- ID of the course
- Scheduled Time if appropriate
- Estimated completion Time (possibly stored as duration so delays can be added)