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.
Space.Gateway.-.Google.Chrome.2025-05-25.14-38-20.1.1.1.mp4
- Features
- Pages Overview
- Use Case Diagram
- APIs Used
- Tech Stack
- Setup Instructions
- Perspectives and Improvements
- 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.
- Displays NASAβs Astronomy Picture of the Day.
- Quick links to major features.
- Highlights featured space news and missions.
- Interactive planetary grid.
- View detailed stats and images via modal popup or detail page.
- Covers all major Solar System planets.
- 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.
- Collection of informative articles on space science and exploration.
- Search functionality to filter by keywords or topics.
- Gallery of curated high-resolution space images.
- Searchable by keywords.
- Project goals and overview.
- Credits and contact information.
The following diagram illustrates the core functionalities of Space Gateway and how users interact with them:
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).
Docker-ready setup, not yet deployed
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
# Navigate to backend directory
cd ../backend
# Build the project
mvn clean install
# Run the application (e.g., SpaceGatewayApplication.java)
mvn spring-boot:run
To ensure the continued scalability and adaptability of Space Gateway, several enhancements can be considered for future iterations:
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".
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.
Implement OAuth2.0 and JWT-based authentication for:
- User login with Google, GitHub, etc.
- Secure access to personalized features and admin endpoints
- A 3D exploration map to enhance spatial navigation and interactivity.
https://github.com/hibaw4/development-platform-astro-duo.git