Skip to content

Commit e4066f9

Browse files
committed
Merge branch 'master' into infrastructure
2 parents 9101e40 + 66cfe5d commit e4066f9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+2699
-3227
lines changed

README.md

Lines changed: 152 additions & 117 deletions
Large diffs are not rendered by default.

docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ services:
2020
db:
2121
image: postgres
2222
restart: always
23+
ports:
24+
- '5432:5432'
2325
environment:
2426
- POSTGRES_USER=${DATABASE_USER}
2527
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}

docker/Dockerfile-Bmore-Responsive

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ RUN npm install
1212
# Bundle app source
1313
COPY . .
1414

15+
1516
# Expose port (will not be respected by Heroku, must be defined in app)
1617
EXPOSE $port
1718

docs/Best_Practices.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Best Practices
2-
Code for Baltimore projects should be built with the intention of deploying on [Heroku](https://heroku.com). For details on Heroku Best Practices see their [developer documentation](https://devcenter.heroku.com/articles/node-best-practices).
2+
Code for Baltimore projects should be built with the intention of deploying on [Heroku](https://heroku.com) or [AWS](https://aws.amazon.com/). For details on Heroku Best Practices see their [developer documentation](https://devcenter.heroku.com/articles/node-best-practices).
33

44
## Project Management
55

6-
We are using Github Issues to track outstanding issues and work for projects.
6+
We are using Github Issues to track outstanding issues and work for projects.
77

88
### Projects
99

@@ -38,9 +38,6 @@ Example: Google has openly published style guides for many languages in wide use
3838

3939
Static code analysis tools should be used when possible, to monitor and improve code quality. This may be integrated in the local development environment, automated repository commit checks, automated CI/CD pipelines, or other steps in the code development process.
4040

41-
### SonarQube scanning
42-
Before committing or pushing any code changes those changes should be scanned with SonarQube. For convenience a `docker-compose` file has been included with this repository to facilitate local scans so that clean code can be checked and pushed before the deployment scans. See the [README](/sonarqube/README.md) in the sonarqube folder for more information.
43-
4441
## Git and Branching
4542

4643
All code work should be done in an isolated or feature branch off of the `master` branch. Before starting work on new code, developers should create their feature branch using a standard naming convention determined by the project.

docs/README.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<!-- TOC -->
2+
3+
- [Tech Spec](#tech-spec)
4+
- [Overview](#overview)
5+
- [Scenarios](#scenarios)
6+
- [COVID-19](#covid-19)
7+
- [Automatic Checkin](#automatic-checkin)
8+
- [Organized Response](#organized-response)
9+
- [Non Goals](#non-goals)
10+
- [Minimum Viable Product](#minimum-viable-product)
11+
- [Components](#components)
12+
- [API](#api)
13+
- [CI/CD](#cicd)
14+
- [Data](#data)
15+
- [Application Architecture](#application-architecture)
16+
- [Roadmap](#roadmap)
17+
- [Contact Info](#contact-info)
18+
19+
<!-- /TOC -->
20+
21+
# Tech Spec
22+
Bmore Responsive is a Contact and Response Management System (CRMS) and API. This document will describe the application in some detail.
23+
24+
## Overview
25+
This application will allow users to add and update contact information for individuals and entities. Additionally, the system will facilitate tracking of entity status and any other pertinent information. The data collected can be used by municipalities to organize response efforts in a disaster or crisis situation.
26+
27+
## Scenarios
28+
This application and API can be used in a few different ways.
29+
30+
### COVID-19
31+
During the COVID-19 Pandemic the City of Baltimore needs a way to check-in with healthcare providers to ensure they have all of the supplies they need, if they have any patients sick with the virus, if anyone is in quarantine, etc.
32+
33+
Many healthcare facilities have a few members on staff, however the contact information for those individuals may be out of date or the facility may have experienced some changeover since the last checkin.
34+
35+
Using the API and a front-end, the City of Baltimore would be able to keep track of the facility's status via multipule contact points in an organized and efficient way.
36+
37+
### Automatic Checkin
38+
Facilities may not have time for phone calls, and the number of available city workers may not be sufficient to check in with all providers during an emergency.
39+
40+
Using our API the providers can securely check-in using a web form on their own. One-time use logins can be sent on regular intervals to preferred contacts for each facility. This can allow contacts to update facility status on their own time without the need for city workers to contact them directly.
41+
42+
### Organized Response
43+
City workers and volunteers have a need to check in with facilities during the COVID-19 pandemic. The callers need to track who has called who and when, and track the overall trends in automatic updates.
44+
45+
Using this API workers can login and see the status of the city at a glance, and they can prioritize their check-ins based on need and trend.
46+
47+
## Non Goals
48+
What will this project not accomplish?
49+
- No front-end website or app
50+
- No outside data interactions
51+
- Non-city employee full login (dashboard, etc)
52+
- Statistical or analytical endpoints
53+
54+
## Minimum Viable Product
55+
To use this product as quickly as possible we will be implementing the following features:
56+
- User creation
57+
- Contact creation
58+
- Entity creation
59+
- Contact->Entity linking
60+
- Contact single-use login check-in ability
61+
62+
## Components
63+
This application will be broken down into several components. Each will be outlined here.
64+
65+
### API
66+
The API is the application for all intents and purposes. Use of the API and possible paths of use are defined in the flowchart below.
67+
![API Flowchart](/docs/img/api-flowchart.png)
68+
69+
### CI/CD
70+
We will use TravisCI, Docker, Netlify, and AWS to provide constant code deployments and test coverage.
71+
![CI/CD Pipeline](/docs/img/cicd-pipeline.png)
72+
73+
### Data
74+
This product makes use of [PostgreSQL](https://www.postgresql.org/) for the data layer and [Sequelize](https://sequelize.org/) for database interactions. The schema is outlined below
75+
![Database Diagram](/docs/img/db-diagram.png)
76+
77+
### Application Architecture
78+
The overall application will have several components in support of the code. These will facilitate secure communication between any front end, our API, and the data layer. Additionally our architecture will be designed to be scalable for instances of heavy load.
79+
![Application Architecture](/docs/img/architecture-diagram.png)
80+
81+
## Roadmap
82+
We estimate the API will be at v1.0.0 by the end of March.
83+
84+
## Contact Info
85+
Give as much, or as little, info as you want here.

docs/Tech_Spec.md

Lines changed: 0 additions & 28 deletions
This file was deleted.

docs/database.csv

Lines changed: 0 additions & 10 deletions
This file was deleted.

docs/img/api-flowchart.png

94.6 KB
Loading

docs/img/architecture-diagram.png

107 KB
Loading

docs/img/cicd-pipeline.png

138 KB
Loading

0 commit comments

Comments
 (0)