Inspiration
Inspired by the thought of is there a way to store imagery/textual data in an efficient and innovative way utilizing open source technology.
What it does
Geo-0 is a system designed to process imagery and locational text data by breaking it down into multiple chunks, acting as a data backup and data management system. Each chunk undergoes individual compression to optimize and allow a smaller footprint for storage. The system generates metadata and assigns a unique index to each chunk, allowing it to be precisely associated with a specific location on a map and management within mapping and file management systems.
How we built it
Geo-0 was built using Python, with FastAPI for the backend and Motor for interacting with MongoDB asynchronously. For image chunking and compression libraries like Pillow and NumPy were used. We created a web interface with Streamlit to allow users to upload files and view locations on an interactive map. The map was built using Pydeck to visualize location data and attached files. Docker was used to ensure consistency and easy development experience.
Challenges we ran into
The biggest challenge was solo hacking. Another challenge was efficiently chunking and compressing large images while keeping data quality intact also having to figure out how to manage asynchronous database connections using FastAPI and MongoDB. Creating a responsive, easy-to-use interface for handling file uploads and geospatial data visualization was another tricky part, especially when ensuring smooth interactions on the map.
What we learned
I learned a lot about asynchronous programming in Python, particularly when working with FastAPI and MongoDB. Image processing, especially in breaking down large images into chunks and compressing them efficiently, was another key area of learning. On the frontend side, I gained experience in building interactive data visualizations using Pydeck and Streamlit.
What's next for geo-0
Since the project is not fully completed yet, my next goal is to finalize the chunking and compression process, ensure smooth file handling, and finish building out the user interface. Once complete, I plan to improve scalability, support more data formats, and add more interactive features to make the platform ready for wider use.
Log in or sign up for Devpost to join the conversation.