Skip to content
This repository was archived by the owner on Dec 31, 2019. It is now read-only.

Iteration 2

brianmaissy edited this page Dec 12, 2011 · 2 revisions

Workshift Manager’s Assistant (WSMA)
Iteration 2 Progress Report
11/9/11

Difficulties Encountered (What were the main difficulties so far?)

  • Implementing encryption with little knowledge of RSA and no experience with the libraries.
  • Testing code which is dependent on time.
  • Underestimating the time required to implement a particular feature. The problem was exacerbated because this project differs radically from anything we have created before.
  • Outside factors affecting our ability to stick to our schedule, like deadlines for other classes.
  • Understanding the overall structure, such as the correspondence between certain views and functions in the database and what certain variable means.
  • Personal issues such as important exams or interviews to prepare for, festivals, home visiting, etc.

Feature Implementation (Were there any features you did not implement as planned, and why? Are you pushing some features to later iterations, and if so, why?)

  • We are slightly behind schedule for the backend. Luckily during the planning stage we identified some features as optional and planned to complete them at the end of the project. So if we don’t finish everything by the deadline, the essential functionality will be complete.
  • The frontend is falling very far behind schedule. While there are a number of pages mocked up in HTML, currently there are only three pages (Roster, Chores, Login) converted into Ruby views and that interact with the database.
  • There was a significant lack of progress due to the learning curve in implementing jQuery effects along with understanding Ruby on Rails.
  • Implementing all pages may not be possible, so we are focusing only on the pages that will be used by Workshift Managers.

Testing (What tests did you prepare for this iteration, and what are they covering? Did the tests you wrote deviate from your plan? What features are you not testing yet? Did you use any test frameworks, such as JUnit, the Android Monkey, Selenium, etc?

  • We continued to use test-driven development using JUnit tests, designing the code to be testable. When a method was dependent on time, we refactored the non-time-dependent logic out into other methods as much as possible to make it easier to test.
  • We created a Time mock which allows us to manually control time in our tests.
  • We are testing all features which have been implemented so far.
  • For testing the frontend, we had a meeting with one of the Workshift Managers. Here the Workshift Manager gave critiques to the design and the functionality of the pages completed so far.

Summary of Updates

Backend

  • Added password encryption using bcrypt
  • Implemented authentication and authorization, login and logout
  • Finished associating ActiveRecord models, and added some validation and tests
  • Implemented logic in User model: calculating hour requirements, hour totals, and hour balance
  • Implemented logic in House model: starting a new week, finding unassigned and unallocated shifts
  • Built time mocking framework and a time provider to switch between real and mock time, including writing tests for the mock
  • Implemented much of the EncryptedConnection scheme of encrypting passwords on the wire
  • Added scheduled jobs indirection and mocking to the time provider, and related tests
  • Implemented logic in Assignment model: sign_off and sign_out
  • Implemented logic in FiningPeriod model: calculate_fines

Frontend

  • Integrated the creation and viewing of Shifts into the Chores page
  • Updated some HTML pages which had serious problems, such as Roster
  • Integrated Javascript into some pages to make it more dynamic, such as the workshift assignment page
  • JQuery for Shift Allocation implemented, with drag-and-drop
  • Performed the demo to one of the workshift managers and received feedback
  • Refined CSS design
Clone this wiki locally