Karaoke Database Site
From CSE330 Wiki
[edit] Designers
Mamta Datwani and Katherine Maschmeyer (aka TEAM AWESOME)
[edit] Description of our project
Create a site for karaoke event. Users would like to view what others will be singing, check what songs are available and sign up to sing.
[edit] Notes
We believe this is close to a final design spec before we start coding, but will reserve the option to add in small features as we have time. If we should add in major features, please let us know.
We have decided not to use an external database to build our own database because of licensing issues and we believe that once this site would become available, our database would have much of the info anyway. We have come up with a way to help automate additions to the database for the admin: users can request that a song be added (purchased in real world situation). The admin can approve or deny such requests. Of course, manual addition of songs is also available and set up so several songs by the same artist can be added quickly.
[edit] Overview of privileges
[edit] Non-registered users
can view the scheduled (already requested for singing) songs and who will be singing them by artist, genre, language, and request order
[edit] Registered users
can view everything that non-registered users can view and can search for existing songs in the karaoke database, request to sing an existing song, request for a song to be added to the karaoke database, and delete any requests to sing that they have made
[edit] Administrator(s)
can view everything that registered user can view, plus they can add songs to the karaoke database, either by manually inputting songs with a form or by accepting user-created song requests (the registered user would input all information about the song and submit the request to a moderation queue and the admin could either accept or deny the request).
[edit] Database tables
songs: auto incremental song id, title, artist, language, genre, # of times requested
users: auto incremental user id, username, first name, last name, password, email address
songs to sing: song id, title, artist, language, genre, user id
songs to be added: title, artist, language, genre, user id
[edit] Layout
Note that each page will also have relevant links in a menu panel (either at the side or on the top of the page)
[edit] Main page (viewable to all, registered or not)
List all songs that people will be singing. Have a pull-down box to customize view (by user [who requested to sing and will be singing] by artist, by genre, by language, by request order [and thus schedule order])
Link to register. Link to login.
[edit] Main page (registered user version, user is logged in)
List all songs that people will be singing. Have a pull-down box to customize view (by user [who requested to sing and will be singing] by artist, by genre, by language, by request order [and thus schedule order])
Link to search form. Link to request that a song be added to main database (be available for singing) Link to see user profile (incl. user's songs that user will be singing at event)
[edit] Main page (administrator version)
Same as registered user, plus link to admin panel
[edit] Registration page (all)
Form requesting the following information: username first name last name password email address
[edit] Login page (all)
Form to login (asks for username and password)
[edit] Search page (logged in users)
Search form or results from search:
Search form: View all available songs in database or search using at least one of the following fields: artist title genre language
If results are found, return all results. Each result will have a button next to it to request to sing the song. Once the request to sing is made, the user has the option to delete the request to sing later. (Link available to user profile where user can view and/or delete songs to sing requests.)
If results are not found, offer most popular songs (most frequently requested to sing) as a recommendation and offer the option to view all songs in database. Also, offer that the user can request that the song be available to sing in the future.
[edit] Request form for new songs (for an unavailable song to be available in the future) (logged in users)
Form for a user to request a new song (not in database) with fields for: artist title genre language
(ALL fields will be required.)
[edit] User profile page (logged in users)
Lists user info including the songs that user has requested to sing. There is a button next to each song to give the option to delete a request.
Other links: view main page, search page, request page, and logout
[edit] Admin panel (admin only)
Links to add song form and moderation queue
[edit] Add song form (admin only)
Admin can add several songs at once using this form:
One field for artist Drop down menu for genre Drop down menu for language Several title fields (so several songs can be added at once, at least one must be filled, all others are optional)
[edit] Moderation queue (admin only)
Listing of songs that users would like to have available. Each listing will have two buttons next to it: accept (song will be added to database so people can sing it in the future) or deny (song will not be added).

