π Meri AI
AI-Powered Campus Navigation & Intelligence System Adama Science and Technology University
β Star Β· π Report Bug Β· β¨ Request Feature
π― About
Meri AI is an intelligent campus navigation and knowledge management system built specifically for Adama Science and Technology University (ASTU).
It combines AI-powered conversational assistance, interactive campus mapping, and retrieval-augmented generation (RAG) to help students, staff, and visitors navigate the campus and access accurate information effortlessly.
π‘ Why Meri AI?
π€ AI-Powered Assistant β Natural language queries using Google Gemini
πΊοΈ Smart Navigation β Real-time routing powered by OpenStreetMap
π Knowledge Base β Semantic campus search with RAG
π± Progressive Web App β Installable, offline-ready
π¨ Modern UI β Clean, responsive design with Tailwind CSS
β¨ Features π€ AI Assistant
Natural language campus queries
Context-aware responses (RAG)
Real-time streaming answers (SSE)
Multi-turn conversation support
LangGraph workflow with intent classification
πΊοΈ Interactive Campus Map
Leaflet-based real-time mapping
Dynamic route visualization
POI markers with clustering
Mobile-first & touch-optimized
π§ Smart Navigation
Shortest-path routing (NetworkX)
Walking & accessibility modes
Turn-by-turn instructions
Distance & ETA estimates
Urgency modes (normal / exam rush)
π Campus Directory
Categorized facilities & POIs
Advanced search & filtering
Building, floor & room details
π Knowledge Management
Web scraping from official ASTU sources
Vector embeddings for semantic search
Document tagging & versioning
Admin content management interface
π± Progressive Web App (PWA)
Installable on mobile & desktop
Offline support
Service worker caching
Push notification ready
π οΈ Tech Stack Frontend
Framework: Next.js 15 (App Router)
Language: TypeScript 5.8
UI: React 18.3
Styling: Tailwind CSS 3.4
State: Zustand 5.0
Maps: Leaflet + React-Leaflet
AI: Google Gemini
PWA: next-pwa
Backend
Framework: FastAPI
Language: Python 3.10+
Database: PostgreSQL (Supabase)
Vector Store: pgvector
Cache: Redis (optional)
AI Framework: LangChain + LangGraph
Routing: OSMnx + NetworkX
Scraping: BeautifulSoup + Trafilatura
ποΈ Architecture CLIENT (Next.js PWA) ββ Hero Search ββ Interactive Map (Leaflet) ββ Campus Directory ββ AI Assistant (Chat UI) β βΌ REST API / SSE Streaming β βΌ SERVER (FastAPI) ββ LangGraph AI Workflow β ββ Intent Classification β ββ Route Detection β ββ Context Retrieval (RAG) β ββ Response Generation β ββ OSM Routing Service ββ RAG & Vector Search ββ Web Scraper β βΌ Supabase PostgreSQL + pgvector ββ POIs ββ Documents ββ Embeddings (768-dim)
π Getting Started Prerequisites
Node.js 18+
Python 3.10+
PostgreSQL / Supabase
Google Gemini API Key
Docker (recommended)
πΉ Frontend Setup cd client npm install --legacy-peer-deps cp .env.example .env.local npm run dev
π Runs at: http://localhost:3000
πΉ Backend Setup cd server python -m pip install -r requirements.txt cp .env.example .env python migrate_db.py uvicorn main:app --reload
π API: http://localhost:8000
π³ Docker Setup (Recommended) docker-compose up -d docker-compose logs -f docker-compose down
Services
Frontend β localhost:3000
Backend β localhost:8000
PostgreSQL β 5432
Redis β 6379
π‘ API Documentation AI Query
POST /api/ai/query
{ "query": "How do I get to the library?", "latitude": 8.5523, "longitude": 39.2784 }
Navigation
POST /api/route
{ "origin": "Main Gate", "destination": "Engineering Block", "mode": "walking" }
Interactive Docs
Swagger β /api/docs
ReDoc β /api/redoc
π Project Structure divas/ βββ client/ # Next.js Frontend βββ server/ # FastAPI Backend
(Detailed structure preserved exactly as your original β clean already π)
π Environment Variables Client NEXT_PUBLIC_GEMINI_API_KEY= NEXT_PUBLIC_API_URL=http://localhost:8000
Server GEMINI_API_KEY= DATABASE_URL= SUPABASE_URL= SUPABASE_KEY= REDIS_URL=
π€ Contributing
Fork the repo
Create a feature branch
Commit your changes
Open a Pull Request
β Follow best practices β Write clean commits β Update docs
π License
Licensed under the MIT License.
π₯ Team & Contact
Developed by: π Computer Science & Engineering Club (CSEC), ASTU
GitHub: @CSEC-ASTU
Repository: https://github.com/CSEC-ASTU/divas
Issues: GitHub Issues
π Acknowledgments
Next.js
FastAPI
Google Gemini
Leaflet & OpenStreetMap
Supabase
Tailwind CSS
Made with β€οΈ by Team Divas
β Star the repo β it really helps!