Homework 11

Due by noon on Thursday, Apr 10th.

Note: you will be asked to do 50 total points of projects for this class.

  1. Merge hw10 into your master. Please don’t delete the ‘hw10’ branch.

    Hand in this homework on branch ‘hw11’ on your github account, and set up a pull request between hw11 and your master branch. Don’t merge it, just set up the PR.

  2. Make the cookie app from Day 23: Tuesday, April 1, 2014 work in your server.py, when run with ‘-A cookie’. Note in particular that this means you need proper HTTP_COOKIE handling in your WSGI server...

    In particular, try out the twill test on the day23 branch of cse491-serverz works; see the test script here. You can run it like so:

    twill-sh -u http://hostname:port/ twill-tests/cookieapp.twill
  3. Change imageapp to store its images in a SQL database. Feel free to swipe the sqlite3 code from Day 23: Tuesday, April 1, 2014. Make sure to separate database creation code from image loading code, and execute the database creation code only once (or, when needed). Put in instructions on how to do this if it’s not automatically figured out...

    Two notes:

    • This is just about the images, nothing else;
    • If you’ve already done any of the data persistence projects, you’re good; just tell me that in the ChangeLog for hw11.
  4. Pick 10 points worth of projects from Projects and implement.

    Make sure to explain what you did in the ChangeLog, in detail, including instructions on how to execute things. Note that all previous project features should continue working with the new project features – so, if you implemented logins and cookies and now want to do SQL persistence, you should persist your login and cookie information in SQL as well as the images.

    As per the syllabus, you are allowed to work collaboratively but everything you hand in must have your own name on the commits. The only exception to this is if you are working with someone else’s project, but the sum of the project points must be N*10 (if you work in a group with N=2 people, each person must implement 10 pts worth of projects). Note that you are also responsible for making sure the other persons’ code doesn’t break your code.

    If you run into technical difficulties that can’t be resolved, you can ask (via e-mail) for an extension until the following Thursday. In your e-mail write in a few sentences what problem you’re running into, what you’ve tried in terms of debugging it, and what you think the problem is. If I grant you an extension I will find someone to help you via code review/pull request on github. Extensions may not be granted, however, so make sure you’re really stuck before asking for one...

After handing things in:

Do a clean clone of your repo and make sure that all the tests pass and that all your functionality works on the clean clone, on arctic.

That is, do:

git clone https://github.com/ctb/cse491-serverz -b hw11 test-hw11
cd test-hw11
(check stuff over)

Using ChangeLog, please explain your project choice and implementation in sufficient detail to let someone else (me) who is _not_ psychic understand what you’ve done and run it. Test your code and any instructions using a clean checkout. I mean it.

Table Of Contents

Previous topic

Day 25: Tuesday, April 8, 2014

Next topic

Day 24: Thursday, April 3, 2014

This Page

Edit this document!

This file can be edited directly through the Web. Anyone can update and fix errors in this document with few clicks -- no downloads needed.

  1. Go to Homework 11 on GitHub.
  2. Edit files using GitHub's text editor in your web browser (see the 'Edit' tab on the top right of the file)
  3. Fill in the Commit message text box at the bottom of the page describing why you made the changes. Press the Propose file change button next to it when done.
  4. Then click Send a pull request.
  5. Your changes are now queued for review under the project's Pull requests tab on GitHub!

For an introduction to the documentation format please see the reST primer.