N.A.S.A - Native astronomical scholar application is an excellent open source tool for anyone interested in space exploration and astronomy. It allows users to explore a vast collection of space related data and resources from nasa Open API with user-friendly interface. It it also great application for practicing skills such as styling, testing, ci/cd and react native development itself.
- Real life tracker of most popular satellites
- Searchable gallery of official Nasa images, videos and audios
- Asteroids tracker allowing exploration of objects passing near earth in the given time interval
- Astronomy picture of the day viewer
- Customizable application color theme
- Cross platform
Start with cloning the repository:
git clone https://github.com/pkrakowiakk/N.A.S.A.git
Install dependencies:
cd N.A.S.A
npm i
Unfortunately, react-native-snap-carousel library uses deprecated prop types that are no longer supported by react native. This will cause an error. To prevent that please replace installed react-native-snap-carousel from node_modules with updated package that can be found in docs/packages.
As a next step in the root directory create following .env file:
NASA_DEMO_KEY=DEMO_KEY
NASA_DEVELOPER_KEY=
Even though demo key allows application to run perfectly fine it has highly limited amount of API calls. You can request your developer key from Nasa Open API and then just assign it to NASA_DEVELOPER_KEY. However if you decide to work with demo key make sure that in src/configuration/providers/key.ts you have selected a valid key type.
export const nasaKeyTypeInUsage: NasaKeyType = NasaKeyType.Developer; // or NasaKeyType.Demo
After that you should be ready to run the project:
expo start
From now on you can open the app inside Expo mobile app by scanning QR code displayed in the terminal or by using mobile device emulator such as the one within android studio. You can get expo app here:
If you do not want to install all the dependencies locally and use Visual Studio Code you can install following extension and run development inside isolated container. There are couple of useful links that can help you get started:
If you wish to learn more about application architecture check out: architecture overview
If you wish to contribute please read: contribution guideline
If you wish to check the current progress or future goals for the application check out: roadmap
If you would like to play with application design u can use following figma file as a starting point: mockup