A web application built with Go that displays information about music artists and bands using data from the Groupie Trackers API.
Groupie Tracker is a web-based application that fetches and displays information about various artists and bands, including their members, creation dates, first album dates, concert locations, and tour dates. The application provides search and filtering capabilities to help users find and explore artists.
-
Artist Display: Browse through a collection of artists with their images and names
-
Detailed Artist Information: View comprehensive details about each artist including:
- Band members
- Creation date
- First album release date
- Concert locations and dates
- Tour relations
-
Search Functionality: Search for artists by:
- Artist/Band name
- Member names
- First album date
- Creation date
- Concert locations
-
Advanced Filtering: Filter artists by multiple criteria:
- Creation date range
- First album date range
- Number of members (1-8+)
- Concert locations
- Language: Go 1.18
- Frontend: HTML, CSS, JavaScript
- Templating: Go HTML Templates
- API: Groupie Trackers API
groupie-tracker/
βββ main.go # Application entry point
βββ go.mod # Go module file
βββ internals/
β βββ handlers/
β βββ handlers.go # HTTP handlers and routing logic
βββ models/
β βββ artist_struct.go # Artist data structure and API fetching
β βββ dates_struct.go # Dates data structure
β βββ location_struct.go # Location data structure
β βββ relation_struct.go # Relation data structure
β βββ transcription_struct.go # Data transcription structures
βββ tools/
β βββ gerenateData.go # API data generation and aggregation
β βββ getArtist.go # Individual artist retrieval
β βββ getLocation.go # Location data processing
β βββ filterRecup.go # Filter logic implementation
β βββ printSearchBar.go # Search functionality
βββ static/
β βββ style.css # Stylesheet
β βββ filtre.js # Filter JavaScript
βββ templates/
βββ base.html # Base template
βββ home.html # Home page
βββ artist.html # Artist detail page
βββ searchResult.html # Search results page
βββ filter.html # Filter page
βββ errors.html # Error page
βββ filter*.tmpl # Filter component templates
- Go 1.18 or higher installed on your system
- Internet connection (to fetch data from the API)
- Clone the repository:
git clone https://github.com/yourusername/groupie-tracker.git
cd groupie-tracker- Run the application:
go run main.go- Open your browser and navigate to:
http://localhost:8084
- Browse through the collection of artists
- Click on any artist card to view detailed information
- View comprehensive information about the selected artist
- See concert locations and dates
- Explore band members and history
- Use the search bar to find artists by various criteria
- Results show matching artists with highlighted search terms
- Access the filter page to apply multiple filters
- Combine different filter criteria:
- Select creation date range
- Select first album date range
- Choose number of band members
- Filter by concert locations
The application uses the following routes:
/- Home page displaying all artists/artist?Id={id}- Artist detail page/search- Search results page/filter- Filtered results page/static/*- Static files (CSS, JS)
The application handles the following HTTP errors:
- 400 - Bad Request
- 404 - Page Not Found
- 405 - Method Not Allowed
- 500 - Internal Server Error
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Groupie Trackers API for providing the artist data
- Zone01 for the project specifications
β Star this repository if you found it helpful! β
Made with β€οΈ from πΈπ³