fp-ddb

A web-based dispatch board.
Log | Files | Refs | README

commit 9a26938b1a87c8b6b9c37a7d6d8603cda127f8f4
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Sat, 10 Jul 2021 00:22:32 -0400

Initial Commit

Diffstat:
A.gitignore | 14++++++++++++++
AMANIFEST.in | 4++++
AREADME.md | 48++++++++++++++++++++++++++++++++++++++++++++++++
Afoot-patrol-digital-deployment-board-program-requirements.md | 167+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 233 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -0,0 +1,14 @@ +venv/ + +*.pyc +__pycache__/ + +instance/ + +.pytest_cache/ +.coverage +htmlcov/ + +dist/ +build/ +*.egg-info/ diff --git a/MANIFEST.in b/MANIFEST.in @@ -0,0 +1,4 @@ +include src/schema.sql +graft src/static +graft src/templates +global-exclude *.pyc diff --git a/README.md b/README.md @@ -0,0 +1,48 @@ +# Foot Patrol Digital Deployment Board (FP-DDB) + +A web-based application to manage and update the Foot Patrol deployment board +for Carleton University's Foot Patrol organization. + +See requirements document for overall requirements. + +## Development + +This project uses Flask and SQLite3. It makes use of virtualenv to isolate the +development environment from the system-wide python environment. In order to +enter this virtual environment, use the following command from within the +project directory: + +`. venv/bin/activate` + +Default passwords for both the `dispatch` and `admin` accounts is `hunter2`. + +### Installing Dependencies + +Dependencies can be installed with `pip install -e .` which will install the +code in "editable mode". + +### Running the Development Server + +`flask run` can be used to run the test server. The server will automatically +reload when changes are made to a file. + +The following environment variables must be set before using the above command: + +``` +FLASK_APP=src +FLASK_ENV=development +``` + +## Technologies + +Currently targeted tech stack + reasons: + +- Python Flask web server + - Easy to develop in + - Non-performance-critical application + - Capabilities of Django not needed +- Sqlite3 database + - Store coordinator credentials + - Store teams and deployment status + - Light file-based database, more robust than writing to regular files + - Easy to interface with from python diff --git a/foot-patrol-digital-deployment-board-program-requirements.md b/foot-patrol-digital-deployment-board-program-requirements.md @@ -0,0 +1,167 @@ +Foot Patrol Digital Deployment Board Program Requirements + +A digitized version of the Foot Patrol deployment board, controlled by +the Foot Patrol Dispatch computer, and accessible by the Foot Patrol +coordinator computer. + +Boot + +The program can immediately boot to dispatch's screen, but should +require the coordinator password to access the coordinator access level +(see below for details). Ideally, the program will save all selections +made in the last session before it was closed (to allow for a quick +reboot if it was an accident), though this isn't absolutely necessary. + +Deployment Board + +Visuals: + +White background with black lines for column/row dividers. + +Contents: + +The vertical columns shall have the following titles: Designation, +Deployed, Radio, Actual, Loadout (can be shortened to LO), Secondary, +and Loadout (can be shortened to LO). These titles shall make up the top +row of the screen + +- The Designation column's contents shall be pre-set for dispatch, and + only accessible (to change names) with the Coordinator access level + (see below) + +- The Designation will ideally be written in coloured text, as + indicated below + + - The list of designation names is: + + - Sierra Romeo (green) + + - Lima Charlie (green) + + - Alpha 1 (blue) + + - Bravo 2 (blue) + + - Charlie 3 (blue) + + - Delta 4 (blue) + + - Zulu 9 (blue) + + - Zeus (purple) + + - Athena (purple) + + - Hera (purple) + + - Hades (purple) + + - Apollo (purple) + + - Hermes (purple) + + - Artemis (purple) + + - Poseidon (purple) + +- The Deployed column can be a checkbox (or some other Yes/No + indicator) + +- The Radio column can be a drop-down menu with the following options + (the Coordinator access level should be able to change this list of + options): + + - None (makes display blank) + + - Echo + + - Foxtrot + + - Golf + + - Hotel + + - India + + - Juliett + +- The Actual column should be able to be typed out by dispatch through + the dispatch interface + +- The Loadout column should be chosen from a drop-down menu, and + consist of the following (if needed, the drop-down menu can show the + first, longer description, and once selected it can indicate it with + the abbreviations listed after the word on the screen). + + - None (makes display blank) + + - Basic (FP) = B(FP) + + - Light (FP) = L(FP) + + - Basic (G) = B(G) + + - Light (G) = B(G) + + - Basic Heavy (G) = B/H + + - Light Heavy (G) = L/H + + - Basic Herald (G) = B/HR + + - Light Herald (G) = L/HR + + - Casual (G) = C + +- The Secondary column should be able to be typed out by dispatch + +- The 2^nd^ Loadout column should have the same parameters as the + first one listed above + +There will likely be room under the deployment board for an image (on +our whiteboard it's currently a list of definitions). Let's leave room +to add any picture in that space, so we don't need to figure out what +it'll contain right now. This might require picture formatting options +to ensure the dimensions fit (doable? Way around it?) + +Dispatch Interface + +I don't have specific requirements for dispatch's interface, as long as +it's neat and relatively easy to use. One option is to visually display +an exact replica of the board's display for dispatch when they're +editing it, and have menus within this image only visible on Dispatch's +computer when selected. Another option is to have the exact image +displayed on the TV visible to the side, and more conventional rows of +input options for dispatch on the other side. Up to you! + +Dispatch also requires the ability to display or not display the screen +to the office TV + +Access Levels + +Requires two access levels: + +Dispatch -- used by dispatch to fill in deployment board while in use. +Limited editing capability + +Coordinator -- used by Foot Patrol coordinators to make changes to the +program. This could be done through a log-in location that then unlocks +the full range of options on the dispatch interface, or it could unlock +another location entirely. I think I prefer the first option, though let +me know! The coordinator log-in should give access to the following +additional capabilities (in addition to anything you want to add -- +though please don't require coding, us non-computer people will +literally set the program on fire accidentally): + +- To change the number of, text, and colour of designations + +- To change the radio drop down menu text + +- To change the loadout drop down menu text + +- To change coordinator password + +- To change the image displayed below the deployment board + +- To alter the software in any way (we'll make it clear to us + non-computer people not to select this option)