Space Exploration is a Python-based Dash application designed to provide real-time information on space exploration. The application is deployed on Google Cloud Run and updates its data daily through web scraping techniques. It offers a comprehensive view of space activities, from historical milestones to upcoming launches. The design is fully responsive, adapting to various screen sizes.
The application features automated data updates (every 6 hours) using Google Cloud Storage and Google Cloud Scheduler. A Flask server in scrap.py
triggers the scraping scripts, ensuring that the data is always up-to-date.
You can access the live version of the application here.
For a quick demonstration of the app's features, check out the video below:
- 3D Earth Globe: A rotating 3D Earth globe visualizing the number of space launches by country since the inception of space exploration.
- Cytoscape Graph: A constellation-shaped graph representing significant historical events in space exploration. Clicking on a node reveals a description and image related to the event.
- Line Plot: Displays the number of launches per year, with the ability to filter by success or failure.
- Histogram: Shows launches by month, updating based on the year selected from the line plot.
- Sunburst Chart: Represents hierarchical data from countries, organizations, down to success/failure rates.
- Upcoming Launch Info: A section providing details on the next upcoming launch.
- Python: The backend is entirely written in Python.
- Dash: Used for creating the web application.
- Web Scraping: Data is scraped from various sources using Python libraries like
requests
andBeautifulSoup
. The scraping scripts are hosted in separate repositories: - Data Management: Scraping scripts are packaged as reusable Python modules.
- Data Visualization: Utilizes Dash components and Plotly for interactive visualizations.
- Responsive Design: The application is designed to be fully responsive.
- Cloud Deployment: The application is deployed on Google Cloud Run and utilizes Docker containers for daily data updates.
- Google Cloud Storage and Scheduler: Used for storing scraped data and automates the data update process.
- Flask Server: A Flask server in
scrap.py
triggers the scraping scripts.
To run the application locally, follow these steps:
- Clone the repository
- Install the required packages from
requirements.txt
- Run
app.py
The application is designed to update its data sources daily. The data is updated using Docker containers orchestrated by Google Cloud Run. If you wish to update the data manually, you can run the scraping scripts located in the linked repositories.
This project is licensed under the Apache-2.0 License. You are free to use, modify, and distribute the code, provided that you attribute the work to the original author.
© 2023 Tanguy Surowiec. All rights reserved.