Copying a list of the requirements that our website must have to better keep track of what's been done and what hasn't.
[x] A user should be only able to rate a particular song once. A user should be notified that they cannot rate a song twice if they try submitting the song name again. You can assume that there are no two songs and no two artists with the same name. In other words, you do not need to check for different users entering duplicate songs or artists.
[x] People should be required to register and login with a username and password. If a user enters a username that is already taken, the user should be alerted accordingly and asked to pick a different username.
[x] Once people are logged in they should remain authenticated via a PHPSESSID token.
[x] The registration form should ask people to enter their password twice to ensure that they are not mistaken about what they entered. If the passwords do not match, the user should be prompted again.
[x] If a user is already logged in and requests the registration page, they should be redirected to the index page with the overview of all rated songs.
[x] Show at the top of each page in your app which user is logged in.
[x] Songs (title, artist, and rating) should be displayed for all users in the database. However, users can only alter their own entries.
[x] The fields in the update view should be pre-populated with the current values.
[x] Upon updating a rating (or other form field value) the user should be redirected to the overview page of all songs. The same should happen if the user cancels the update. The same behavior should be present if a user deletes a song or cancels the deletion.
[x] Validate via the frontend that users cannot leave any form fields blank
[x] Validate that password is at least 10 characters long
[x] Validate that rating is a one-digit integer (1-5)
[x] All SQL queries must be parameterized to avoid SQL injection attacks.
[x] Passwords should not be stored in cleartext but rather hashed and salted for security reasons.
Copying a list of the requirements that our website must have to better keep track of what's been done and what hasn't.