# Requirements - As a client, I want to log in to the service. - [ ] In the front-end, the client requests login by providing a username and a password to the back-end. - [ ] In the back-end, the server processes the login request from the front-end. - As a client, I want to log out from the service. - [ ] In the front-end, the client requests logout to the backend. - [ ] In the back-end, the server processes the logout request from the front-end. - As a client, I want to search for available ringtones. - [ ] In the front-end, the client requests ringtones by providing a search keyword to the back-end. - [ ] In the back-end, the server retrieves the ringtones whose name matches the search keyword provided by the front-end. - As a client, I want to download a ringtone. - [ ] In the front-end, the client requests the data of a ringtone from the back-end. - [ ] In the back-end, the server sends the ringtone data to the front-end. - As a client, I want to search for composers. - [ ] In the front-end, the client requests composers by providing a search keyword to the back-end. - [ ] In the back-end, the server retrieves the composers whose name matches the search keyword provided by the front-end. - As a composer, I want to create a ringtone. - [ ] In the front-end, the client inputs ringtone data to the view. - [ ] In the front-end, the client sends the ringtone data to the back-end. - [ ] In the back-end, the server stores the ringtone. - As a composer, I want to update a ringtone. - [ ] In the front-end, the client modifies the ringtone data loaded on the view. - [ ] In the front-end, the client sends the ringtone data to the back-end. - [ ] In the back-end, the server stores the ringtone. - As a composer, I want to delete a ringtone. - [ ] In the front-end, the client requests deletion of a ringtone to the back-end. - [ ] In the back-end, the server deletes the ringtone.