Skip to content

ppapadeas/greece-trig-points

Repository files navigation

🏔️ Hellas Trig Points | vathra.xyz

License EarthArXiv Preprint Zenodo Dataset React Node.js PostgreSQL Docker

🗺️ A crowd-sourced, interactive map dedicated to documenting the Hellenic Army Geographical Service (ΓΥΣ) trigonometric points across Greece.

🌐 Live Demo · ✨ Features · 🛠️ Tech Stack · 📄 Paper · 🚀 Getting Started · 💖 Support · 📝 License

A screenshot of the vathra.xyz map interface showing the new filter capsule, sidebar warning banner, and tag chips


🌐 Live Demo

The project is deployed and accessible at: https://vathra.xyz


✨ Features

  • 🗺️ Interactive Map — A fast, mobile-friendly map displaying over 25,000 trigonometric points
  • 📍 Marker Clustering — Efficiently handles a large number of points for a smooth experience
  • 🎨 Custom Styling — Markers are color-coded and sized based on status and geodetic order
  • 📡 Geolocation — "Find My Location" button to center the map and highlight the nearest point
  • 🔍 Search — Quickly find points by name/ID and fly the map to the location
  • 🗂️ Map Layers — Switch between Map, Topographic, and Satellite views with contour line overlays
  • 📋 Detailed Sidebar — Point information, coordinates (WGS84 & ΕΓΣΑ87), report history, and photos
  • 📊 Statistics Page — Dashboard with charts on point statuses, contributions, and coverage
  • 🧭 AR Compass — Camera-based augmented reality view showing nearby points with direction and distance
  • 🔐 Authentication — Sign in with Google OAuth or passwordless Passkeys (WebAuthn/FIDO2)
  • 📝 User Contributions — Submit status updates, add comments, upload photos, and apply orthogonal tags (access · approach · quality · heritage) about each point
  • ⚠️ Warning Tags — Inaccessible / dangerous points show a warning glyph on the map and a banner in the point sidebar, so future visitors know before they go
  • 🛡️ Admin Panel — Dashboard for administrators to review and moderate reports
  • 📱 Responsive Design — Fully responsive and mobile-friendly using Material UI
  • 🔗 SEO & Social — Dynamic OG images, structured data (JSON-LD), sitemaps, and per-point link previews
  • 📈 Privacy Analytics — Plausible-powered, cookie-free visitor analytics

🛠️ Tech Stack

  • Frontend: React 19 (Vite), MapLibre GL JS, Protomaps, MUI (Material UI), Recharts, react-helmet-async
  • Backend: Node.js, Express 5, Passport.js, @simplewebauthn/server
  • Database: PostgreSQL 17 with PostGIS (hosted on Supabase)
  • Map Tiles: Self-hosted Protomaps PMTiles on Cloudflare R2/Workers (vector tiles + contour lines)
  • Containerization: Docker & Docker Compose for local development
  • Monitoring: Sentry (error tracking + browser tracing + session replay)
  • Deployment:
    • 🖥️ Frontend: Vercel (with serverless functions for OG images & sitemaps)
    • ⚙️ Backend: Fly.io (Frankfurt)
    • 🔄 CI/CD: GitHub Actions

📄 Paper

This project is described in a preprint published on EarthArXiv:

Papadeas, P. (2026). vathra.xyz — Crowdsourced Monitoring of Greece's Geodetic Heritage: Architecture, Empirical Results, and Legal Framework. EarthArXiv. https://doi.org/10.31223/X5VN13

The paper covers the platform architecture, empirical results from the first six months of operation, and the EU/Greek legal framework governing the reuse of geodetic data.

📚 Citing

If you use this software or dataset in your research, please cite:

@article{papadeas2026vathra,
  title   = {vathra.xyz --- Crowdsourced Monitoring of Greece's Geodetic Heritage:
             Architecture, Empirical Results, and Legal Framework},
  author  = {Papadeas, Pierros},
  year    = {2026},
  doi     = {10.31223/X5VN13},
  journal = {EarthArXiv (preprint)},
  url     = {https://doi.org/10.31223/X5VN13}
}

The dataset is archived on Zenodo: DOI


🚀 Getting Started

To run this project locally, you will need Docker Desktop installed.

1. Clone the Repository

git clone https://github.com/ppapadeas/greece-trig-points.git
cd greece-trig-points

2. Configure Environment

Create a .env file in the root directory by copying the .env.example file.

cp .env.example .env

Fill in the required variables in the .env file (like your Google OAuth credentials).

3. Build and Start the Application

From the root directory, run:

docker-compose up -d --build

4. Set Up the Database (First time only)

Wait about 15-20 seconds for the database to initialize, then run the migrations and the setup script:

docker-compose exec backend npm run migrate up
docker-compose exec backend npm run db:setup

5. Run the Frontend Server

In a new terminal, navigate to the frontend directory and run npm run dev.

cd frontend
npm run dev

The application will be available at http://localhost:5173.


💖 Support

vathra.xyz is a volunteer-run, self-funded project. If you find it useful, consider supporting its development:

Ko-fi GitHub Sponsors

Join our community on Discord: Discord


📝 License

This project is open source and licensed under the GNU AGPLv3. See the LICENSE file for details.

About

Interactive crowdsourced map of 25,000+ Hellenic Army (ΓΥΣ) trigonometric survey points across Greece. Report status, upload photos, explore geodetic heritage. | vathra.xyz

Topics

Resources

License

Stars

Watchers

Forks

Contributors