Shared Earth is an educational web project designed to raise awareness about endangered species and help users learn about the animals with whom we share our planet.
The website combines an interactive world map, individual species information pages, and population trend visualizations to make information about endangered animals more accessible and engaging.
This project was created during one of our first hackathons as freshman developers and served as an opportunity to explore web development, interactive mapping, data visualization, and Python beyond our previous programming experience.
Explore endangered species around the world through an interactive map built with Mapbox GL JS.
Markers represent locations associated with different endangered species. Selecting a marker displays information about the species and provides a link to its dedicated information page.
The website contains individual pages for several endangered species, including:
Each page provides information and population-related data for the selected species.
Python is used to analyze historical population data and generate population trend graphs.
The data-processing script uses:
The generated visualizations provide another way to understand how endangered animal populations have changed over time.
quocgiahuydo.github.io/
β
βββ graphs/ # Generated population graphs
βββ images/ # Images and website assets
βββ pages/ # Individual endangered species pages
β
βββ animal.html # Species directory
βββ globe.html # Interactive Mapbox species map
βββ info.html # Main information/home page
βββ main.py # Population analysis and graph generation
βββ style.css # Shared website styling
βββ note.txt
βββ README.md
globe.html uses Mapbox GL JS to display a world map containing geographic markers for endangered species.
Each location is represented as a GeoJSON feature containing:
Clicking a marker opens a popup where users can learn more about that species.
main.py contains the Python logic used to process historical population data.
For each species, historical population observations are provided as a series of years and population values. The program applies linear regression using SciPy and generates a visualization of the resulting trend using Matplotlib.
Generated graphs are stored in:
graphs/
git clone https://github.com/quocgiahuydo/quocgiahuydo.github.io.git
cd quocgiahuydo.github.io
Because most of the website is static HTML/CSS/JavaScript, you can run it using a simple local web server.
Using Python:
python3 -m http.server 8000
Then open:
http://localhost:8000/info.html
Install the Python dependencies:
pip install matplotlib scipy flask
Then run:
python3 main.py
The script generates population graphs for the species defined in main.py.
This project was an early opportunity for us to move beyond basic Python programming and explore several new technologies at once.
Some of the concepts we practiced included:
One of the largest challenges was creating the interactive map while simultaneously learning unfamiliar web technologies. Completing a working website during our first hackathon was itself one of the biggest accomplishments of the project.
There are thousands of species facing threats from habitat loss, climate change, poaching, and other environmental pressures.
Shared Earth was created with a simple goal:
Help people learn more about endangered animals and the species with whom we share the Earth.
By combining geographic exploration, species information, and population data, the project aims to make learning about endangered wildlife more interactive.
Possible improvements to the project include:
Created as a hackathon project by a team of freshman developers.
Harry Do GitHub: @quocgiahuydo
This project was created for educational and hackathon purposes. Population estimates and trend projections should not be interpreted as authoritative conservation forecasts. For current species population and conservation information, consult organizations such as the IUCN or WWF.
β If you found this project interesting, feel free to explore the repository and learn more about the s