This repository contains the source code for a map of the hometowns of anyone who attends the MLH Localhost workshop, How to Collaborate on Code Projects with GitHub. Participants learn best practice GitHub workflows, add their hometown to locations.txt
, and see the giant community they're part of!
- Make a GitHub account.
- Fork this repository.
- Add your hometown to
locations.txt
. - Commit your changes and make a pull request.
- Ask someone else to comment on your pull request.
- Wait for the workshop organizer to approve your pull request.
- Refresh the map!
GitHub actions allows us to run a NodeJS script automatically when a commit is pushed to the project. That script takes all the locations provided and turns them into latitude & longitude coordinates.
GitHub pages lets us host our map on GitHub as a webpage.
We chose to use NodeJS as the language to turn all the hometown names into coordinates.
Dotenv is a zero-dependency module that loads environment variables from a .env
file into process.env
. Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology.
Node library for geocoding and reverse geocoding.
To use the Google Maps JavaScript API, you will ned an API Key. The API key is used to track API requests associated with your project for usage and billing. To learn more about API keys, see the API Key Best Practices and the FAQs.
The App reads its locations from the locations.txt
file located in the root folder. It will consider each line a different location, so the file should look something like this:
New York, USA
Brazil
Japan
To add a new location, simply append a new line to the locations.txt file
To run this application locally, you'll need to:
- Clone this repository:
git clone https://github.com/MLH/mlh-localhost-github.git
cd localhost-github
npm install
- Set up environment variables:
There is a .env.example
file that can be used to configure the app. Simply create a copy named .env
GOOGLE_API_KEY= # Google Maps API KEY
Now inside the root folder run the following:
npm geocode
This will turn each line in the locations.txt
into a set of coordinates.
You can see your own map by running:
npm start