Skip to content

TanakAiko/groupie-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Groupie Tracker

A web application built with Go that displays information about music artists and bands using data from the Groupie Trackers API.

Go HTML5 CSS3 JavaScript API

πŸ“‹ Description

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.

✨ Features

  • 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

πŸ’» Technologies Used

  • Language: Go 1.18
  • Frontend: HTML, CSS, JavaScript
  • Templating: Go HTML Templates
  • API: Groupie Trackers API

πŸ“‚ Project Structure

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

πŸš€ Getting Started

Prerequisites

  • Go 1.18 or higher installed on your system
  • Internet connection (to fetch data from the API)

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/groupie-tracker.git
cd groupie-tracker
  1. Run the application:
go run main.go
  1. Open your browser and navigate to:
http://localhost:8084

πŸ“Έ Preview

Groupie Tracker Screenshot

πŸ“– Usage

Home Page

  • Browse through the collection of artists
  • Click on any artist card to view detailed information

Artist Detail Page

  • View comprehensive information about the selected artist
  • See concert locations and dates
  • Explore band members and history

Search

  • Use the search bar to find artists by various criteria
  • Results show matching artists with highlighted search terms

Filter

  • 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

🌐 API Endpoints

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)

⚠️ Error Handling

The application handles the following HTTP errors:

  • 400 - Bad Request
  • 404 - Page Not Found
  • 405 - Method Not Allowed
  • 500 - Internal Server Error

🀝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ™ Acknowledgments


⭐ Star this repository if you found it helpful! ⭐

Made with ❀️ from πŸ‡ΈπŸ‡³

About

A Go web application for tracking music 🎡 artists, bands, and their concert tours with advanced search and filtering capabilities.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors