oramap/README.md
dvirlabs 5a7585f755
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Convert to full-stack app with Docker support
- Restructured app with backend/ and public/ directories
- Created Express backend with /api/search endpoint
- Added health check endpoint at /api/health
- Optimized Dockerfile with multi-stage build
- Added docker-compose.yml for easy deployment
- Updated README with comprehensive documentation
- Added .dockerignore for optimized builds
- Backend listens on 0.0.0.0 for Docker compatibility
2026-03-24 08:47:26 +02:00

3.4 KiB
Raw Blame History

🗺️ Ora Map - Family Location Mapping Application

A full-stack web application for mapping and searching family locations in Yemen using interactive maps.

📋 Table of Contents

Features

  • 🔍 Family Search: Search for families by name with autocomplete suggestions
  • 🗺️ Interactive Map: Leaflet-based map with multiple tile layer options
  • 📍 Location Markers: View family locations with city information
  • 🎨 Modern UI: Clean and responsive design
  • 🐳 Docker Ready: Containerized for easy deployment
  • 💚 Health Checks: Built-in health monitoring

🛠️ Tech Stack

Backend:

  • Node.js
  • Express.js
  • JSON data storage

Frontend:

  • HTML5/CSS3
  • JavaScript (ES6+)
  • Leaflet.js (interactive maps)
  • Fuse.js (fuzzy search)

DevOps:

  • Docker
  • Docker Compose

📁 Project Structure

oramap/
├── backend/
│   ├── server.js           # Express server
│   ├── package.json        # Backend dependencies
│   └── data/
│       └── families.json   # Family location data
├── public/
│   ├── index.html          # Frontend HTML
│   ├── script.js           # Frontend JavaScript
│   └── style.css           # Styles
├── Dockerfile              # Multi-stage Docker build
├── docker-compose.yml      # Docker Compose configuration
└── .dockerignore          # Docker ignore rules

🚀 Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • Docker & Docker Compose (optional, for containerized deployment)

Local Development

  1. Install backend dependencies:
cd backend
npm install
  1. Start the server:
npm start
  1. Open your browser: Navigate to http://localhost:3000

🐳 Docker Deployment

  1. Build and start the application:
docker-compose up -d
  1. View logs:
docker-compose logs -f
  1. Stop the application:
docker-compose down

Using Docker directly

  1. Build the image:
docker build -t oramap:latest .
  1. Run the container:
docker run -d -p 3000:3000 --name oramap-app oramap:latest
  1. Check health:
docker ps

💻 Development

Running in Development Mode

cd backend
npm run dev

Adding New Families

Edit backend/data/families.json and add entries in the following format:

{
  "family": "Family Name (Hebrew)",
  "city": "City Name (Hebrew)",
  "lat": 15.3545,
  "lng": 44.2064
}

📡 API Endpoints

Search Families

GET /api/search?family={familyName}

Returns matching family records with location data.

Example:

curl "http://localhost:3000/api/search?family=Kafe"

Health Check

GET /api/health

Returns server health status.

Example Response:

{
  "status": "ok",
  "timestamp": "2026-03-24T10:30:00.000Z"
}

🗺️ Available Family Names

  • Kafe (קאפח)
  • Shiheb (שחב-שבח)
  • Uzeyri (עזירי-עוזרי)
  • Salumi (סלומי-שלומי)
  • Afgin (עפג'ין)
  • Eraki (עראקי)

📝 License

ISC

🤝 Contributing

Contributions, issues, and feature requests are welcome!