Mtaani is a tourism platform that combines AI assistance, real-time safety monitoring, verified local businesses, and community-driven insights to help travelers discover and navigate Nairobi safely.
- User authentication with phone verification
- Real-time social feed with posts and interactions
- AI travel assistant with conversation memory
- Interactive map with PostGIS geospatial data
- Emergency system with SOS and location sharing
- Dark and light mode support
- Create, view, and interact with posts
- Like, comment, repost, share, and bookmark with live counters
- Read receipts with delivery and read status
- Typing indicators in feed comments
- Online presence tracking
- Conversation memory across sessions
- Nairobi knowledge base integration
- Semantic search for relevant information
- Personalized recommendations based on user preferences
- Loading skeletons for content fetching
- Pull-to-refresh on mobile devices
- Optimistic updates for instant post creation
- Glassmorphic floating chat panel
- Infinite scroll pagination
- Backend: Elixir 1.19+, Phoenix 1.7.21, LiveView 1.0.18
- Database: PostgreSQL 18 with PostGIS 3.6
- Caching: Redis for read receipts and session management
- Vector Database: Pinecone for RAG memory
- AI: Groq API with Llama 3, HuggingFace embeddings
- Frontend: Tailwind CSS, MapLibre GL
- Maps: OpenStreetMap with PostGIS geospatial queries
- Elixir 1.19+ and Erlang/OTP 26+
- PostgreSQL 16+ with PostGIS
- Node.js 22+
- Redis
- Git
Clone the repository:
git clone https://github.com/philaturo/Mtaani.git
cd Mtaani ```Install Elixir dependencies:
mix deps.getInstall Node Dependancies
cd assets && npm install && cd ..Configure your database in config/dev.exs with your PostgreSQL credentials. Create and migrate the database with PostGIS
mix ecto.create
mix ecto.migrate
psql -U postgres -d mtaani_dev -c "CREATE EXTENSION IF NOT EXISTS postgis;"Start Redis (Windows):
cd redis && ./redis-server.exeStart the Phoenix server:
mix phx.serverVisit http://localhost:4000 to see the application.
Create a .env file in the project root:
# Groq AI API Key (required)
GROQ_API_KEY=gsk_your_key_here
# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
# Pinecone Vector DB (for RAG)
PINECONE_API_KEY=your_key_here
PINECONE_ENVIRONMENT=gcp-starter
PINECONE_INDEX=mtaani
# HuggingFace API (for embeddings)
HUGGINGFACE_API_KEY=hf_your_token_here- User authentication
- Social feed with X-style interactions
- AI assistant with RAG and memory
- Real-time chat with read receipts
- Emergency safety features
- PostGIS geospatial data
- Glassmorphic UI with dark and light mode
- RAG knowledge base expansion
- Map enhancements
- Image and voice sharing
- Push notifications
- Trip planning
- WhatsApp integration
- Native mobile application