#p-fd-servicedirectory
In progress
Michael Durkin (PFA), David Hayes (CFFC), Eric Skram (CFFC)
There exist a lot of good services in the Fort Collins area, offered by governments, NGOs, etc. And Poudre Fire Authority fire fighters (in their roles beyond putting out fires) are often on the front-lines of community interaction. But few of the fire fighters actually know a lot about the services on offer. They often wish that they could help people more when leaving their community interactions. For example: they may be called to help a currently-homeless person outside on a cold night, but not know where a warm shelter is. Or they may be called to someone whose house is cold (but housed) in winter, but not be able fix a broken heater. But a service might exist for that use.
So the goal of this project is mostly to offer an "app" to these firefighters that helps them know quickly which services are offered. The idea is that it would serve as a quick "wizard" where they can answer a few questions (order and qualifying question text is approximate here and will change):
- Is this person... needing food assistance?
- Is this person... needing groceries?
- Is this person... a resident?
- Is this person... an adult?
- Is this person... a veteran?
- Here are the three listings -- want to call them?
Our first project will certainly be to empower out fire-men and -women to better connect the community to resources. In doing so, we'll create one of the most up-to-date data sources about currently-offered resources in Fort Collins, and have some good sense of how to help people navigate them. That is super powerful. So offering that data to partner-agencies, to the public, and in a publicly-accessible way (read: on a website) could easily be a phase 2-99 of the project.
This is not a service (e.g. hot meals) to be offered.
This is not (currently) a public website.
This is not replacing services like 211.
This is not doing outreach in the community beyond the proposed role of helping firefighters in the calls they already service.
(numbered for ease of conversation, not by priority)
- App should run easily on PFA-issued hardware. Right now, this means Android phones and iPads.
- App should be multilingual. Maintaining the data in English and Spanish is a need-to-have feature because our community speaks both of those languages. (Though we may be able to skip this for early version, we should always have translatability in mind.)
- App should work offline. While it can be a web-focused or web-tool-using project, it is often the case that cell phone service is bad on a call. So some offline caching of the data so that it works fine in that scenario is crucial. (Again. for early versions this can likely be skipped. But should be kept in mind for V2-99.)
- App data must be updatable by a civilian/non-DBA. This means that using a Google Sheet, Excel file, or CSV as the source-of-truth is heavily recommended in early stages. Eventually a full-fledge backend backed by a relational database probably makes sense, but especially in phase 1 that's overkill. Prove usefulness before we build cool features.
- App data maintainence is currently slated to be a PFA responsibility. That likely requires them assigning someone (perhaps Michael Durkin, perhaps someone else) to call listed agencies and update the data based on what they say. (Long-term, that could shift but for now plan on that.)
- [complete] Gather requirements and create sample data set.
- [current] Gather technical team and buid out prototype with sample data set.
Future steps could include:
- Test prototype with PFA officers and gather feedback
- Finish the prototype if it prove effective
- Creating a web-version of the resource
- Creating an admin interface for PFA (and partner agencies?) to keep data up-to-date intelligently
- Sharing our application code with others to use in their local area
Follow these instructions to get the app up and running locally.
- Important note: Any merges to master are automatically deployed. You've been warned!
- We are migrating to TypeScript. All future .js and .jsx files should be .ts and .tsx before being merged.
- Find some issue you're interested in, or a feature that you'd like to tackle.
- Fork, then clone:
[email protected]:CodeForFoco/fd-servicedirectory.git
- Create a branch with a meaningful name for the issue:
git checkout -b fix-something
- Install packages by running
yarn
in the project root. - Create a
.env
file in the project root and paste in yourGOOGLE_API_KEY
. Speak to a project maintainer and they'll get you one. - Start the development server by running
yarn develop
and navigate tohttp://localhost:1234
. - Make your changes and ensure that:
- All tests still pass by running
yarn test
- All code follows formatting guidelines by running
yarn lint
- All tests still pass by running
- Commit your code and push to your forked branch.
- Submit a Pull Request to the CodeForFoco repository with a clear title and description of your changes.
- Wait for a maintainer to review your PR, make changes if necessary, and get it merged!
Build and run the image using Docker.
Build the image,
docker build -t fd-servicedirectory .
Run container on port 1234 with .env
containing GOOGLE_API_KEY
as described below,
docker run -it --rm -p 1234:1234 --env-file=.env.local fd-servicedirectory:latest
In browser go to: http://localhost:1234
The PFA Service Directory is a Javascript application built using React. Under the hood, it also uses the following technologies:
- Eslint and Prettier for code formatting 📝
- Jest for unit testing ✅
- Parcel for module bundling and development 📦
- React Router for frontend routing 🚦
- Styled Components for styling 💅