A crowd-sourced, interactive map dedicated to documenting the Hellenic Army Geographical Service (ΓΥΣ) trigonometric points across Greece.
Live Demo · Features · Tech Stack · Getting Started · Deployment · License
---The project is deployed and accessible at: https://vathra.xyz
- 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, high-performance user experience.
- Custom Styling: Markers are color-coded and sized based on their reported status and geodetic order.
- Geolocation: A "Find My Location" button to center the map on the user's current position and highlight the nearest point.
- Search: A search bar to quickly find points by name/ID and fly the map to the location.
- Map Layers: Switch between Map, Topographic, and Satellite views.
- Detailed Sidebar: Clicking a point reveals a sidebar with detailed information, coordinates (WGS84 & ΕΓΣΑ87), and a history of user reports and photos.
- Statistics Page: A dashboard with charts and stats on point statuses, user contributions, and more.
- Social Login: Easy and secure user authentication via Google accounts.
- User Contributions: Logged-in users can submit status updates, add comments, and upload photos.
- Admin Panel: A protected dashboard for administrators to view, approve, and reject user-submitted reports, as well as a full data table of all points.
- Responsive Design: The UI is fully responsive and mobile-friendly using Material UI.
This project is built with a modern, full-stack architecture.
- Frontend: React 19 (Vite), Leaflet, MUI (Material UI), Recharts
- Backend: Node.js, Express.js, Passport.js
- Database: PostgreSQL with the PostGIS extension (hosted on Supabase)
- Containerization: Docker & Docker Compose for local development
- Deployment:
- Frontend: Vercel
- Backend: Fly.io
- CI/CD: GitHub Actions
To run this project locally, you will need Docker Desktop installed.
git clone [https://github.com/ppapadeas/greece-trig-points.git](https://github.com/ppapadeas/greece-trig-points.git)
cd greece-trig-pointsCreate a .env file in the root directory by copying the env.example file.
cp .env.example .envFill in the required variables in the .env file (like your Google OAuth credentials).
From the root directory, run:
docker-compose up -d --buildWait about 15-20 seconds for the database to initialize, then run the migrations and the setup script:
# From the root directory
docker-compose exec backend npm run migrate up
docker-compose exec backend npm run db:setupIn a new terminal, navigate to the frontend directory and run npm run dev.
cd frontend
npm run devThe application will be available at http://localhost:5173.
This project is open source and licensed under the GNU AGPLv3. See the LICENSE file for details.
