Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/adiwanwade/asteroid-explorer

A beautiful mobile application for exploring Near-Earth Objects (NEOs) using NASA's API.
https://github.com/adiwanwade/asteroid-explorer

asteroids nasa-api nasa-apod react-native redux redux-toolkit ui-design

Last synced: about 1 month ago
JSON representation

A beautiful mobile application for exploring Near-Earth Objects (NEOs) using NASA's API.

Awesome Lists containing this project

README

        



# 🌠 Asteroid Explorer 🌌

[![React Native](https://img.shields.io/badge/React_Native-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)](https://reactnative.dev/)
[![Expo](https://img.shields.io/badge/Expo-000020?style=for-the-badge&logo=expo&logoColor=white)](https://expo.dev/)
[![NASA API](https://img.shields.io/badge/NASA-API-red?style=for-the-badge&logo=nasa&logoColor=white)](https://api.nasa.gov/)

A beautiful mobile application for exploring Near-Earth Objects (NEOs) using NASA's API.

## Video Preview

### App Screen
Here’s a glimpse of what the App Screen looks like:

![App Screen](./assets/Android%20Emulator%20-%20Pixel_3a_API_34_extension_level_7_x86_64_5554%202024-10-27%2000-21-44%20(3).gif)

## ✨ Features
- πŸ›°οΈ **NASA's NEO API Integration**: Fetch real-time asteroid data based on the user's date input.
- πŸ” **Search asteroids by their ID**
- 🎲 **Discover random asteroids**
- πŸ“Έ **View beautiful space imagery for each asteroid**
- πŸ“Š **Get detailed information about:**
- Asteroid dimensions
- Hazard status
- Close approach dates
- Miss distances
- Relative velocities
- πŸ—‚οΈ **Recent Searches**: Keeps track of the user's recent queries for quick access.
- 🎨 **Beautiful UI/UX**: With smooth animated transitions, shadow effects, gradients, and intuitive design.
- πŸ”— **Direct links to NASA JPL database**

## πŸš€ Tech Stack

- **React Native** - Mobile app framework
- **Expo** - Development platform
- **NASA API** - Data source
- NEO (Near Earth Object) Web Service
- APOD (Astronomy Picture of the Day)
- **Linear Gradient** - UI effects
- **Animated API** - Smooth animations
- **Redux Native** - State Management

## πŸ“± Screenshots

- ### App Screens

Here’s a glimpse of what the Home Screen looks like:

![App Screen](./assets/Screenshot%202024-10-26%20235854.png)

Here’s a glimpse of what the Info Screen looks like:

![Info Screen](./assets/Screenshot%202024-10-27%20000403.png)

![Info Screen](./assets/Screenshot%202024-10-27%20000446.png)

## πŸ› οΈ Installation

1. Clone the repository:
```bash
git clone https://github.com/adiwanwade/asteroid-explorer.git
```

2. Install dependencies:
```bash
cd asteroid-explorer
npm install
```

3. Create a `.env` file in the root directory:
```env
API_KEY=your_nasa_api_key_here
```

4. Start the app:
```bash
npm start
```

## πŸ”‘ Getting an API Key

1. Visit [NASA API Portal](https://api.nasa.gov/)
2. Sign up for an API key
3. Add the key to your `.env` file

## πŸ’« Usage

1. Launch the app
2. Enter an asteroid ID or tap "Random" to discover new asteroids
3. View detailed information about the asteroid
4. Access recent searches for quick reference
5. Click "View on NASA JPL" for more detailed information

## 🎨 UI Features

- Neon color scheme with space-themed gradients
- Smooth animations and transitions
- Responsive design for all screen sizes
- Interactive elements with visual feedback
- Recent searches history with quick access
- Error handling with visual feedback
- Loading states with animations

## πŸ”„ Recent Searches

The app maintains a history of your recent searches for quick access:
- Stores up to 5 recent searches
- One-tap access to previous searches
- Persistent across sessions

## πŸ“Š Data Visualization

For each asteroid, you can view:
- Size estimates
- Orbital data
- Approach velocities
- Miss distances
- Hazard classifications
- Beautiful space imagery

## 🀝 Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## πŸ“ License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.

## πŸ‘ Acknowledgments

- NASA API for providing the data
- Expo team for the amazing development platform
- React Native community for the powerful framework

## πŸ“§ Contact

Adiwanwade - [Aditya Wanwade](https://twitter.com/ADWanwade) - [email protected]

---

Made with ❀️ and πŸš€βœ¨