A web-based Go application that visually presents data from a RESTful music artist API. Groupie Tracker displays artist profiles, their members, debut dates, and upcoming tour locations through a clean interface. The project is fully modular, combining Goβs powerful backend capabilities with HTML, CSS, and JavaScript for a dynamic frontend.
- π About
- π File Structure
- β¨ Features
- π Usage Instructions
- π Live Demo
- π Future Plans
- π€ Contributions
- π Acknowledgements
- π License
Groupie Tracker is a music-focused web application that fetches and displays data from a third-party API to showcase artists, their members, debut albums, and upcoming tour dates. The project helped me understand how to consume and integrate public APIs, develop a Go backend that communicates with a REST API and display said data, and design a responsive user interface using templating and static assets. It mimics a booking-style showcase for bands/artists and serves as a foundation for future feature-rich web apps.
.
βββ README.md
βββ assets # Static frontend assets
β βββ css # page styling
β β βββ about.css
β β βββ index-css # Component-specific CSS files
β β βββ index_banner.css
β β βββ index_button.css
β β βββ index_card_content.css
β β βββ index_card_layout.css
β β βββ index_footer.css
β β βββ index_header.css
β βββ images # Image assets
β β βββ 01_founders_logo.jpeg
β β βββ github.png
β β βββ guitar.jpg
β β βββ guitarist.jpg
β β βββ headphones_icon.jpg
β β βββ html_black_tag.jpg
β β βββ html_tag.jpg
β β βββ json_icon.jpg
β β βββ music_note_clipart.png
β β βββ singer.jpg
β β βββ wallpaper.jpg
β βββ js # Javascript for interactivity
β βββ script.js
βββ cmd # Main server entry point and program command
β βββ main.go
βββ go.mod
βββ handlers # Route logic
β βββ about.go
β βββ index.go
β βββ templates.go
β βββ tourdates.go
βββ internal # Internal API fetching logic
β βββ fetch.go
βββ models # Structs and shared data
β βββ artist.go
βββ templates # HTML files rendered to the user
βββ about.html
βββ index.html
βββ tour-dates.html
11 directories, 31 files
- πΈ Displays band/artist profiles, members, and debut info
- π View a list of upcoming concert/tour dates
- π Fully functional web interface powered by Goβs
net/http - π§© Modular structure with separation of concerns (handlers, models, internal logic)
- π¨ Clean frontend layout using CSS and responsive image assets
Clone the repository to your local machine:
git clone https://github.com/IbsYoussef/Groupie-Tracker.git
cd groupie-trackergo run ./cmd
Visit http://localhost:8080 to view the application in your browser.
π groupie-tracker-b9ur.onrender.com
Here are a few enhancements I plan to add in future updates:
-
ποΈ Filtering search feature: Allow users to filter artist data
-
π Geolocalisation: Display concert locations on a visual map
-
π Search text input functionality: Allows users to search for specific text input or artist data
Contributions are welcome! If you'd like to help improve Groupie Tracker, please follow these steps:
-
Fork the Repository:
Click the "Fork" button at the top-right of the repository page to create your own copy of the project. -
Create a New Branch:
Create a new branch for your feature or bug fix:git checkout -b feature-or-bugfix-description
-
Make your Changes: Implement your changes and ensure that your code adheres to the project's style guidelines. Tip: Write or update tests as needed.
-
Commit and Push your Changes: Commit your changes with a clear, descriptive message and push your branch to your forked repository:
git commit -m "Add: description of your changes" git push origin feature-or-bugfix-description -
Open a Pull Request: Open a pull request (PR) from your branch to the main repository. Please include a clear description of your changes and the motivation behind them. If you're not sure about a major change, open an issue first to discuss your ideas.
Thank you for helping make ascii-art-web even better!
- Created as part of my Go learning journey at 01 Founders
This project is licensed under the MIT License.