Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jdmedlock/meteorite
Explore Meteorite Strikes using the Nasa Open Data Portal
https://github.com/jdmedlock/meteorite
Last synced: 30 days ago
JSON representation
Explore Meteorite Strikes using the Nasa Open Data Portal
- Host: GitHub
- URL: https://github.com/jdmedlock/meteorite
- Owner: jdmedlock
- Created: 2018-11-26T13:44:18.000Z (about 6 years ago)
- Default Branch: development
- Last Pushed: 2018-12-16T13:33:47.000Z (about 6 years ago)
- Last Synced: 2024-10-13T14:17:23.991Z (2 months ago)
- Language: JavaScript
- Homepage: https://jdmedlock.github.io/meteorite/
- Size: 1.57 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
- Code of conduct: docs/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Meteorite - Explore meteorite strikes
[Meteorite App](https://jdmedlock.github.io/meteorite/)[![meteorite last commit](https://img.shields.io/github/last-commit/google/skia.svg)](https://github.com/jdmedlock/meteorite)
[![Packagist](https://img.shields.io/packagist/l/doctrine/orm.svg)](https://github.com/jdmedlock/meteorite/)![Screenshot](https://github.com/jdmedlock/meteorite/blob/development/docs/me_screenshot.png)
## Table of Contents
* [Overview](#overview)
* [Usage](#usage)
* [Dependencies](#dependencies)
* [Application Structure](#application-structure)
* [FAQ](#frequently-asked-questions)
* [Change Log](#change-log)
* [Contributing](#contributing)
* [Authors](#authors)
* [License](#license)## Overview
This app provides its users with the ability to explore meteorite strikes
across the globe by searching the [Meteorite Landing dataset](https://data.nasa.gov/Space-Science/Meteorite-Landings/gh4g-9sfh) on the Nasa
Open Data Portal.This application was built to support the Medium article ["How to use Profiling
& Baselining to Boost Performance & Reliability"](https://medium.com/chingu/get-blinded-by-science-and-boost-application-performance-b5afd64e34d4).
As such, it has been important to preserve the state of the application at
each point in its evolution. The following branches are key to achieving this
goal.- `master` - Same as `feature/05-cache-control`
- `development` - Same as `feature/05-cache-control`
- `gh-pages` - The host used for testing. At any step in the development and
performance tuning cycle changes made to any branch can be deployed here for
testing and measurement.
- `feature/01-initial-app` - The initial untuned application.
- `feature/02-service-worker` - Addition of a service worker for offline caching
- `feature/03-pagination` - Addition of pagination to the Meteorite Landing table
- `feature/04-debounce` - Reduction of the wait time in the call to Lodash `debounce`
- `feature/05-cache-control` - Correct cache control policy and request chain diagnostics in Devtools Performance Audit## Usage
### UI Features
Meteorite landings are displayed in alphabetical order of the name of the
landing location. Users may scroll through the list of landings, or use the
search box to search for a names that include the entered search term. Searches
are case independent.The results list can be reset to it's original contents by clearing the search
box and clicking the 'Search' button.### Starting & Building the App
To start the application in development mode simply run `npm run start`from
the command line. The application will automatically open a new tab in your
browser with the url `localhost:3000`.To start the application in production mode run `npm run serve`
from the command line. In production mode the app will automatically create a
new browser tab with the url `localhost:5000`. The main difference between
production and development modes is a Service Worker runs in productin mode to
support offline execution.The production version of the app on GitHub Pages is built by running `npm run publish`.
### Environment Variables
Environment variables that control the operation of the app are defined in the
`.env` file in the application root. These variables and their usage are shown
in the following table. It's important to keep in mind that when these settings
in the `.env` file are changed `npm run build` must be run before they will
take effect.Environment variables maintained in the `.env` file are made available to the
application code via `process.env.`. For example, the
homepage for the meteorite landings data is accessed in the code by referencing
`process.env.REACT_APP_METEORITE_LANDING_HOMEPAGE`.Remember that even though this keeps secure tokens like client id's and secrets
out of application code it does not make them secure.| Environment Variable | Description | Example Setting |
|:------------------------|:------------|:----------------|
| REACT_APP_METEORITE_LANDING_HOMEPAGE | Nasa Meteorite Landing homepage | N/a |
| REACT_APP_METEORITE_STRIKE_DATASET | URL for JSON dataset | N/a## Dependencies
### Libraries
This app has the following dependencies
| Module/Library | Environment | Description | Related Files |
|:---------------|:------------|:------------|:--------------|
| @material-ui/core | Development | Material Design React components | N/a |
| @material-ui/icons | Development | Material Design React components | N/a |
| gh-pages | Runtiime | Publish to GitHub Pages | N/a |
| lodash.debounce | Runtime | _debounce text input | N/a |
| prop-types | Runtime | Type checking for props | N/a |
| react | Runtime | UI Library | N/a |
| react-dom | Runtime | DOM renderer for React | N/a |
| react-scripts | Runtime | scripts and configuration used by Create React App | N/a |In addition to these libraries, which the app explicitly depends on,
Create React App includes other libraries such as Babel and Webpack. For more
information about Create React App and it's dependencies consult its
[documentation](https://github.com/facebook/create-react-app).### External Dependencies
In addition to libraries Meteorite Explorer also depends on webservices to
provide with details about places. The [Meteorite Landing dataset](https://data.nasa.gov/Space-Science/Meteorite-Landings/gh4g-9sfh)
site contains the detailed data about meteorite landings required by this app.## Application Structure
The component structure of the Meteorite Explorer application is shown in the
following diagram.![React Component Structure](https://github.com/jdmedlock/meteorite/blob/development/docs/me_component_structure.png)
## Frequently Asked Questions
TBD
## Change Log
For more information see [Change Log](https://github.com/jdmedlock/meteorite/blob/development/docs/CHANGELOG.md)
## Contributing
See [Contributing](https://github.com/jdmedlock/meteorite/blob/development/docs/CONTRIBUTING.md)
and our [Collaborator Guide](https://github.com/jdmedlock/meteorite/blob/development/docs/COLLABORATOR_GUIDE.md).## Authors
Developers on this project can be found on the [Contributors](https://github.com/jdmedlock/meteorite/graphs/contributors) page of this repo.
## License
[MIT](https://tldrlegal.com/license/mit-license)