Location-Based Alarm System with AI-Powered Place Search
An intelligent location-based alarm system that helps you monitor proximity to places and get notified when you're near your destinations.
- πΊοΈ AI-Powered Place Search - Use Google Gemini AI to search and find locations
- π‘ Real-Time GPS Tracking - Continuous location monitoring with high accuracy
- π― Distance-Based Alarms - Set alarms based on distance (meters)
- β±οΈ Time-Based Alarms - Set alarms based on estimated travel time (walking/driving)
- π Visual Radar Display - Interactive radar view showing all monitored locations
- π Smart Notifications - Browser notifications when alarms trigger
- π Audio Alerts - Sound alerts for proximity warnings
- π± Progressive Web App - Works on mobile and desktop browsers
- π Dark Theme UI - Beautiful dark-themed interface
- π Google Maps Integration - Direct links to view places on Google Maps
- Node.js (v18 or higher)
- npm or yarn
- Google Gemini API Key (Get one here)
-
Clone the repository
git clone https://github.com/toozuuu/GeoSentry.git cd GeoSentry -
Install dependencies
npm install
-
Configure API Key
Get a Gemini API key from Google AI Studio
Create
src/environments/environment.ts(it's in .gitignore for security):export const environment = { production: false, apiKey: 'YOUR_GEMINI_API_KEY_HERE' };
For production builds, also create
src/environments/environment.prod.ts:export const environment = { production: true, apiKey: 'YOUR_GEMINI_API_KEY_HERE' };
-
Run the development server
npm run dev
The app will be available at
http://localhost:3000
npm run buildThe production build will be in the dist/geosentry/browser directory.
- Allow Location Access - Grant the browser permission to access your location
- Search for Places - Use the search bar to find locations using AI-powered search
- Select a Destination - Click on a search result to select it
- Set Alarm Type - Choose between:
- Distance: Trigger when within X meters
- Walking Time: Trigger when X minutes away by walking
- Driving Time: Trigger when X minutes away by driving
- Adjust Threshold - Use the slider to set your desired distance/time
- Set Alarm - Click "Set Alarm" to start monitoring
- Monitor - Watch the radar display and receive notifications when approaching
geosentry/
βββ src/
β βββ app/
β β βββ components/
β β β βββ radar/ # Radar visualization component
β β βββ home/ # Home page component
β β βββ services/
β β β βββ geo.service.ts # Geolocation services
β β β βββ gemini.service.ts # AI place search service
β β βββ app.component.ts # Root component
β β βββ app.routes.ts # Route configuration
β βββ assets/ # Static assets
β βββ environments/ # Environment configurations
β βββ types.ts # TypeScript type definitions
β βββ index.html # Application entry point
β βββ main.ts # Application bootstrap
βββ angular.json # Angular configuration
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
- Angular 18 - Application framework
- Ionic 8 - UI component library
- TypeScript - Programming language
- Google Gemini AI - AI-powered place search
- RxJS - Reactive programming
- Tailwind CSS - Utility-first CSS framework
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini AI for the powerful place search API
- Ionic Framework for the amazing UI components
- Angular team for the robust framework
See SECURITY.md for security policy and vulnerability reporting guidelines.
- Contributing Guide - Guidelines for contributing
- Code of Conduct - Community behavior standards
- Changelog - Version history and updates
Q: Does this work offline?
A: Basic location tracking works, but place search requires an internet connection for the Gemini API.
Q: How accurate is the GPS tracking?
A: Accuracy depends on your device's GPS capabilities. The app uses high-accuracy mode for best results.
Q: Can I use this without an API key?
A: No, the Gemini API key is required for the AI-powered place search feature.
Q: Is my location data stored?
A: No, all location data is processed locally in your browser. No location data is sent to external servers except for place search queries.
Project Link: https://github.com/toozuuu/GeoSentry
Issues: https://github.com/toozuuu/GeoSentry/issues