(start date 9.13.18)
by Refugees Welcome!
Thanks for choosing to support our initiative to support and strengthen migrant service provision in the greater Boston area. For more information about our organization, vist Refugees Welcome.
- Charla M. Burnett (Refugees Welcome) charla.burnett89@gmail.com
- Marena Brinkhurst marena.brinkhurst@mapbox.com
- Sam Fader sam.fader@mapbox.com
- Mall Wood mal.wood@mapbox.com,
- Joe Clark joe.clark@mapbox.com,
- Liam Morley liam@codeforboston.org
- Matt mattz@codeforboston.org
- Slack Channel: #migrantservicemap
- Project Board
- Weekly Meeting Minutes
- Draft Link
- Database
The Migrant Service Map (MSM) was conceptualized as a part of our ongoing research on streamlining migrant services in Boston. The objective of the map is to act as a spatial guide for migrants and service providers to find specific types of services closest to them and their clients. The database would include a comprehensive list of all service providers and services offered desegregated by service type and migrant status. The data on service providers in Boston has already been collected by Refugees Welcome! and is geocoded.
The migrant or service provider would needs to be able to click on the MSM link and be transferred to a questionnaire page where they would be asked whether they are service providers or migrants. The next page would ask the service provider if they have become a part of our network and offer a separate link to apply to the RW! Network. This page would also ask what the legal status is of their client, the address of the client, and what types of services they are looking for. The legal status is important because undocumented and asylum seekers cannot receive all public services.
The types of services include, housing, work placement, english, legal assistance, registration, health, mental health, community centers, and education. The map would conduct a spatial analysis to highlight each service provider within .5, 1, 3, and 5 miles of the address entered for whichever legal status and service applies to their search. The migrant or service provider will be able to click on the service provider points and is provided with a comprehensive overview of the services provided and contact information. This tool will be used by service providers and migrants to find and plan the integration of new arrivals to Boston. As a result, it would be helpful if the platform could keep a record of each point of interest that then could be easily printed. That way service providers can give clients an easy list of service providers to contact upon arrival.
If you don't have nodejs installed, install it. If you don't know, do node --version
in your terminal/command prompt. If you don't get a number, you don't have it.
If you're new to github check out Github Guide, Hello World to make an account and get started with Github and How to: fork a repo to learn how to fork a repo.
- Fork the repository: On GitHub, navigate to the repository. In the top-right corner of the page, click Fork.
- On GitHub, navigate to your fork of the migrant_service_map repository. In the Clone with HTTPs section, click to copy the clone URL for the repository.
- Clone your fork: In your terminal type
git clone
, paste the URL you copied and press enter. In your terminal/command prompt cd (change directory) into the new folder. Inside the directory:
git clone \
https://github.com/YOUR-USERNAME/migrant_service_map.git
cd migrant_service_map
- Add the migrant_service_map repository as a remote to your fork:
git remote add upstream \
https://github.com/codeforboston/migrant_service_map.git
- Installing: Checkout branch reboot and install
git checkout reboot
npm install
Reboot is the active development branch. Do not touch the master
branch.
-
In your terminal/command prompt run
npm start
to start the app. It will open automatically in a browser window. -
To stop the local server press ctrl + c in your terminal
To learn more about keeping your fork up to date view this article,1. When there is an update, in your terminal inside your local repo:
git checkout reboot
git pull upstream
git pull upstream reboot
After running this command once, you may omit the git pull upstream
step, and only enter git pull upstream reboot
.
If there is a merge conflict that cannot be resolved automatically, the output from the git pull
command will read: "Automatic merge has failed; fix conflicts and then commit the result." For more information, read this article.
REMEMBER: If there are no merge conflicts, or after resolving any conflicts, run the following in terminal:
npm install
We use Travis CI for continuous integration and deployment (automatically run tests and deploy the website). Travis is configured in .travis.yml
and builds are viewable in the Travis dashboard.
Travis builds the app (it runs npm run build
) when a commit is added to a branch or open pull request. This provides a basic sanity check for the app. Pull requests should build successfully before being merged.
We use Cypress for functional (e2e) testing. To install Cypress, run the following from within the migrant_service_map
directory:
npm install cypress --save-dev
Running the test suite requires that a local version of the site is available at [http://localhost:3000/]. This can be done with the command npm start
. Then in a separate terminal, run the following to open the Cypress interface:
$(npm bin)/cypress open
All tests can be run by clicking Run all specs
in the top-right of the application window.
We use Firebase to host the app at migrant-service-map.web.app and migrant-service-map.firebaseapp.com. Firebase is configured using .firebaserc
, firebase.json
, and the migrant-service-map project page. We use the free Spark plan, which should be more than enough for development, testing, and demos. If we go over the monthly limits, the site is disabled until the next month (or we upgrade to a paid plan).
We use Travis to automate the deployment process. Whenever the prod
(production) branch is updated, Travis builds the app as for any other commit. Then, if the build succeeds, it uploads the site to Firebase using the token stored in .travis.yml
. The token is set up using these instructions.