A modern, intelligent web-based AI assistant that helps users find affordable kosts (boarding houses) using Google's Agent Development Kit (ADK) and Gemini Flash 2.0 for advanced reasoning and natural conversations.
- AI-Powered Search - Natural language search with Google Gemini AI
- Real-time Data Intelligence - Location-specific pricing with current market rates
- Smart Filters - Budget, location, facilities, and type filtering
- Comprehensive Information - Detailed listings with universities, malls, transport access
- External Platform Integration - Direct links to Mamikos, OLX, Rumah123, etc.
- WhatsApp Integration - Direct contact via WhatsApp with proper formatting
- Responsive Design - Mobile-first design that works on all devices
- SEO Optimized - Built for search engine visibility
- Fast Performance - Optimized for Core Web Vitals
- Real-time Availability - Live status updates with 85% accuracy rate
- π Theme Support - Light/Dark mode switching with persistence
- π Multi-language - Indonesian and English support
- πΊοΈ Map Integration - Google Maps integration for location visualization
- πΎ Local Storage - Fast local JSON database with no Firebase dependency
| Component | Technology |
|---|---|
| AI Agent | Google ADK + Gemini Flash 2.0 (Vertex AI) |
| Frontend | Next.js App Router, Tailwind CSS, ShadCN UI |
| Database | Local JSON storage (db/kosan.json) |
| Search | Google Programmable Search API |
| Maps | Google Maps API |
| External Sources | Mamikos, OLX, Rumah123, Airbnb, Traveloka |
| Hosting | Vercel, cPanel, Localhost |
| Languages | TypeScript, React |
-
Clone the repository
git clone https://github.com/kangpcode/mbah-kost.git cd mbah-kost -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local # Edit .env.local with your API keys -
Run the development server
npm run dev
-
Open your browser
http://localhost:3000
GOOGLE_API_KEY=your-google-api-key
CUSTOM_SEARCH_ENGINE_ID=your-custom-search-id
GOOGLE_MAPS_API_KEY=your-maps-api-key
VERTEX_AI_MODEL=gemini-2.0-flashNEXT_PUBLIC_BASE_URL=http://localhost:3000
NEXT_PUBLIC_THEME_DEFAULT=system
SECRET_ENCRYPTION_KEY=your-32-character-secret-keyThe application uses a local JSON database (db/kosan.json) for fast performance. Data can be synchronized with external sources through the sync API.
- Mamikos - Direct integration with source URLs
- OLX - Platform-specific URL generation
- Rumah123 - Real estate platform integration
- Airbnb & Traveloka - Alternative accommodation sources
npm run syncGET /api/kosts- Get all kostsGET /api/search- Search kosts with filtersPOST /api/sync- Sync data from external sourcesGET /api/kosts/:id- Get specific kost detailsGET /api/sources- Get available external sources
- Modern Design - Clean, professional interface with Tailwind CSS
- Color Palette - Black, Blue (#3B82F6), Yellow (#FCD34D), Green (#10B981)
- Responsive Layout - Mobile-first design with breakpoints
- Smooth Animations - Subtle transitions and micro-interactions
- Accessibility - Proper contrast ratios and keyboard navigation
The AI assistant is built with Google ADK and powered by Gemini Flash 2.0. It features:
- Friendly Personality - Wise, helpful, elderly Indonesian character
- Natural Conversations - Advanced reasoning and context understanding
- Smart Recommendations - Personalized kost suggestions
- External Integration - Direct links to external platforms
- Source Attribution - Clear indication of data sources
- Fallback Search - Automatic external search when local results are insufficient
npm run build
vercel deploy- Build the application:
npm run build - Upload the
outfolder to your hosting - Configure URL rewriting for SPA
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]The application is built with mobile-first design principles and supports:
- Responsive breakpoints
- Touch-friendly interactions
- Progressive Web App (PWA) capabilities
- Offline support for cached data
- Environment variable protection
- Input sanitization
- XSS protection
- Rate limiting for API endpoints
- Secure data storage
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Run E2E tests
npm run test:e2e- One-Click Access: Direct links to external platforms
- Platform Support: Mamikos, OLX, Rumah123, Airbnb, Traveloka
- Realistic URLs: Platform-specific URL generation
- Contact Integration: Direct WhatsApp and platform messaging
// Platform-specific URL patterns
- Mamikos: https://www.mamikos.com/kos/[kos-name-slug]
- OLX: https://www.olx.co.id/item/[kos-name-slug]-iid-[id]
- Rumah123: https://www.rumah123.com/kost/[kos-name-slug]- Click "Lihat Sumber" to view original listing
- Direct WhatsApp contact via "Hubungi" button
- New tab opening for seamless browsing
- Local Storage - Fast data access with JSON database
- Optimized Images - Next.js Image optimization
- Code Splitting - Automatic route-based splitting
- Caching - API response caching and static generation
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google ADK and Gemini Flash 2.0 for AI capabilities
- ShadCN UI for beautiful components
- Tailwind CSS for styling
- Next.js team for the amazing framework
For support, email support@mbahkost.com or join our Discord server.
Mbah Kost - Making kost hunting easier with AI! π β¨