
Musiikin Suosittelusovellus
Sami Paananen / 9. lokak. 2024
Tämä projekti on musiikin suosittelusovellus, joka käyttää koneoppimista generoimaan kappalesuosituksia käyttäjän Spotify-soittolistan perusteella. Sovellus kehitettiin osana kouluprojektia, keskittyen sekä ohjelmointiin että ohjelmistokehityksen elinkaareen (SDLC) Scrum-menetelmää hyödyntäen.
Ominaisuudet
- Käyttäjän rekisteröinti: Mahdollisuus käyttäjien rekisteröityä ja kirjautua sisään.
- Spotify-soittolistojen integrointi: Hae käyttäjän soittolistat Spotify API:n kautta.
- Kappalesuositukset: Generoi kappalesuosituksia vertaamalla soittolistavektoreita kosinifunktion avulla.
- Musiikkisoitin: Sisältää toisto-, tauko-, seuraava-, edellinen- ja hakuominaisuudet.
- Lokalisaatio: Tukee useita kieliä, kuten englantia, farsia, suomea, ranskaa, japania ja venäjää.
- Kappaleiden arviointi: Käyttäjät voivat arvioida kappaleita 0-5 tähdellä, ja arviot tallennetaan tietokantaan.
Teknologiat
- Python: Python oli luonnollinen valinta koneoppimiseen perustuvassa sovelluksessa, sen kattavien koneoppimiskirjastojen takia.
- Scikit-learn: Pythonin koneoppimiskirjasto, jota käytettiin soittolistavektoreiden luomiseen.
- Django: Backend, joka käsittelee API-pyynnöt ja palvelee sovellusta.
- React: Frontend-kehys käyttäjärajapinnan rakentamiseen.
- Spotify API: Integroitu hakemaan käyttäjien soittolistat ja kappaletiedot.
- MongoDB: NoSQL-tietokanta käyttäjätietojen, kappalearvioiden ja suositusten tallentamiseen.
- Jenkins: Testien ja julkaisun automatisoiminen.
- AWS: Sovellus oli julkisesti saatavilla projektin aikana AWS-pilvipalvelujen (EC2, S3) avulla.
- Docker: Sovellus säilöttiin Dockerilla helpompaa käyttöönottoa varten.
Yhteenveto
Tämä musiikin suosittelusovellus havainnollisti, kuinka koneoppiminen voi parantaa käyttäjäkokemusta tarjoamalla personoitua sisältöä. Integroimalla Spotify API:n ja hyödyntämällä scikit-learn-kirjastoa, tämä projekti tarjosi inspiroivan oppimisprosessin. Käymällä kaikki vaiheet läpi SDLC:stä ja hyödyntämällä Scrum-menetelmää, tämä projekti oli todellinen harjoitus oikeasta ohjelmistokehitys projektista.