commit 9a26938b1a87c8b6b9c37a7d6d8603cda127f8f4
Author: Jake Bauer <jbauer@paritybit.ca>
Date: Sat, 10 Jul 2021 00:22:32 -0400
Initial Commit
Diffstat:
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)