NEW Due Date: Friday, April 1st, 5pm


General Description

The goal of this assignment is to get you familiar with using a simple database on a server that a web application can communicate with, and to use that technology to design a simple interactive database-backed website.

The assignment is to build a website that lets a person create, edit and search a list of notes. The requirements are:
  • Use a server-based database to store the notes.
  • Each item on the list must include at least a title and body
  • The user must be able to create a new note
  • The user must be able to search the titles of existing notes. The search results must show the titles of all notes that match the search.
  • The user must be able to access the body of any one of the note titles from the search results
  • The user must be able to modify the title and/or body of an existing note
  • You must design your site be usable according to all the things we have discussed so far this semester.

Non-requirements:
  • You do not need to worry about authentication (i.e., there does not have to be any log in)
  • You do not need to worry about security (i.e., SQL injection, dangerous user-entered HTML/Javascript)
  • You do not need to support rich-text (i.e., plain text for notes is fine)

You will be graded as follows:
  • All required features supported (60%)
  • Usability (30%)
  • Aesthetics (10%)

Technology

You are free to use any frontend and backend technology you want as long as you create a website that runs in a modern web browser with no plugins. You do not need to host your website on a publicly accessible server (and in fact, you shouldn't since you are ignoring important security issues). I suggest that you use Python and Sqlite on the server. If you are not familiar with this, go back to the working example I showed you near the beginning of the semester.

Note that you will not be able to test this using terpconnect since terpconnect does not support CGI (i.e., the ability to run scripts).

Deliverables

  • Create a directory whose name is your name. Inside that directory, include a file named README.txt that describes exactly how to run your project (which will simply be to type 'python3 start-server.py' if you base it on the linked example.) Put all the source code for your project in this directory. Zip (or tar) the directory.
  • Turn in a link to your complete zipped source code by adding a row to the table below.
  • NEW (3/28): IF you link to your program running on a public site, then you do not need also need to include a zip file with your source.


- Last Name -
- First Name -
- Link to zip file -
- Optional link to running site -
Achukwu
Amaka

My Notes
(best viewed in Chrome)
Al Zahmi
Nourah

NoteBoard
Albach
Carl


Ashktorab
Zahra

Site
Chao
Tiffany
submission

Chapline
Joe

Noteboard
Dobek
Steven


Edmondson
Michon


Gaffey
Johnny

submission
Gupta
Abhishek

Submission
Vincent
de Chacus


Hurley
Ayla

Note System
Ingraham
John
zip file

Jones
JD

Notebook




Katzur
Jonathan


Kim
Do-Geun

Do-Geun's Board
Kramida
Gregory

Algonotes (NO IE! IE='ugly')
Lacson
Ederlyn


Leaverton
Josh
Submission

Mackey
Katie


Patel
Tapan
Submission

Reehl
Sarah


Rhodes
Ryan

NoteTaker
Rusk
Bryan

Noteboard
Sellmayer
Tyler
submission!

Skoda
Andrew


Smith
Alison

NoteShareLite
Spears
Jesse
ruby on rails
Noteo
Speiser
Jonathan

Note App
Tafaghodi
Zoha

zNotes
Tanda
Aika
Database

Telahun
Rafael

Submission
Tomaszewski
Scotty

Web Link
Whidby
Michael


Wu
Johnny


Zhang
Yiou