Skip to content

A friendly user interface for exploring publically available NASA data, images and information.

License

Notifications You must be signed in to change notification settings

gavhanna/nasa-ui

Repository files navigation

NASAui

Description

Open source frontend to publically available NASA data via NASA APIs. The goal of this project is to create an interesting open source frontend project where we have some craic with latest React, JS, CSS etc while still implementing a well structured and production ready web app.

Installation

  1. Get an API key from NASA APIs here.
  2. Clone this repo.
  3. Cd into folder & run npm install.
  4. Cope the .env.example and change it's name to .env.local.
  5. Add your API key to the .env file on line 1.
  6. Run npm run dev to run the local dev server.

Project Structure

The /app folder contents:

/components

Relatively self-explanatory, global re-usable components will go here and will follow the pattern laid out in the Card component whereby we have a folder for the component which houses the component .js file, a CSS module file and a test spec.js file. A line is then added to the /components/index.js file to easily import the component elsewhere: export { default as Card } from "./Card/Card";

/sections

This part is in a bit of flux and will no doubt change over time

The main sections of the app, for example APOD which houses the Astornomy Photo of the Day section.

New sections will be added here and follow the pattern laid out in /APOD.

/features

Redux related folder that contains "Services" and "Slices" related to applications state. The goal here being that each section will have it's own slice and service.

/layouts

This part is in a bit of flux and will no doubt change over time

Page container components that dictate the layout of a page or section.

/styles

Global styles and styling utilities. Component level styles exist at the component level.

/utils

JS utility functions to be available globally. This will likely contain date related functions, some validation helpers or any other function that would be useful in several different sections or components.

Style

This project uses Open Props as a replacement for a regular CSS framework. Open Props is self-described as "supercharged CSS variables".

Design

Link to Figma mocks.

Deployment, CI/CD

The site is deployed to netlify (starter plan) on merge to master branch. Each PR triggers a build which checks prettier formatting and (soon will also check) unit tests.

When you create a PR you'll be greeted with a nice UI that will display the results of these checks.

Contributing

Branching Strategy

Please create your branch under the naming convention user/{username}/{issueNumber}-{brief-description}

About

A friendly user interface for exploring publically available NASA data, images and information.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published