Prompt for Replit AI: Project Name: KiroServices – Somali Property Marketplace with Live Mogadishu Map & Sample Data Goal: Build a full-stack property marketplace system with: Backend API for property listings (buy/rent) with geolocation. Frontend Web App with an interactive Mogadishu satellite map showing live listings from API. Mobile App (React Native) replicating map and property browsing features for Android & iOS. Tech Stack: Backend: PHP (Laravel) or Node.js (Express) Database: MySQL or PostgreSQL Frontend Web: React (with MapLibre GL JS or Mapbox GL JS for maps) Mobile App: React Native Maps Provider: MapLibre or Mapbox (satellite basemap) Backend API Requirements: Base URL: https://yourdomain.com/api Endpoints: GET /properties – Fetch all property listings (filters: type, min_price, max_price, lat/lng/radius). GET /properties/{id} – Get single property details. POST /properties – Add property (auth required). PUT /properties/{id} – Update property (auth required). DELETE /properties/{id} – Delete property (admin only). GET /properties/map – Lightweight endpoint for map markers (returns: id, title, type, price, latitude, longitude, image_url). Database Schema: users: id, name, email, password, role, phone, created_at, updated_at properties: id, title, description, price, type (buy/rent), latitude, longitude, owner_id, created_at, updated_at property_images: id, property_id, image_url API Example Response (Map Endpoint): json Copy Edit [ { "id": 1, "title": "3-Bedroom Apartment", "price": 85000, "type": "Buy", "latitude": 2.046934, "longitude": 45.318162, "image_url": "https://example.com/images/property1.jpg" }, { "id": 2, "title": "Beachfront Villa", "price": 1200, "type": "Rent", "latitude": 2.041112, "longitude": 45.326871, "image_url": "https://example.com/images/property2.jpg" } ] Sample Property Data (Insert at Migration or Seed Step): json Copy Edit [ { "title": "3-Bedroom Apartment in Hamar Weyne", "description": "Spacious apartment close to the market with ocean view.", "price": 85000, "type": "Buy", "latitude": 2.046934, "longitude": 45.318162, "image_url": "https://example.com/images/apartment.jpg" }, { "title": "Beachfront Villa in Lido", "description": "Luxury villa directly on Lido Beach with private pool.", "price": 1200, "type": "Rent", "latitude": 2.041112, "longitude": 45.326871, "image_url": "https://example.com/images/villa.jpg" }, { "title": "Commercial Land in KM4", "description": "Prime location plot suitable for a shopping mall.", "price": 200000, "type": "Buy", "latitude": 2.049512, "longitude": 45.318711, "image_url": "https://example.com/images/land.jpg" }, { "title": "Furnished Office Space in Hodan", "description": "Modern office space, perfect for small businesses.", "price": 800, "type": "Rent", "latitude": 2.043512, "longitude": 45.320511, "image_url": "https://example.com/images/office.jpg" } ] Frontend Web Map Requirements: Initial View: Centered on Mogadishu (lat: 2.046934, lng: 45.318162), zoom level 12. Basemap: Satellite style. Markers: Red for type: Buy. Blue for type: Rent. Popups: Show title, price (USD), type, and image thumbnail. Legend: Fixed box in top-left explaining marker colors. Live Data: Fetch from /properties/map on load and refresh every 60 seconds without full reload. Responsive Design: Full-screen map on all devices. Performance: Use marker clustering for dense areas. Mobile App Requirements (React Native): Same map view and functionality as the web version. List view toggle to see properties in a scrollable list. Tap marker → see popup details with link to full property page. Pull-to-refresh for updating listings. Security & Optimization: Store API keys in .env file. Optimize images for Somali internet speeds. Cache API responses locally for faster reloads. Expected Output from Replit: Backend: Fully functional REST API with endpoints, DB migrations, JWT authentication, and seeded sample data. Frontend Web: React app with Mogadishu satellite map, dynamic markers from API, legend, popups, and clustering. Mobile App: React Native app with identical features for Android & iOS. Documentation: README.md with setup, installation, and deployment steps. Bonus: Implement filters (type, price, location radius) in both web and mobile. Enable clicking a popup to open full property details. Add pagination or infinite scroll for property list view.