Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
- 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
🗺️ 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
- Install backend dependencies:
cd backend
npm install
- Start the server:
npm start
- Open your browser:
Navigate to
http://localhost:3000
🐳 Docker Deployment
Using Docker Compose (Recommended)
- Build and start the application:
docker-compose up -d
- View logs:
docker-compose logs -f
- Stop the application:
docker-compose down
Using Docker directly
- Build the image:
docker build -t oramap:latest .
- Run the container:
docker run -d -p 3000:3000 --name oramap-app oramap:latest
- 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!
Description
Languages
JavaScript
61.6%
CSS
23.4%
HTML
7.9%
Dockerfile
6.2%
Smarty
0.9%