Skip to content

A web application that brings the wonders of space exploration to your fingertips. It provides real-time data on planets, space missions, astronomical events, the latest space news, and high resolution imagery.

Notifications You must be signed in to change notification settings

m-elhamlaoui/space-gateway

Repository files navigation

πŸš€ Space Gateway

The link to the DevOps part of the project is in the bottom of the README file.

Space Gateway is a modern full-stack web application that brings the wonders of space exploration to your fingertips. It provides real-time data on planets, space missions, astronomical events, the latest space news, and high-resolution imagery β€” all powered by live APIs and wrapped in an engaging, responsive UI.


🌐 Live Demo

Space.Gateway.-.Google.Chrome.2025-05-25.14-38-20.1.1.1.mp4

πŸ“š Table of Contents


✨ Features

  • Planet Details: View detailed info and images of Solar System planets, including mass, radius, orbit, composition, and temperature.
  • NASA Picture of the Day: Stay inspired with NASA’s daily astronomy photo.
  • Space Missions: Track current and upcoming missions with launch dates, space agencies, and mission status.
  • Astronomical Events: Discover upcoming celestial events with event type, timing, and descriptions.
  • Space News: Read the latest space-related articles from trusted news sources.
  • Image Gallery: Browse a curated collection of high-quality space imagery.
  • Search Functionality: Find relevant articles, images, and mission data quickly.

🧭 Pages Overview

- Home

  • Displays NASA’s Astronomy Picture of the Day.
  • Quick links to major features.
  • Highlights featured space news and missions.

- Planets

  • Interactive planetary grid.
  • View detailed stats and images via modal popup or detail page.
  • Covers all major Solar System planets.

- Explore

  • Missions: View upcoming launches with mission details and imagery.
  • Events: Explore current/future astronomical events by date and type.
  • News: See recent developments in space exploration.

- Articles

  • Collection of informative articles on space science and exploration.
  • Search functionality to filter by keywords or topics.

- Images

  • Gallery of curated high-resolution space images.
  • Searchable by keywords.

- About

  • Project goals and overview.
  • Credits and contact information.

πŸ“ˆ Use Case Diagram

The following diagram illustrates the core functionalities of Space Gateway and how users interact with them:

Space Gateway Use Case Diagram


🌐 APIs Used

API Endpoint(s) Purpose
Le Systeme Solaire API https://api.le-systeme-solaire.net/rest/bodies?filter[]=isPlanet,eq,true, https://api.le-systeme-solaire.net/rest/bodies/{planetId} Fetches detailed planetary data (mass, radius, orbit, composition, etc.). Used in PlanetService.
NASA APOD API https://api.nasa.gov/planetary/apod?api_key={API_KEY} Retrieves NASA's Astronomy Picture of the Day. Used in ApodService.
NASA Media API https://images-api.nasa.gov/search?q={query} Supplies high-res space images. Used in ImageLibraryService.
NewsAPI https://newsapi.org/v2/everything?q=space+AND+(astronomy+OR+NASA+OR+rocket+OR+planet)&language=en&pageSize=100&sortBy=publishedAt&apiKey={API_KEY} Retrieves space-related news articles. Used in ArticlesService. Requires API key.
Launch Library 2 API (The Space Devs) https://ll.thespacedevs.com/2.2.0/launch/upcoming/, https://ll.thespacedevs.com/2.2.0/event/upcoming/ Provides data on upcoming space missions and astronomical events. Used in ExploreService.

πŸ“Œ Note: See the diagram below for a visual summary of the external APIs used (the APIs SpaceflightNews and Wikipedia aren't used anymore).

APIs Used Diagram


πŸ› οΈ Tech Stack

1. Frontend

React
TypeScript
Chakra UI
Axios


2. Backend

Spring Boot
Java


3. Build Tools

Vite
Maven


4. Deployment

Docker
Docker-ready setup, not yet deployed


βš™οΈ Setup Instructions

1. Frontend Setup

The Frontend is connected to the port 3001.

# Clone the repository
git clone https://github.com/m-elhamlaoui/development-platform-astro-duo.git

# Navigate to frontend directory
cd development-platform-astro-duo/frontend

# Install dependencies
npm install

# Start development server and enter to the link that will show "https://localhost:3001"
npm run dev

2. Backend Setup

# Navigate to backend directory
cd ../backend

# Build the project
mvn clean install

# Run the application (e.g., SpaceGatewayApplication.java)
mvn spring-boot:run

πŸš€ Perspectives and Improvements

To ensure the continued scalability and adaptability of Space Gateway, several enhancements can be considered for future iterations:

1. Microservices Architecture

Refactor the current monolithic backend into independent microservices, such as:

  • Planet Service – manages planetary data
  • Articles/News Service – handles news and article aggregation
  • Missions/Events Service – manages launches and celestial events
  • Images Service – serves high-resolution images and NASA media

This modular approach enables:

  • Independent development and scaling of each service
  • Better fault isolation and maintainability
  • Easier integration with other systems in the future

Before proceeding to the DevOps part, we tried to divise the project to microservices for every service, but there was an issue when we start Eureka server even though the services showed as up, there is a problem in the API Gateway because after starting the services, the frontend doesn't correctly connect to the backend services. So we did the DevOps part with our folders "Backend" and "Frontend".

2. Deployment

Deploying the system with:

  • Docker containers for each service
  • Docker Compose or Kubernetes for orchestration
  • CI/CD pipelines using GitHub Actions or Jenkins for seamless updates

This would support horizontal scaling and improve overall availability.

3. Secure Authentication

Implement OAuth2.0 and JWT-based authentication for:

  • User login with Google, GitHub, etc.
  • Secure access to personalized features and admin endpoints

4. 3D Interactive Space Map

  • A 3D exploration map to enhance spatial navigation and interactivity.

Link to the repository with the DevOps part of the project:

https://github.com/hibaw4/development-platform-astro-duo.git

About

A web application that brings the wonders of space exploration to your fingertips. It provides real-time data on planets, space missions, astronomical events, the latest space news, and high resolution imagery.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •