Shopping Tracker

Spring 2019

The questions below are due on Sunday April 07, 2019; 11:59:00 PM.
You are not logged in.

If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site ( to authenticate, and then you will be redirected back to this page.

1) Overview

In this Design Exercise you'll build a device that could conceivably serve as a mobile objects-in-cart tracker. These are actually starting to appear, but the idea behind it is that as one pushed their grocery/shopping cart around the store and adds stuff, it keeps track of what has been added and displays the current tally. In some sense this serves as a mobile checkout, but the fact that it can be with you is extremely helpful.

We lack the ability to sense particular groceries using barcodes or NFC techniques in our 6.08 kit so instead we'll rely on user input which can take one of several forms:

  • Button-based entry (of your choice)
  • Button and Tilt based entry (of your construction)
  • Speech-based entry (fun, but hard)

The user should be able to specify the quantity of each grocery item added. The system will communicate with a server-side script including a database of your design and construction that keeps track of the current shopping tally for the user.

The user should be able to add an arbitrary number of an item to their list, including handling duplicate item additions (you realize you actually need one dozen more eggs than you already put in your cart)

Upon each POSTing of a new item, the server should respond with a tally of all items so far and price total for the cart.

For demonstration purposes, at least 12 grocery items with distinct prices must exist within the system.

The user should be able to check-out/reset the system.

Any questions on the spec, of course always feel free to post on Piazza.

Upload a video of your system working, as well as all of your code and any necessary comments below.

Any late factors are based on the timestamp for the last time that the URL is entered on the page or when the code is uploaded or when a comment is added/changed. If you change your URL after the deadline you will incur a late penalty. If you upload code after the deadline, you will incur a late penalty. If you comment after the deadline, you will incur a late penalty. One-Week Extensions DO NOT APPLY Design Exercises.

You must upload ALL CODE that you used in your design in one compressed folder This includes both server-side and embedded side. IN ONE COMPRESSED FOLDER. The system only takes the most recent upload, so if you upload a server file and then your embedded file, that will cause issues. Failure to upload code will result in signifcant point loss. This includes if you just forgot. Screenshots of your file's last modified date in My Computer are not evidence that the file has not been changed. They must be uploaded.

Problem Status:
A Python Error Occurred:

Error on line 2 of python tag (line 45 of file /S19/ex08/shopping_sorter):
    kerberos = cs_user_info['username']

KeyError: 'username'

Enter the url for the video


 No file selected

Enter any comments you may want us to know about. For example, if you started this exercise but don't want it graded, make a note here. Please hit submit on this question even if you don't have any comments.

Back to Exercise 08

This page was last updated on Sunday April 14, 2019 at 09:53:55 AM (revision 7d1f645).
Course Site powered by CAT-SOOP 14.0.4.dev5.
CAT-SOOP is free/libre software, available under the terms
of the GNU Affero General Public License, version 3.
(Download Source Code)
CSS/stryling from the Outboxcraft library Beauter, licensed under MIT
Copyright 2017