Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Corrected links that should have been relative instead of absolute.

...

This page is a list of tasks a given family member has done or is doing.  In a future implementation, we would like to have options to view longer histories as well as improving the look of the page.  This was designed to be simple, to allow a user to see what a certain family member has been doing "at a glance", and perhaps see if anyone has been slacking off.  

Implementation

Describe the internals of your implementation, but keep the discussion on a high level. Discuss important design decisions you made in the implementation. Also discuss how implementation problems may have affected the usability of your interface.

Back end

We wrote the backend using Node.js and MongoDB. We used this setup because it would be really easy to set up a service where we could just post and get JSON data.

There are 3 types of objects that we keep in the database, Family, Member, and Task.

  • Family - has the family name and login information.
  • Member - contains a familyID, name and pictureUrl
  • Task - contains a familyID, name, creation/completion dates, and status information

The API endpoints performed these tasks
login

  • get/create/modify Family
  • get/create/modify Member
  • get/create/modify Task
  • get all data (Family obj, Member list, Task list) for a specific family.

There were a couple of obstacles in cases where we wanted to get tasks for a given member, because we didn’t write that specific functionality into the API. This caused some headaches in the front end, because each page relied on getting all of the family data and doing some filtering client-side, as opposed to just getting what it needed from the server.

Front End

We wrote an apiClient pseudo-class that handled all communications with the backend. In order to test this client we created a page called /console.html, which gave us controls to sign in, create, modify and delete objects, and get all the data for a given family. We wrote this page using jquery and bootstrap.js.

The front end was developed based on the work that we did for GR4. The pages are purely jQuery and javascript functions. We made an attempt to start using bootstrap.js, but it would have taken too long to make the bootstrap design work with our corkboard metaphor. We also integrated the imgur.com api so we could have the ability to upload pictures.

Design decisions:

From the start, we wanted to keep the UI as simple as possible, and completely disregard some common features that most services have, such as logins for individuals. We opted to have only one login per family, because we wanted children to be able to add and complete tasks right away. We don’t keep track of who created what task. That way tasks created by children carry the same weight as those created by the parents, and we hope that this encourages children to have a more active role when it comes to maintaining the household.
Also, not having individual logins means that accountability is up to the family, not the system. So, if someone claims a task at someone else, the system just accepts it. It’s up to the family how they want to handle that situation.

...

Possible improvement: Use jpegcam [https://code.google.com/p/jpegcam/
]

Task 1b: Create your family members

...

-Users clicked on the user tabs, which they found very easy to understand. 

Reflection

See Reflection