'Choonz' is a Music site similar to Spotify, designed as part of my final project with QA Academy. The goal of this project was to design both front-end and back-end of an application as well as to deliver a full test-suite as part of a team.
This is a fork of the repository from the github I used during training onto my personal github.
The 'Choonz' website will allow a user to browse music, being able to look at tracks, artists, albums, genres - as well as being able to view and make playlists.
This should be scaleable from 3 to 5+ entities:
- MUST HAVE - Track, Artist, Album
- SHOULD HAVE - Genre, Playlist
- COULD HAVE - Login System (restrict playlist creation to logged in users)
- Maven
- Java 14
- Some IDE either Eclipse or Intellij
- Springboot for your IDE
- Chromedriver
Required Libraries: (included in pom.xml)
- Springboot Framework (v 2.3.4)
- Model Mapper (v 2.3.5)
- Selenium (v 3.141.59)
- Cucumber (v 1.2.4)
- JUnit 5 (v 5.6.2)
- Springfox (3.0.0)
General
- Multiple users can sign up to the system
- Many users can be signed-in similtaneously
- Users can browse without logging in but won't be able to make any changes.
- Users can search for albums, artists, songs, etc.
Albums
- Users can browse all Albums
- Users can see and navigate to the artist, tracks, genre an album has or belongs to.
Artists
- Users can view details about an artist
- Users can see all albums released by an artist
Tracks
- Users can browse all tracks
- Tracks can be added to the playlist of a logged-in user
- Track information such as play-time and lyrics can be viewed.
Genres
- Users can browse albums that fit certain genres.
- Ensure you have the required tools (see Technical requirements)
- Clone this repository or download it as a .zip file and un-pack it. Open the project in Eclipse or Intellij, setting it up as a Maven project.
- Run the 'ChoonzApplication.java' file in
src/com/qa/choonz
- this is the main runner for the Springboot application. - The application should be hosted as 'localhost:8082/'
Note: To run Selenium tests, you will need to download 'Chromedriver.exe' (or a web-driver for your preferred browser) and place it under src/test/resources/drivers/
- Client - Angelica Charry - Software Delivery Manager
- Product Owner - Nick Johnson - Initial work (backend & frontend development, specification)
- Product Owner - Edward Reynolds - Initial work (testing, specification)
- Jordan Harrison - General Java wizardry
- Alan Davies
- Savannah Vaithilingham
- Vinesh Ghela
- Piers Barber
- Baeldung - for Random-String generation code
- Chromedriver