Inspiration
The inspiration for this project came from the need to capture not just visual content but also the exact context in which it was recorded. Traditional video recordings lack location awareness, making it difficult to understand where and how a journey unfolded. By combining video recording with real-time GPS tracking and map visualization, this project aims to create a more meaningful and traceable form of digital documentation, especially useful for travel logging, safety monitoring, and field-based activities.
What it does
The application records videos along with the user’s real-time location. While recording, it continuously tracks the user’s movement and stores the entire route. During playback, the video is shown together with a map that highlights the exact path covered at the time of recording, allowing users to see where the video was captured.
How we built it
We built the Geo-Tagged Video Recording App using Flutter with GetX for state management and Hive for fast local storage. The camera module records videos while the Geolocator package continuously tracks the user’s location. Each GPS point (latitude, longitude, timestamp, speed, heading) is captured during recording and stored as a structured path linked to the video.
Videos and their metadata are saved locally using Hive, and thumbnails are generated using the video_thumbnail package. For visualization, Google Maps is integrated to display the recorded path as a polyline during playback, synchronized with the video timeline.
The app follows a clean MVC architecture, separating camera logic, location tracking, playback control, and UI layers for scalability and maintainability.
Challenges we ran into
Synchronizing real-time GPS data with video timestamps Handling camera lifecycle issues and preventing crashes during recording Ensuring videos appear instantly in the gallery without restarting the app Managing state persistence with bottom navigation and GetX controllers Drawing live path tracking on Google Maps while recording Keeping playback map updates in sync with video scrub bar
Accomplishments that we're proud of
Successfully built true geo-tagged video recording (not just static location) Stored and replayed full movement paths during video playback Achieved offline-first storage using Hive Implemented smooth video playback with map synchronization Designed a scalable architecture suitable for real-world expansion
What we learned
Successfully built true geo-tagged video recording (not just static location) Stored and replayed full movement paths during video playback Achieved offline-first storage using Hive Implemented smooth video playback with map synchronization Designed a scalable architecture suitable for real-world expansion
What's next for Geo tagged video recording app
Deep understanding of Flutter camera APIs and limitations Real-time location streaming and performance optimization Practical experience with GetX state management Efficient local persistence with Hive adapters Synchronizing multiple asynchronous streams (video + GPS + UI) Debugging platform-level issues like camera buffers and map rendering
Built With
- camera
- flutter(dart)
- geolocator
- getx
- google-maps
- hive
Log in or sign up for Devpost to join the conversation.