In Turkey, the independent music scene is heating up and we, as music lovers living in Istanbul occasionally find ourselves trying to discover the newest bands from Bandcamp, follow the curators on Soundcloud or on Radio to catch up what's new and explore their events from Facebook or from street advertising. In this side project, my goal is to create a digital product which is a hub for the local indie music scene and its event ecosystem.
At the core of this project, I simply wanted to gather the disorganized content and store it in one single database: an artist's basic info and his/her related social media accounts. I began the process by designing the data structure and database. Then I developed a web crawler with several spiders and data parsers capable of scraping pages like Facebook, Bandcamp, Twitter, MusicBrainz etc. The crawler - triggered by admins or as a scheduled task - scrapes the page, parss the data and saves it into MySQL. The API is based on GraphQL and designed to serve the data to all clients (currently admin panel and project website itself) with a great flexibility to evolve in time. For the visual aspect of the project, I created a simple brand identity with a visual design system to guide me throughout the work and provide the product with the visual consistency it needs.
This is a work in progress but the end product will be an intelligent system to regularly discover new local artists, collect their disorganized data (including audio samples and events), organize it and make it all available in a single website. Nevertheless, I accomplished what I was aiming at first place: to become familiar with the latest web technologies like React, GraphQL and Apollo API and to design a visual system for a product.