Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HarmonyHub 🎢

Go HTML CSS JavaScript License

Discover artists. Track concerts. Explore music data.
A clean Go-powered music discovery experience.

Features β€’ Tech Stack β€’ Getting Started β€’ Screenshots β€’ Architecture



Overview

HarmonyHub is a web application built with Go, designed for music lovers and concert enthusiasts. The platform brings together detailed artist profiles, concert locations, and performance dates in a clean and accessible interface.

Users can explore bands, discover upcoming and past shows, and search through artists, members, locations, and datesβ€”all from a single application. HarmonyHub focuses on clarity, performance, and ease of use while working entirely with live API data.


✨ Features

HarmonyHub provides the following core functionality:

  • Artist Profiles πŸ“Έ
    View detailed information about artists and bands, including formation years, debut albums, and members.

  • Concert Tracking πŸ“…
    Access concert dates and locations with structured, real-time data.

  • Smart Search πŸ”
    Search artists, band members, locations, and dates using an intelligent, case-insensitive search bar with live suggestions.

  • User-Friendly Design πŸ’»
    Clean and responsive interface that adapts seamlessly across devices.

  • Reliable Performance ⚑
    Graceful error handling and stable server-side processing using Go.


πŸ› οΈ Technologies Used

HarmonyHub is built using the following technologies:

  • Go 🐹 – Backend server, routing, and data processing
  • HTML 🌐 – Page structure and templating
  • CSS 🎨 – Responsive styling and layout
  • JavaScript βš™οΈ – Interactive search and client-side behavior
  • REST API πŸ”„ – External data source for artists and concerts



🎯 Project Objective

HarmonyHub processes structured data from an external API to create an intuitive music discovery experience.

Core Data Entities

  1. Artists πŸ“Έ – Names, images, formation years, first albums, and members
  2. Locations πŸ“ – Concert venues and cities
  3. Dates πŸ“… – Performance schedules
  4. Relations πŸ”— – Connections between artists, dates, and locations

Data is visualized using cards, tables, and dynamic UI components rendered through server-side templates.


πŸš€ Getting Started

Prerequisites

  • Go version 1.21 or higher

Installation & Setup

  1. Clone the repository:

    git clone https://github.com/sahmedhusain/harmonyhub.git
  2. Navigate to the project directory:

    cd harmonyhub
  3. Run the application:

    go run main.go
  4. Open your browser and visit:

    http://localhost:8080
    

πŸ“– How to Use

  • Browse the home page to view a list of available artists.
  • Click on any artist to access detailed band and concert information.
  • Use the search bar to quickly filter results by artist name, band member, location, or date.

Search Examples

  • Typing "phil" may return suggestions such as:
    • Phil Collins – member
    • Phil Collins – artist/band

πŸ“Έ Screenshots

Home Page

Home Page
Browse artists and access the smart search.

Artist Details

Artist Details
View band history and concert information.

Search Results

Search Results
Live search suggestions and filtered results.


πŸ› οΈ Application Architecture

flowchart TD
    User[User] --> Browser[Browser]
    Browser --> Server[Go Server]
    Server --> API[REST API]
    API --> Server
    Server --> Templates[Templates]
    Templates --> Browser
    Server --> Handlers[Handlers]
    Server --> ErrorManagement[Error Management]
Loading

Data Handling

  • Fetches and processes API data
  • Stores structured data using Go structs for efficiency

Server-Side

  • Handlers – Manage routing and page rendering
  • Templates – HTML templates for dynamic views
  • Error Management – Ensures stability and clear feedback

Front-End

  • Styling – Consistent, responsive layout
  • JavaScript – Powers live search and suggestions

The architecture is designed for scalability and easy feature expansion.


πŸ” Search System Details

The search functionality supports:

  • Artist and band names
  • Band members
  • Concert locations
  • Album release dates and creation years

Additional behavior:

  • Case-insensitive input
  • Live suggestions while typing
  • Clear labeling for each result (e.g., "Freddie Mercury – member")

🀝 Contributing

Contributions are welcome. Fork the repository, implement improvements, and submit a pull request. Please follow Go best practices and include tests where applicable.


πŸ“„ License

This project is licensed under the MIT License. See LICENSE.md for details.


πŸ™ Acknowledgments

Developed as part of a Go learning journey with a focus on API integration and web application development. Credit to the original API providers.


πŸ‘₯ Authors


πŸ”— API Reference


πŸ“š What I Learned

  • Structuring and handling API-driven data
  • Working with JSON in Go
  • Server-side rendering using templates
  • Building interactive web interfaces

✨ Visual & UX Highlights

  • Smooth page transitions and responsive layout
  • Clean typography for readability
  • Consistent card-based UI design
  • Live search feedback with instant suggestions

About

A sleek Go-based web app for music lovers! Discover artists, concert dates, and locations with an interactive search bar. Built with HTML, CSS, and JavaScript.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages