Skip to content

aishikasaha/nasa-react-express-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒŒ NASA Data Explorer - Full-Stack Space Application

React Node.js Express NASA API AI Powered MIT License [[AUTHOR: AISHIKA SAHA]]

Explore the cosmos with NASA's real data through an immersive, AI-enhanced, interactive space exploration experience.

๐Ÿ—๏ธ System Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         Full Stack Architecture                     โ”‚
โ”‚                                                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚                          React Frontend                       โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚   APODCard  โ”‚       โ”‚ MarsRover   โ”‚       โ”‚  NeoChart   โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚   Gallery   โ”‚       โ”‚   Gallery   โ”‚       โ”‚  Dashboard  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚
โ”‚  โ”‚         โ”‚                     โ”‚                     โ”‚         โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚ AIInsights  โ”‚       โ”‚ useNasaData โ”‚       โ”‚   api.js    โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚   Component โ”‚       โ”‚   Hook      โ”‚       โ”‚  Service    โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚
โ”‚  โ”‚         โ”‚                     โ”‚                     โ”‚         โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  AIService  โ”‚       โ”‚ soundManagerโ”‚       โ”‚ aiService   โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚            โ”‚                     โ”‚                     โ”‚          โ”‚
โ”‚            โ–ผ                     โ–ผ                     โ–ผ          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚                        Express Backend                       โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  APODRoutes โ”‚       โ”‚ MarsRoutes  โ”‚       โ”‚  NeoRoutes  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚   /api/apod โ”‚       โ”‚ /api/mars   โ”‚       โ”‚  /api/neo   โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚
โ”‚  โ”‚         โ”‚                     โ”‚                     โ”‚         โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚APODControllerโ”‚       โ”‚MarsControllerโ”‚      โ”‚ NeoControllerโ”‚ โ”‚
โ”‚  โ”‚  โ”‚             โ”‚       โ”‚             โ”‚       โ”‚             โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚
โ”‚  โ”‚         โ”‚                     โ”‚                     โ”‚         โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚ NasaService โ”‚       โ”‚ NasaService โ”‚       โ”‚ NasaService โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚ (APOD API)  โ”‚       โ”‚ (Mars API)  โ”‚       โ”‚ (NEO API)   โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                                  โ”‚                                โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚                        External APIs                         โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚ โ”‚
โ”‚  โ”‚  โ”‚   NASA API  โ”‚  โ”‚ Hugging Faceโ”‚  โ”‚   Other     โ”‚           โ”‚ โ”‚
โ”‚  โ”‚  โ”‚    - APOD   โ”‚  โ”‚     AI      โ”‚  โ”‚  Services   โ”‚           โ”‚ โ”‚
โ”‚  โ”‚  โ”‚    - Mars   โ”‚  โ”‚   Models    โ”‚  โ”‚             โ”‚           โ”‚ โ”‚
โ”‚  โ”‚  โ”‚    - NEO    โ”‚  โ”‚             โ”‚  โ”‚             โ”‚           โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  - Library  โ”‚  โ”‚             โ”‚  โ”‚             โ”‚           โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”„ Data Flow Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                            Data Flow                                โ”‚
โ”‚                                                                     โ”‚
โ”‚ User Interaction                                                    โ”‚
โ”‚        โ”‚                                                            โ”‚
โ”‚        โ–ผ                                                            โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    HTTP Request     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                โ”‚
โ”‚ โ”‚   React     โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”‚   Express   โ”‚                โ”‚
โ”‚ โ”‚ Components  โ”‚                     โ”‚   Backend   โ”‚                โ”‚
โ”‚ โ”‚             โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚             โ”‚                โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    JSON Response    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜                โ”‚
โ”‚        โ”‚                                   โ”‚                       โ”‚
โ”‚        โ”‚                                   โ–ผ                       โ”‚
โ”‚        โ”‚                          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”‚
โ”‚        โ”‚                          โ”‚   NASA API  โ”‚                  โ”‚
โ”‚        โ”‚                          โ”‚  Integration โ”‚                  โ”‚
โ”‚        โ”‚                          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ”‚        โ”‚                                 โ”‚                         โ”‚
โ”‚        โ”‚                                 โ–ผ                         โ”‚
โ”‚        โ”‚                          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”‚
โ”‚        โ”‚                          โ”‚  AI Models  โ”‚                  โ”‚
โ”‚        โ”‚                          โ”‚ (Hugging    โ”‚                  โ”‚
โ”‚        โ”‚                          โ”‚   Face)     โ”‚                  โ”‚
โ”‚        โ”‚                          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ”‚        โ”‚                                 โ”‚                         โ”‚
โ”‚        โ–ผ                                 โ–ผ                         โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”‚
โ”‚ โ”‚  Enhanced   โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚  Processed  โ”‚                  โ”‚
โ”‚ โ”‚   UI with   โ”‚                  โ”‚    Data     โ”‚                  โ”‚
โ”‚ โ”‚ AI Insights โ”‚                  โ”‚             โ”‚                  โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Live Demo

๐Ÿ“– Table of Contents

โœจ Features

๐ŸŒŸ Core Functionality

  • ๐Ÿ–ผ๏ธ Astronomy Picture of the Day (APOD): Daily space imagery with detailed explanations
  • ๐Ÿš€ Mars Rover Gallery: Browse thousands of photos from NASA's Mars missions
  • โ˜„๏ธ Near Earth Objects (NEO) Tracker: Monitor asteroids and comets approaching Earth
  • ๐Ÿ” NASA Library Search: Search through NASA's vast media collection

๐Ÿค– AI-Powered Features

  • ๐Ÿง  Intelligent Image Analysis: AI-powered image description and analysis
  • ๐Ÿ“ Content Summarization: Automatic text summarization of complex explanations
  • ๐ŸŽญ Sentiment Analysis: Emotional tone analysis of NASA content
  • ๐Ÿ’ฌ AI Space Assistant: Interactive chatbot with space knowledge
  • ๐Ÿ“Š Reading Complexity Analysis: Content difficulty assessment
  • ๐Ÿ’ก Smart Astronomy Tips: Context-aware educational suggestions

๐ŸŽจ Advanced UI/UX

  • ๐ŸŽต Immersive Sound Effects: Space-themed audio feedback
  • โœจ Smooth Animations: Framer Motion powered transitions
  • ๐ŸŒŒ Animated Background: Dynamic starfield with moving particles
  • ๐ŸŽจ Space-Themed Typography: Custom fonts for futuristic feel
  • ๐Ÿ“ฑ Responsive Design: Optimized for all device sizes
  • ๐ŸŒ™ Dark Theme: Space-appropriate dark interface
  • โšก Performance Optimized: Lazy loading and efficient rendering

๐Ÿ›ก๏ธ Technical Excellence

  • ๐Ÿ”’ Security: Rate limiting, CORS protection, input validation
  • โšก Performance: Caching, lazy loading, optimized API calls
  • ๐Ÿงช Error Handling: Comprehensive error boundaries and user feedback
  • โ™ฟ Accessibility: WCAG compliant with proper ARIA labels
  • ๐Ÿ“Š Monitoring: Health checks and logging

๐Ÿ› ๏ธ Tech Stack

Frontend

  • โš›๏ธ React 18 - Modern React with hooks and functional components
  • ๐ŸŽฌ Framer Motion - Advanced animations and transitions
  • ๐Ÿ”Š Howler.js - Web audio for sound effects
  • ๐Ÿ“ก Axios - HTTP client for API communication
  • ๐ŸŽจ CSS3 - Advanced styling with custom properties and animations

Backend

  • ๐ŸŸข Node.js - JavaScript runtime environment
  • ๐Ÿš‚ Express.js - Fast, minimalist web framework
  • ๐Ÿ”’ Helmet - Security middleware
  • ๐ŸŒ CORS - Cross-origin resource sharing
  • ๐Ÿ“Š Morgan - HTTP request logger
  • โฑ๏ธ Express Rate Limit - API rate limiting

AI & Data

  • ๐Ÿค— Hugging Face - Free AI models for image analysis and NLP
  • ๐Ÿง  Custom AI Service - Rule-based conversational AI
  • ๐Ÿ“Š NASA APIs - Real-time space data integration

Development Tools

  • ๐Ÿ“ฆ npm - Package management
  • ๐Ÿ”„ Concurrently - Run multiple processes
  • ๐Ÿ”ง dotenv - Environment variable management
  • ๐Ÿ“ฑ React DevTools - Development debugging

๐ŸŽฏ Prerequisites

Before you begin, ensure you have the following installed:

System Requirements

  • Memory: 4GB RAM minimum, 8GB recommended
  • Storage: 1GB free space
  • Browser: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+

โšก Quick Start

1๏ธโƒฃ Clone the Repository

git clone https://github.com/aishikasaha/nasa-react-express-app.git
cd nasa-react-express-app

2๏ธโƒฃ Get NASA API Key

  1. Visit NASA API Portal
  2. Click "Get API Key"
  3. Fill out the form (free and instant)
  4. Copy your API key

3๏ธโƒฃ Environment Setup

# Backend environment
cat > backend/.env << EOF
PORT=5001
NODE_ENV=development
NASA_API_KEY=your_token
FRONTEND_URL=http://localhost:3000
HF_API_TOKEN=your_token
EOF

# Frontend environment  
cat > frontend/.env << EOF
REACT_APP_NASA_API_KEY=your_nasa_api_key
REACT_APP_HF_API_TOKEN=your_hugging_face_token
REACT_APP_API_URL==http://localhost:5001/api
EOF

4๏ธโƒฃ Install Dependencies

# Install all dependencies (backend + frontend + root)
npm run install-deps

# Or manually:
cd backend && npm install
cd ../frontend && npm install  
cd .. && npm install

5๏ธโƒฃ Start Development Servers

# Start both backend and frontend simultaneously
npm run dev

# Or start manually:
# Terminal 1: npm run server
# Terminal 2: npm run client

6๏ธโƒฃ Open Application

๐Ÿ“ Project Structure

nasa-data-explorer/
โ”œโ”€โ”€ ๐Ÿ“‚ backend/                     # Express.js backend server
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ controllers/             # Route handlers
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ apodController.js    # APOD endpoint logic
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ aiController.js      # AI   endpoint logic
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ marsController.js    # Mars rover endpoints
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ neoController.js     # Near Earth Objects
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ routes/                  # API route definitions
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ apod.js              # APOD routes
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ aiRoutes.js          # Ai routes
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ mars.js              # Mars rover routes
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ neo.js               # NEO routes
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ services/                # Business logic
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ nasaService.js       # NASA API integration
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ aiService.js         # ai API integration
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ tests/                   # Test files
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ controllers/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ integration/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ services/
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ setup.js
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ utils/                   # Utilities
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ logger.js            # Logging system
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ server.js                # Main server file
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ package.json             # Backend dependencies
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ .env                     # Backend configuration
โ”œโ”€โ”€ ๐Ÿ“‚ frontend/                    # React frontend application
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ public/                  # Static assets
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ index.html           # HTML template
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ favicon.ico          # App icon
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ logo192.png          # App icons
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ logo512.png          # App icons
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ manifest.json        # PWA config
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ robots.txt           # SEO config
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ src/                     # Source code
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components/          # React components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ Dashboard.js     # Main navigation
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ APODCard.js      # APOD display
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ MarsRoverGallery.js # Mars photos
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ NeoChart.js      # NEO visualization
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ AIInsights.js    # AI analysis panel
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ AIChat.js        # AI chatbot
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ LoadingAnimation.js # Loading states
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ InteractiveButton.js # Custom buttons
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ AnimatedBackground.js # Background effects
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ hooks/               # Custom React hooks
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ useNasaData.js   # Data fetching hooks
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ services/            # API integration
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ api.js           # HTTP client setup
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ aiApi.js         # AI api client setup
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ styles/              # Styling system
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ fonts.css        # Typography system
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ utils/               # Utility functions
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ constants.js     # App constants
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ soundManager.js  # Audio system
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ App.js               # Root component
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ App.css              # Global styles
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ index.js             # App entry point
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ package.json             # Frontend dependencies
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ package-lock.json        # Lock file
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ .env                     # Frontend configuration
โ”œโ”€โ”€ ๐Ÿ“„ package.json                 # Root package management
โ”œโ”€โ”€ ๐Ÿ“„ package-lock.json            # Root lock file
โ”œโ”€โ”€ ๐Ÿ“„ yarn.lock                    # Yarn lock file
โ”œโ”€โ”€ ๐Ÿ“„ README.md                    # Project documentation
โ”œโ”€โ”€ ๐Ÿ“„ vercel.json                  # Deployment config
โ””โ”€โ”€ ๐Ÿ“„ .gitignore                   # Git ignore rules

๐Ÿ”ง Configuration

Environment Variables

Backend Configuration (backend/.env)

PORT=5001                           # Server port
NODE_ENV=development                # Environment (development/production)
NASA_API_KEY=your_api_key_here     # NASA API key (required)
FRONTEND_URL=http://localhost:3000  # Frontend URL for CORS
HF_API_TOKEN=your_hugging_face_token

Frontend Configuration (frontend/.env)

REACT_APP_NASA_API_KEY=your_nasa_api_key
REACT_APP_HF_API_TOKEN=your_hugging_face_token
REACT_APP_API_URL=http://localhost:5001/api  # Backend API endpoint

NASA API Configuration

  • Free Tier: 1,000 requests per hour
  • Demo Key: 30 requests per hour (limited)
  • Rate Limit: Automatically handled by backend
  • Endpoints Used: APOD, Mars Rover Photos, NEO Feed, Image Search

๐ŸŒ API Endpoints

Health & Status

  • GET /health - Server health check
  • GET /api/health - API health with NASA key status

Astronomy Picture of the Day

  • GET /api/apod - Today's APOD
  • GET /api/apod?date=YYYY-MM-DD - Specific date APOD
  • GET /api/apod/random - Random historical APOD

Mars Rover Photos

  • GET /api/mars/photos - Default rover photos
  • GET /api/mars/photos?rover=curiosity&sol=1000&page=1 - Filtered photos
  • Rovers: curiosity, opportunity, spirit, perseverance

Near Earth Objects

  • GET /api/neo - Next 7 days NEO data
  • GET /api/neo?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD - Date range
  • GET /api/neo/stats - Statistical analysis

NASA Library Search

  • GET /api/search?q=galaxy&media_type=image - Search media
  • Media Types: image, video, audio

Response Format

{
  "success": true,
  "data": { /* NASA API response */ },
  "timestamp": "2024-01-15T10:30:00.000Z"
}

๐Ÿค– AI Features

Image Analysis

  • Model: Salesforce BLIP (Bootstrap Language-Image Pre-training)
  • Capability: Automatic image captioning and description
  • Usage: Describes astronomical images in natural language

Text Processing

  • Summarization: Facebook BART model for content summarization
  • Sentiment Analysis: RoBERTa model for emotional tone detection
  • Complexity Analysis: Custom algorithm for reading level assessment

AI Assistant

  • Type: Rule-based conversational AI
  • Knowledge Base: Astronomy, space science, planetary science
  • Features: Context-aware responses, educational content

Performance

  • Response Time: 1-3 seconds for AI analysis
  • Accuracy: 85-95% for image descriptions
  • Languages: English (primary), expandable

๐ŸŽจ UI/UX Features

Typography System

/* Space-themed fonts */
--font-heading-primary: 'Orbitron'      /* Futuristic headings */
--font-heading-secondary: 'Exo 2'       /* Clean sci-fi */
--font-body-primary: 'Rajdhani'         /* Readable content */
--font-mono: 'Space Mono'               /* Code/data display */
--font-ui: 'Electrolize'                /* Interface elements */

Color Palette

/* Primary colors */
--space-blue: #00d4ff      /* Primary accent */
--cosmic-teal: #4ecdc4     /* Secondary accent */  
--mars-red: #ff6b6b        /* Warning/error states */
--void-black: #0c0c0c      /* Background base */
--star-white: #ffffff      /* Text primary */

Animation System

  • Page Transitions: Smooth fade and slide effects
  • Component Animations: Spring-based physics
  • Loading States: Space-themed spinners and progress bars
  • Hover Effects: Glow and transform animations
  • Sound Integration: Audio feedback for interactions

Responsive Breakpoints

  • Mobile: 320px - 768px
  • Tablet: 768px - 1024px
  • Desktop: 1024px - 1440px
  • Large Desktop: 1440px+

๐Ÿ“ฑ Screenshots

๐Ÿ–ฅ๏ธ Desktop Experience

Desktop Dashboard Main dashboard with space-themed interface

APOD View Astronomy Picture of the Day with AI insights

Mars Gallery Interactive Mars rover photo gallery

Neo Near objects

๐Ÿ“ฑ Mobile Experience

Mobile Dashboard Mobile Dashboard Responsive mobile interface

๐Ÿค– AI Features

AI Analysis AI-powered image analysis and insights

AI Chat Interactive space assistant chatbot

๐Ÿงช Testing

Running Tests

# Frontend tests
cd frontend && npm test

# Backend tests  
cd backend && npm test

# Run all tests
npm run test:all

Test Coverage

  • Frontend: Component testing, hook testing, integration tests
  • Backend: API endpoint testing, middleware testing, error handling
  • E2E: User journey testing with Cypress (optional)

Manual Testing Checklist

  • APOD loads for current date
  • Random APOD generates different content
  • Mars rover photos load for different rovers/sols
  • NEO data displays with correct statistics
  • AI analysis provides meaningful insights
  • Error handling works for invalid inputs
  • Responsive design works on mobile/tablet
  • Sound effects work properly
  • All animations are smooth

๐Ÿš€ Deployment

Frontend Deployment (Render Static Site - Recommended)

  1. Connect to Render:
  • Visit render.com
  • Sign up with GitHub and connect your repository
  • Click "New +" โ†’ "Static Site"
  1. Configure Frontend:
Name: nasa-react-app-frontend
Root Directory: client
Build Command: npm run build
Publish Directory: build
  1. Environment Variables:
  • Add REACT_APP_API_URL in Render dashboard
  • Point to your deployed backend URL

Backend Deployment (Render Web Service - Recommended)

  1. Connect to Render:
  • Visit render.com
  • Connect your GitHub repository
  • Click "New +" โ†’ "Web Service"
  1. Configure Backend:
Name: nasa-react-app-backend
Root Directory: server
Build Command: npm install
Start Command: npm start
  1. Environment Variables:
NODE_ENV=production
NASA_API_KEY=your_api_key
FRONTEND_URL=https://your-frontend-domain.onrender.com
REACT_APP_HF_API_TOKEN=your_hugging_face_token
PORT=10000

Alternative Deployment Options

Frontend Alternatives

  • Netlify: Drag & drop deployment
  • GitHub Pages: Free static hosting
  • AWS S3 + CloudFront: Scalable solution

Backend Alternatives

  • Heroku: Easy deployment with git
  • DigitalOcean App Platform: Affordable containers
  • AWS Elastic Beanstalk: Auto-scaling solution

Production Considerations

  • HTTPS: Required for NASA API calls
  • CORS: Update for production domains
  • Rate Limiting: Adjust for production traffic
  • Error Monitoring: Implement Sentry or similar
  • Performance: Enable gzip compression
  • Security: Environment variable management

๐Ÿค Contributing

We welcome contributions! Here's how to get started:

Development Setup

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/amazing-feature
  3. Install dependencies: npm run install-deps
  4. Start development: npm run dev

Code Style

  • Frontend: ESLint + Prettier configuration provided
  • Backend: Standard Node.js conventions
  • Commits: Follow conventional commit format
  • Testing: Write tests for new features

Pull Request Process

  1. Update documentation for any API changes
  2. Add tests for new functionality
  3. Ensure all tests pass: npm test
  4. Update README if needed
  5. Create detailed PR description

Bug Reports

Include:

  • Steps to reproduce
  • Expected vs actual behavior
  • Browser/Node.js version
  • Console errors/logs
  • Screenshots (if UI related)

Feature Requests

  • Use case description
  • Proposed implementation
  • Alternative solutions considered
  • Impact assessment

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Third-Party Licenses

  • NASA APIs: Public domain (U.S. Government work)
  • Google Fonts: SIL Open Font License
  • Hugging Face Models: Various open source licenses
  • React & Dependencies: MIT License

๐Ÿ™ Acknowledgments

Data Sources

  • ๐Ÿš€ NASA: For providing free access to space data APIs
  • ๐Ÿค— Hugging Face: For free AI model inference
  • ๐ŸŽจ Google Fonts: For space-themed typography

Inspiration

  • ๐ŸŽฎ NASA Mission Control: Interface design inspiration
  • ๐ŸŽฌ Sci-Fi Movies: Visual and audio design elements
  • ๐ŸŒŒ Space Exploration: The wonder of cosmic discovery

Open Source Community

  • โš›๏ธ React Team: For the excellent frontend framework
  • ๐ŸŸข Node.js Contributors: For the powerful runtime
  • ๐ŸŽฌ Framer Motion: For beautiful animations
  • ๐Ÿ”Š Howler.js: For web audio capabilities

๐ŸŒŸ Star History

Star History Chart

๐Ÿ“ˆ Project Stats

GitHub repo size GitHub code size GitHub last commit GitHub issues GitHub pull requests


๐ŸŒŒ Built with โค๏ธ for space exploration enthusiasts ๐Ÿš€

"The universe is not only stranger than we imagine, it is stranger than we can imagine." - J.B.S. Haldane

โฌ† Back to Top

About

Nasa Interactive app with AI features

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published