This project enhances the original Groupie Tracker by adding a full map-based geolocation system for artist concerts.
- Converts concert locations (e.g.,
Berlin Germany) into geographic coordinates using geocoding. - Displays all concerts for a selected artist on a world map using Leaflet.js.
- Connects concert locations with a red polyline in chronological order.
- Consolidates multiple dates in the same city under one marker (cleaner design).
- Fully integrated into the existing artist page, with a fullscreen map option.
- Responsive frontend with styled popups, numbers, and date formatting.
- Go (Golang) for backend API and logic
- HTML / CSS / JS for frontend
- Leaflet.js for map rendering
- OpenStreetMap tiles
- No external Go libraries used — only the Go standard library
groupie-tracker-geolocalization/
├── main.go
├── web/
│ ├── server.go # Starts the HTTP server
│ ├── handlers.go # Route logic (e.g. artistLocationsHandler)
│ └── ...
├── data/
│ ├── fetch.go # Fetches data from external API
│ ├── geocode.go # Resolves location names to coordinates
│ └── ...
├── models/
│ └── types.go # Struct definitions for artists, locations, etc.
├── templates/
│ └── artist.html # Includes map section and popup rendering
│ └── ...
├── static/
│ └── js/map.js # Fetches & renders map locations
│ └── ...
└── README.md
go run .Then open:
http://localhost:8080
Click on any artist → scroll to the map section.
- ✅ Only standard Go packages used.
- ✅ Uses geocoding to resolve concert addresses.
- ✅ Concert locations sorted & connected chronologically.
- ✅ Multiple concerts in one city are grouped under one marker.
- ✅ Clear, functional user interface.
- ✅ Good code practices and structure.
- Learn to work with JSON, HTTP, and templates in Go
- Understand geocoding and map APIs
- Improve frontend skills with real-world data
- Practice clean code and error handling
- Bridge backend and frontend in a meaningful way
This project is licensed under the MIT License.