forked from expo/troggle
Add Specification
parent
fc78a8d922
commit
12572e78a9
51
Specification.md
Normal file
51
Specification.md
Normal file
@ -0,0 +1,51 @@
|
||||
# Specification
|
||||
|
||||
Here we set out the functional specification for the project.
|
||||
|
||||
***
|
||||
|
||||
## Access
|
||||
|
||||
Primary model: `User`
|
||||
|
||||
See also: https://docs.djangoproject.com/en/4.2/topics/auth/customizing/#extending-the-existing-user-model
|
||||
|
||||
- **Authentication**: The system must be able to authenticate users.
|
||||
- **SMA**: The system must be accessible concurrently by multiple users in multiple locations.
|
||||
- **Permissions**: The system must be able to restrict the abilities of certain users to perform certain functions.
|
||||
- **Mobile-Friendly**: The system must be just as easy to use from a phone as a computer.
|
||||
- Modern reactive CSS can handle almost all of this
|
||||
|
||||
## Cave Data
|
||||
|
||||
Primary model: `Cave`
|
||||
|
||||
- **Survey Creation**: The system must be able to parse survey data input to it via a webform.
|
||||
- **Survey Upload**: The system must be able to parse survey files (`.svx`).
|
||||
- **Survey Viewing**: The system must support searching for, browsing, and viewing survey (_Survex_) data.
|
||||
- **Survey Editing**: The system must support editing of survey (_Survex_) data via a web-form.
|
||||
- **Survey Export**: The system must be able to export survey files (`.svx`).
|
||||
- **Drawing Upload**: They system must support uploading of drawing (_Tunnel_/_Therion_) data
|
||||
|
||||
## Expedition Logging
|
||||
|
||||
Primary model: `Entry`
|
||||
|
||||
- **Logbook Creation**: The system must support creation of new expeditions/logbooks.
|
||||
- **Logbook Entry Creation**: The system must support creation of new logbook entries.
|
||||
- **Logbook Entry Editing**: The system must support editing of logbook entries.
|
||||
|
||||
## Static Information
|
||||
|
||||
Primary model: `django.contrib.flatpages.models.Flatpage`
|
||||
|
||||
See also: https://docs.djangoproject.com/en/4.2/ref/contrib/flatpages/
|
||||
|
||||
- **Flatpages**: The system must allow users to add/edit/delete etc. static pages.
|
||||
- Ideally, editing should be WYSIWYG first, with support for direct markup editing for power-users.
|
||||
- Alternatively, a third-party wiki app could simply be pulled into the project, cutting out the need to reinvent this particular wheel.
|
||||
|
||||
## Development
|
||||
|
||||
- **Deployment Scripts**: The development environment should be easy to set up on any system using a single `dev_setup.sh` script or similar
|
||||
- **Test data**: a set of test-data should be provided for the development environment to work on.
|
Loading…
Reference in New Issue
Block a user