Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


We had a lot of feedback on this calendar, originally we were using a bigger variety of colors such as a violet for accepted jobs, we found out was confusing to users. We instead decided to just use a deeper shade of green to indicate an accepted job.

Implementation

We implemented our backend using a django server running on caseymc's scripts account. The django server has a database with entries for existing parents, babysitters, and jobs, cross-linked as appropriate (so for example a job knows the parent that created it, the babysitters that know about it, the babysitters that have applied for it, and the babysitter if any hired for it).

We kept our webpages from GR4, but altered them so that:

  • instead of displaying static data, parts of the page responsible for displaying mutable information make calls to the django server (by hitting a URL that specifies the desired part of the page and any other necessary information - like the username of the person logged in), which responds with an html fragment that the page then puts into the right spot.
  • instead of doing nothing, parts of the page responsible for submitting information hit a URL of the django server with a post request; the django server updates its database appropriately. The page then updates areas that may have changed due to the submission.

We made the decision to use django mostly because of its learnability - none of us had experience making a web server, and we were impressed with the quality of django's tutorials and documentation. Our TA mentioned at our GR5 meeting that django was less good than some other options for plugging into a preexisting partial implementation; we can't speak to other options, but we did spend a lot of time rewriting in server-side python features that already existed in client-side HTML and javascript. The implementation we wound up with, static pages that hit various URLs to get the data they need to display, feels a bit piecemeal; it might have been more elegant had we written everything with django to begin with, learned to use its rendering feature, and constructed pages entirely on the server side.

Evaluation

For our user tests, we provided the following briefing:

...