This is a comprehensive web application designed to enhance personal travel safety through real-time context, geo-fenced safety analytics, automated journal logging, and seamless localized translation. It relies on advanced APIs to synthesize visual and textual surroundings.
- AI Lens & Environment Context: Snap a photo or describe surroundings to instantly receive safety ratings, directions, and real-time hazard context.
- Conversational Security Copilot: Context-aware chatbot that retains situational details and assists with localized dilemmas.
- Dynamic Safety Heatmaps: Interactive Leaflet-powered maps demonstrating real-time risk assessments across major geographic zones.
- Instant Localized Translation: On-device contextual translations to bridge language barriers efficiently.
- Travel Journaling API: Restful backend to log, store, and retrieve personal travel histories efficiently securely.
- Frontend: React 19, TypeScript, Vite, Tailwind CSS (with arbitrary Claymorphism UI layers), Framer Motion, React-Leaflet
- Backend: Node.js, Express.js (REST API architecture)
- Database: MySQL (using
mysql2/promisewith pooling) - Cloud/AI Services: Google Gemini (generativelanguage v1beta API)
To run this project locally with full features, execute the following steps:
# 1. Clone the repository
git clone https://github.com/your-username/udgama-1.0.git
cd udgama-1.0
# 2. Start the Backend
cd backend
npm install
# Set up your backend .env file (see Environment Variables section)
npm start
# 3. Start the Frontend
cd ../frontend
npm install
# Set up your frontend .env file
npm run devVisit http://localhost:5173 to explore the app!
To securely run this application, duplicate .env.example in both folders and rename them to .env.
frontend/.env:
VITE_GEMINI_API_KEY: Your Google GenAI key for powering the Chatbot, Lens, and Translator components.
backend/.env:
DB_HOST: Hostname of the MySQL serverDB_PORT: Database connection port (e.g., 3306)DB_USER/DB_PASSWORD: Authentication credentials for the databaseDB_NAME: The specific MySQL table (e.g.,s34_hackathon)PORT: (Optional) Defaults to 5000
- Frontend Status: Configured for Vercel/Netlify with
distoptimization via Vite. - Backend Status: Container-ready Express route structure.
- Add persistent user authentication (JWT) for individual security accounts.
- Integrate WebRTC SOS alerts linked directly to emergency dispatches.
- Optimize frontend bundle sizes by lazy loading heavy map packages.