- cs284
- Schedule
- Contact Me
- Colleagues
- Grading
(In-class assignments and quiz's will continue but as "lite" grades.)
Semester projects.
There will be a several "checkpoints" as indicated below but otherwise, the project checkpoints will be the final homework assignments for the semester.
Timeline.
March 2022 checkpts) are... Su Mo Tu We Th Fr Sa 20 21 22 23 24 25 26 27 28 29 30 31 0) Mar 29 proposal April 2022 Su Mo Tu We Th Fr Sa 1 2 1) Apr 1 style 3 4 5 6 7 8 9 2) Apr 5 ENGLISH - design & queries 10 11 12 13 14 15 16 3) Apr 12 MYSQL - design & queries 17 18 19 20 21 22 23 4) Apr 21 prelim scripts 24 25 26 27 28 29 30 5&6) Apr 30 FINAL EXAM SCHEDULEDGradingCheckpoints 0-4 will be added in as five separate homework grades.
Checkpoints 5 & 6 will be averaged together and recorded as the score for your "final exam".
Groups may consist of one,two, or three persons.
- Mustafa & Michael & Jadon
- Hoang & Bob & Ngan
- Lane & Jack & Nick
- Vincent & Ashraf
- Gabriel
- Julie
- Debbie
- Hallie
- Mitchell
One page description of your project which is typed double-spaced 12pt font with ½" margins on all four sides. Submission should be a PRINTED COPY. (Implied to me but perhaps not to all of you...)
- A title.
- A clear and compelling ONE SENTENCE thesis statement for your project; clearly marked.
- A clear and compelling description of your project should be 2/3 of the page.
- Your implementation plan no more than 1/3 of a page.
Title this report with a short semi-mnemonic phrase/name in bold 12pt font. For example, I might want to work on a project I called "Sewanee Dog Park".
Whether or not I will be permitted to work on such a project will depend on how well I describe what I want to do in the next sections. Remember, you are not informing me of your project but proposing one for approval. And you do not want to have to start over more than once or even at all so give this some thought.
Provide a clear and compelling description of your project. As part of your proposal be sure to touch on each of the following: your intended audience, all important and interesting services you intend to provide your audience, the availability and quality of information/data with which you intend to populate your database, and a preliminary implementation plan which is a breakdown of the timeline & order in which you propose to implement your website & services. Do not repeat the as 'your' timeline' the generic timeline given for this class project.
Considerations in choosing a project area/topic:
- Projects SHOULD BE "real" and pro bono publico.
Think charity, service, professional or little known areas. You should look for something you will enjoy learning more about not a way to review your personal entertainment interests and hobbies.
Choose something that interests you and for which you can find a non-trivial amount of data. (Looking ahead: you'll probably want to do some development with "made-up" data but in the end, should have real data available somehow.)
The following project topics are NOT ACCEPTABLE:
sports(players,teams,ranking etc), music(catalogs, etc), books(catalogs, etc), games/gaming.
Considerations in deciding how to breakdown your project implementation plan.
Do not mention html, css, php, tables, SQL, normalization, or queries.
Non-CS person's ENGLISH only
- Decide what the 'bare bones' of your project is. These should be developed first. For example, if I was developing a website providing in home services for area elderly, privacy would be a concern. So password protection would be an issue eventually on some information. When and how that was included would have to be part of my implementation plan.
- Decide what is a flourish to your project. For example, on that same eldercare site I would want to look at readability... What are the common visual impairments suffered as we grow old? How common is color-blindness? What else is a concern? This mini-project should be part of my implementation plan.
- Decide when & how you will test your website. Who can look at it for you and give you some feedback before you have to turn it in for a grade. Do not look for 'friendly fire' available from friends, family and/or classmates. Instead choose someone who will give you unbiased and hard criticism and critique. Even better if you can find someone who is part of your final intended audience.
Choose a good name for your website!
Your webpages will have a coherent style and depend on a limited number of stylesheets of your own creation.*Do not download styles. They should be hand-written by you!*These can be completed on mock-up very soon. There should be a color-palette that most would find somewhat pleasing -- at least not jarring. This "style" should follow guidelines of accessability as much as possible.These choices should not be "your opinion" of what works. The web is full of various accessibility guidelines and suggestions. Look some up and include them as references. You should provide at least three such references which are distinct and each of which provides some useful information that the others do not. Be sure to note exactly what each provides that statisfies this criteria.
Examples of "accessibilty" are items such as the following, some of which have been mentioned in class. Images should all have descriptive alternative text. Font colors & sizes should be readable & distinguishable from background colors and/or images. No dark-on-dark or light-on-light schemes. Aim for maximum legibility while still hanging onto your aesthetics. There does have to be some color. Black and white won't cut it unless you work something creative out. And you should have some images. Just text on your website would be dull dull dull.
To check this out, write several pages to check the inclusion of your *.css file(s) is giving you the look you want. "Blah, blah, blah" is perfectly valid textual content for this step. Make sure at least one of your pages includes an html <form> with various inputs that you actually intend to use. This form should be complex enough to benefit from the use of a variety of the input types discussed in the html 5 specifications (here's at least one tutorial summary ... others are available). There is no need to act on these pages with scripts (ie, method=...) etc. This is just for the "look and feel" of the pages -- colors, fonts, layouts etc.
Note
Include styling for small format (read smartphone!) mobile devices.Submission is simply to send me a link to these pages. No need for source code. (YET, but definitely be following good programming practice on these, ie, coding standards.)
A good submission on this checkpoint allows you to bring greater detail to your project. As we've seen, developing a good database design and query list are interactive tasks. Your queries will help improve your design and vice-versa.Database Design
Your project will require a normalized database. It should have no fewer than five inter-related tables and may have more. Your database should be normalized through Third Normal Form.
Use some sort of office suite (power point?) and draw up a good diagram for each of your tables, the data each will hold and how they use foreign keys to look up information from another table. Do not scribble this out free-hand. If you do draw yourself use a ruler and write very very clearly. Label all primary and foreign keys and all other table "parts". This design SHOULD NOT BE IN THE FORM OF MYSQL, but rather an annotated and well thought out consideration of what kinds of data you will need and how they are related. DO NOT INCLUDE MINUTIAE such as size of fields etc unless doing so adds to the understanding of your design. Good field names are a must and for this design stage shoudld be fully spelled out and described; later you may choose more brief values but here if you are talking about the date of birth of someone or something, do not use DOB.
If you have a "Who Owns What" table do not refer to it as whoOwnsWhat or (shudder) www.
Clarity here is key and this checkpoint should be optimized for HUMAN UNDERSTANDING of your reader, me.
Submit your design diagram as BOTH i) a clearly legible hardcopy AND ii) the same file attached to an email.
Queries
By "query", we mean any interaction you want to provide to the database you envision. These queries shoulds be composed in plain ol' English sentence form. You should provide at least five non-trivial queries. They should clearly pertain to the information which your database will provide/maintain. Your database design (tables!) and queries should as much as possible "match up". That is, it should be clear that the provided design in diagram form should contain the information and associated keys to contain the answers to your questions.
However, they should not "match up" so closely that your queries look like attempts to make an SQL query look like an English version. A bad (super simplistic) example for the Sewanee Dog Park Project might be "List all dogs." It's bad because there is no nuance or interest in the question. Interest is added by filtering the data in some way such as... list the name and contact info for all owners of female dogs between the ages of 3 and 5 years. (That's the age of the dogs not the people, of course!)
Be bold. Do not write only safe queries that you are sure you can answer. Write the interesting query. Future submission(s) will ask you to figure out the SQL that satisfies it.
Your submission should be both i) hardcopy and ii) the same file attached to email which is typed double-spaced 12pt font with ½" margins on all four sides.
RE-SUBMIT the graded hard-copy of your work from the previous checkpoint ALONG WITH THE FOLLOWING...Submit two text independent text files as both email and hardcopy. Both should be PLAIN TEXT.
The two text files should contain *only* mysql-type comments for putting your name and information necessary to document your SQL source code.
Both files should follow reasonable coding standards as established.
databaseBuild.sql
- SQL for database creation & use
- SQL for table creation
- SQL for (preliminary or test) table data insertions
queries.sql
- Include English queries from your previous checkpoint AS WRITTEN THERE and COMMENTED OUT appropriately for MySQL.
Below each the SQL statements for queries that address that query from previous checkpoint. You may use more than one SQL statement to solve the described English statements. However, it should be very clear how they are related and work together to accomplish the goal.
For example...
I WANT to the see the ASCII dashed lines above and below your query and you should include a line or two of white space as well. Follow format you see here and I'll be happy.#------------------------------------------------------------------------------------ # 1) What are names & owners of all dogs registered for Sewanee Dog Park Membership? #------------------------------------------------------------------------------------ select petName as 'Pet', fname as 'Person' from pet,owner,whoBelongsWithWho where pet.pid=whoBelongsWithWho.pid and owner.oid=whoBelongsWithWho.oid ; #------------------------------------------------------------------------------------ # 2) How many dogs have EVER been registered to use the park? #------------------------------------------------------------------------------------ select count(*) as 'Number Registrations' from pet;
Scripts - PHP, JavaScript, jQuery
You will be asked to demonstrate that a visitor to your site can do some of the following or other actions which interact with your database as described in your proposal. With details depending on your individual proposal these interactions might include some of the following:
- register
- Have a Terms Of Service Agreement to do so!
- Use regular expression on passwords and possibly login names chosen.
- login
- make selections
- edit information
- delete records
- combine information in interesting ways with respect to web application
- do some "data mining" over information in your database
In quotes because, although data mining can be a large and complex topic when dealing with large and complex data sets, it has a humble foundation of the simple statistics with which you should are be familiar.The answers to questions like...
- What's the most popular color for filled ovals in our snazzy database?
- What is the average age of all dogs in the pets_and_owners database? That are alive and well with owners who live on University Ave?
- Range(min,max) of interest rates offered to first time homebuyers in various zipcodes in and around Nashville between the years of 2000-2021 ?
- and so on....
- other???
A 6-8 minute presentation of your work to be presented in class to your esteemed peers and professor.Your complete and total attention to all presentations is expected and required.
6-8 minutes is quite a short time -- especially if we allow time for Q&A and setup on projecting machine. It's easy for me to come up with a list of what I don't want to see but trickier to tell you what I do want. Here's my first pass...
A GOOD presentation...
- has been practiced beforehand. You should know what you intend to say and how long it takes to say it.
- falls within 2 minutes plus or minus of the alloted time. (You know this because you've PRACTICED IT)
- gives a compelling description of project as if you're telling us about it for the first time. If you're not pleased with your project and eager to tell us about it, chances are we won't be very pleased either and that will be reflected somewhere in your grade.
- walks us through a bug free demo starting with registration and shows us all the interesting things a user of your site can do and the information they can access while helping us understand why that is a fun, interesting, and/or important thing to do. (DO NOT assume the audience is familiar with your application area especially if it is unusual. You should include some brief statements about your area if there's a good chance not everyone in the room is familiar with your area already. (aka, Dr. Dale DOES understand the concept of used books and how they ... change hands, so no need to go on and on.)
- has a presenter who makes eye contact and speaks confidently.
- convinces us this is a great project and makes us interested in logging in and seeing how some of the features work so we can explore them for ourselves.
- makes the time fly.
In a bad presentation...
- the speaker describes or shows us source code (mysql,javascript,jquery,css) without anyone asking to see it; Note, doing so is fine if a significant portion of your audience wants and is eager to see it... ("Hey, how'd you do that?!?")
- the speaker utters some variation of the following deadly phrases:
- Ours does pretty much what you'd expect.
- Ours is kinda like group X's (insert name of previous speakers or group) does.
- You've probably seen me/us working on this already ...
- We/I had problems with... (insert technical issue here)
- This is still pretty buggy but..
- We/I never could figure out why this does ...
- the website doesn't do anything very interesting and so speaker (however enthusiastic) does not have enough material to fill the alloted time
A link to your operational website AND a tar file containing all your source files.Further submission instructions: yet another checklist for submissions
Dr. Dale reserves right to add updates thru Apr 27!!!Added: Tues 26 Apr 2022
- In email, include info (ie, username/password) for a user you've ALREADY set up. This user should already have a bit of interesting info in their 'account' so I can see all the ways your website may be useful once a user gets going with adding/saving personalized info/searches etc.
- When showing results of inserts to your database, show results added most recent first. That will save me having to scroll to the bottom of a page to see if your forms are working correctly.
Please note the deadline on this checkpoint will not be extended
past 4pm Saturday, Apr 30
the end of your university scheduled final exam timeslot
I will be checking the timestamps on your files. Please be careful as there will be no "re-send" if you accidently send me the wrong files or don't include all the files necessary for your website to run. We will discuss ways to "pre-check".other notes, reminders, and instructions