Dmlis 540 Spring 2004 Information System Project mecca pop and Jazz Music For Family Learning and Enjoyment All Team members participated in the development of the spec Project Manager: Carolyn Karis Information Architect: Emily Wheeler


Features to Functions Homepage Features



Download 0.56 Mb.
Page9/13
Date17.05.2017
Size0.56 Mb.
#18448
1   ...   5   6   7   8   9   10   11   12   13

2.Features to Functions

    1. Homepage Features


  • Description and Explanation of Features on Homepage:

The homepage carries a few features that connect to some functionality in the RDB. These are submit buttons that enable the user to listen to audio clips of recordings of a featured artist or event. [Mecca’s homepage is found at http://inside.urbanschool.org/~ckaris/MECCA/mecca_index.html. ]

  • Controls Used for the Homepage Listen feature

[A note on the naming convention used for controls for this feature as well as other features described for this system: We follow the class convention of putting a “c_” as a prefix to the names of controls. However, we distinguish between the types of controls by adding a 3-letter designation for the control name such that the “txt” in c_txtSearch means it is a textbox type of control. The other prefixes are: “opt” for radio/option buttons (e.g. c_optArtist), “cmd” for Submit buttons (e.g. c_cmdGoSearch, cmd stands for command), “drp” for drop-down boxes (e.g. c_drpStyles), “frm” for forms (e.g. c_frmSearch), “chk” for checkbox, and “txa” for textarea.]


Friendly Name

System Name

Control Type

Hooked to What in the RDB or IR system?

Comment

Listen

c_frmListen/ c_cmdListen

Form/Submit button.

Hooked to the particular id of the artist, recording, instrument, album, or song being featured.

We anticipate these features to change often.




  • Queries for the Homepage feature: [using the Nelly Furtado feature currently on the homepage – supposing Nelly’s ID in the Artist_ID field of the Artist table in the RDB is 6]

Controls Involved

SQL

Comments

c_frmListen/ c_cmdListen

SELECT Artist.Artist_ID, Recording.Recording_File

FROM Artist JOIN Recording ON Artist.Artist_ID=Recording.Artist_Performer_ID

WHERE Artist.Artist_ID= Request (6);


The Request ( ) in the WHERE clause is an ASP syntax. We only use it to show that the link that the user chooses from the home page will be processed as a request.



    1. Quick Search Feature





  • Description and Explanation for the Quick Search feature:

The quick search feature is for users who just want to type in a few terms and get some results. It allows users to search the system by either Artist name, Album title, Song title, or Lyrics. Generally, this feature is for users with a known artist name, album title, song title, or lyric parts. It seems from the user persona that some of Maggie’s and Lou’s interest in music started with a known artist name, or album/song title that they have heard about from their friends. This feature will be located prominently on the homepage but will also be on all the major pages of the site to allow the user to easily do another search if a previous search is not meeting his/her need or if he/she is reminded of an artist or song that he/she wants to know more about while on another page.

We favor using an exclusive-choice type of controls like the radio/option buttons that allow only one button to be selected at any one time to guide as well as simplify the user’s search. The use of qualifiers in parentheses after the radio button label further guides the user to the kinds of terms expected for each option. A short instruction inside the search textbox might be of further help for younger members of the home-schooling family. The use of bigger and more colorful fonts for the words “Search” and “Go” should appeal to both children and parents in a family.




  • Controls used for the Quick Search feature:




Friendly Name

System Name

Control Type

Hooked to What in the RDB or IR system?

Comment

Search

(type your search term here)



c_txtSearch

Textbox

Depends on the option the user chooses between Artists, Songs, Albums, and Lyrics

The user can only choose one option at a time.

Artists (Names)

c_optArtist


Radio/Option Button

Hooked to the Artist_Name field of the Artist table.




Albums

(Titles)


c_optAlbum

Radio/Option Button

Hooked to the Album_Title field of the Album table.




Songs (Titles)

c_optSong


Radio/Option Button

Hooked to the Song_Name field of the Song table.




Lyrics

c_optLyrics


Radio/Option Button

Hooked to the inverted index of song lyrics to get the accession number that will point to the full text of the lyrics.




Go!

c_frmSearch

/

c_cmdGoSearch



Form/Submit Button

Calls the page indicated in the “Action” attribute of the search form and submits the option selected and the text entered in c_textSearch for processing.







  • Queries for the Quick Search feature:

The search feature is mostly for retrieving data and does not involve initializing controls nor storing data.

Retrieving Information


Controls Involved

SQL

Comments

c_optArtist

c_txtSearch

c_frmSearch/ c_cmdGoSearch


From Search Form to Results Page:

SELECT Artist.Artist_ID, Artist.Artist_Name, Artist.Artist_DOB, Image.Image_File

FROM Artist JOIN Image ON Artist.Image_ID=Image.Image_ID

WHERE Artist.Artist_Name LIKE


“<*c_txtSearch*>”

ORDER BY Artist.Artist_Name;


From Results Page to Details Page, two queries will be used to create two recordsets:

[To show details of artist like bio, link to website, and image, etc.]

SELECT Artist.*, Image.Image_File, IRinvertedFile.AccessionNumber

FROM IRinvertedFile

JOIN Artist ON Artist_Biography=IRinvertedFile.AccessionNumber

JOIN Image ON Artist.Image_ID=Image.Image_ID

WHERE Artist.Artist_ID=Request (ArtistID);
[To show a listing of albums that the Artist has contributed on, either as performer or composer.]

SELECT DISTINCT Album.Album_ID, Album.Album_Title

FROM Album JOIN Recording ON Recording.Album_ID=Album.Album_ID
WHERE Recording.Artist_Performer_ID=Request (ArtistID) OR Recording.Artist_Composer_ID=Request (ArtistID);

The name of the artist on the results page will be a hyperlink to the details page. The link will show the artist name but the parameter to be passed on to the detail page is the Artist’s ID.





c_optAlbum

c_txtSearch

c_frmSearch/ c_cmdGoSearch


From Search Form to Results Page:

SELECT Album.Album_ID, Album.Album_Title, Image.Image_File

FROM Album JOIN Image ON Album.Image_ID=Image.Image_ID

WHERE Album.Album_Title LIKE “<*c_txtSearch*>”

ORDER BY Album.Album_Title;
From Results Page to Details Page

[To show review of the album and a list of the recording names included in the album as well as audio clips of the recordings.]


SELECT Album.*, Image.Image_File, Recording_Name, Recording_ID, IRinvertedFile.AccessionNumber

FROM Album

JOIN IRinvertedFile ON Album.Album_Commentary=IRinvertedFile.AccessionNumber

JOIN Recording ON Recording.Album_ID=Album.Album_ID

JOIN Image ON Album.Image_ID=Image.Image_ID

WHERE Album.Album_ID=Request (AlbumID);





The title of the album on the results page will be a hyperlink to the details page. The link will show the album image but the parameter to be passed on to the detail page is the Album ID.

The list of hyperlinked Recording Names in the details page will pass on RecodingIDs to the page that processes details page 2 in the Song search process.



c_optSong

c_txtSearch

c_frmSearch/ c_cmdGo


From Search Form to Results Page:

SELECT Song.Song_ID, Song_Name, COUNT (Recording.Recording_ID) as NumberOfRecordings

FROM Song INNER JOIN Recording ON Song.Song_ID=Recording.Song_ID

WHERE Song_Name LIKE “<*c_txtSearch*>”

GROUP BY Song_ID, Song_Name;
[If user enters more than one term, the condition in the WHERE clause should be written as Song_Name LIKE “” AND “” AND “” etc.]

From Results Page to Details Page1:

SELECT Song.Song_Name, Composer.Artist_Name AS Composer_Name, Composer.Artist_ID AS Composer_ID, Perfomer.Artist_Name AS Performer_Name, Performer.Artist_ID AS Performer_ID, Recording.Style_Name, Recording.Recording_Date, Recording.Song_ID, Recording.Recording_ID

FROM Song

JOIN Recording On Song.Song_ID=Recording.Song_ID

JOIN Artist AS Composer ON Recording.Artist_Composer_ID=Composer.Artist_ID

JOIN Artist AS Performer ON Recording.Artist_Performer_ID=Performer.Artist_ID

WHERE Song.Song_ID=Request(SongID)

ORDER BY Song.Song_Name;
From Details Page1 to Details Page2:

SELECT Image.Image_File, Composer.Artist_Name AS Composer_Name, Performer.Artist_Name AS Performer_Name, Recording.Style_Name, Recording.Recording_Date, Recording.Recording_Credits, Recording.Recording_ID, Recording.Recording_File

FROM Recording

JOIN Artist AS Composer ON Recording.Artist_Composer_ID=Composer.Artist_ID

JOIN Artist AS Performer ON Recording.Artist_Performer_ID=Performer.Artist_ID

JOIN Image ON Performer.Image_ID=Image.Image_ID

WHERE Recording.Recording_ID=Request (RecordingID)
SELECT Instrument.*, Image.Image_File IRinvertedFile.AccessionNumber,

FROM Instrument

JOIN Instrument_Recording ON Instrument.Instrument_ID=Instrument_Recording.Instrument_ID

JOIN Recording ON Recording.Recording_ID=Instrument_Recording.Instrument_ID

JOIN IRinvertedFile ON Instrument_Background=IRinvertedFile.AccessionNumber

JOIN Image ON Image.Image_ID=Instrument.Image_ID

WHERE Recording.Recording_ID=Request(Recording.Recording_ID);


The title of the song on the results page will be a hyperlink to the Details Page 1 and from Details Page 1 to Details Page 2. The link will show the song title but the parameter to be passed on to the next page is the Song ID.
The names of the Performer and Composer in Detail 1 page will be hyperlinks which when clicked will pass on the request to the same page that processes the query for the details page in the Artist search.
The hyperlinked Song Titles in Details Page 1 pass on the Recording ID to the Details Page 2.

c_optLyrics

c_txtSearch

c_frmSearch/ c_cmdGo


From Search Page to Results Page:

SELECT Song.Song_Name, Composer.Artist_Name AS Composer_Name, Composer.Artist_ID, Perfomer.Artist_Name AS Performer_Name, Perfomer.Artist_ID, Song_Lyrics, IRinvertedFile_AccessionNumber

FROM IRinvertedFile

JOIN Song ON IRinvertedFile_AccessionNumber=Song.Song_Lyrics

JOIN Recording ON Song.Song_ID=Recording.Song_ID

JOIN Artist AS Composer ON Composer.Artist_ID=Recording.Artist_Composer_ID

JOIN Artist AS Performer ON Performer.Artist_ID=Recording.Artist_Performer_ID

WHERE IRinvertedFile.term LIKE “<*c_txtSearch_term1*>”

ORDER BY Song_Name;
[If 2 or more terms entered into textbox, add to the query in the WHERE clause AND “” AND “” etc.;]

From Results Page to Details Page:

SELECT Song.Song_Name, Composer.Artist_Name AS Composer_Name, Composer.Artist_ID, Perfomer.Artist_Name as Performer_Name, Perfomer.Artist_ID, Song_Lyrics, IRinvertedFile_AccessionNumber

FROM IRinvertedFile

JOIN Song ON IRinvertedFile_AccessionNumber=Song.Song_Lyrics

JOIN Recording ON Song.Song_ID=Recording.Song_ID

JOIN Artist AS Composer ON Artist.Artist_ID=Recording.Artist_Composer_ID

JOIN Artist AS Performer ON Artist.Artist_ID=Recording.Artist_Performer_ID

WHERE IRinvertedFile_AccessionNumber=Request(AccessionNumber);


The title of the song on the results page will be a hyperlink to the Details Page. The link will show the song title but the parameter to be passed on to the next page is the Accession Number for the lyrics.


The names of the Performer and Composer in the results page will be hyperlinks which when clicked will pass on the request to the same page that processes the query for the details page in the Artist search







  • Logic for the Quick Search Feature

    1. If the user clicks on Go button without entering any terms, then show a message that says “Please choose an option then enter keywords in the textbox.” [Can be done with a pop-up window using JavaScript.]

Else, do the following:

      1. Ignore all Boolean operators, parentheses, and quotation marks.

      2. Parse terms in c_txtSearch, delimited by spaces, into c_txtSearch_term1, c_txtSearch_term2, etc.




    1. If “” does not match any data in the RDB or IR, then show a page with a message that says “Sorry, your search did not return any results. Please try another search.”

Else, do the following:

      1. Ignore all Boolean operators, parentheses, and quotation marks.

      2. Parse terms in c_txtSearch, delimited by spaces, into c_txtSearch_term1, c_txtSearch_term2, etc.

    1. If user clicks on hyperlinks on results or detail page, pass on the request parameter to the page that contains the code to process the request.

    2. Re-use pages (with the codes) that process the same kind of request.





Download 0.56 Mb.

Share with your friends:
1   ...   5   6   7   8   9   10   11   12   13




The database is protected by copyright ©ininet.org 2024
send message

    Main page