/TDD-Kata-FindAPerson

Empty repository for HW4

Primary LanguagePython

TDD Kata - FindAPerson

A repository for HW4 of the JCE Software Engineering Course

Intro

In this homework we are exercising Test Driven Development. In this software development method code is written through the following cycle: Test (Red) -> Code (Green) -> Refactor. See lecture slides for more details and resources. We will also use git to document the process.

You can either follow the given problem or ask the course team for another problem, e.g., from the Kata page in the lecture slides.

Background Story

Let's take a look at Ushahidi, which is a platform, services and tools for geographical crowd sourcing, e.g., for coordinating rescue eefforts following a natural crisis (Nepal). The Crowdmap - Basic Features, are:

  • Create a post
  • Create a Map
  • Find Posts
  • Find a Map
  • Collaborate
  • Find a Person: This feature will be added at a later date. Stay Tuned
  • See all the latest Posts
  • See all the latest photos
  • Map view
  • View a post by Location

Since there is a missing feature we are going to "implement" it! For a start we do not assume dependecies on exising code rather we will discover and implement only the necessary dependecies.

The Actual Problem, Add a Feature: Find a Person!

  • Given a person name, return all posts (of a map) containing it’s name (in any of a post fields), example:
    • Input: "Or A."
    • Output: ["I met Or A. at Chabad house Bangkok", "We found Or A. R.I.P at Langtang valley"]
  • Given a name, check if the map includes a location information (place or geo. location), example:
    • Input: "Or A."
    • Output: True
  • Check if there are map inconsistencies, e.g., the same name with different locations. Example:
    • Input: nepal map (with content as above)
    • Output: True (since appear in more than one location)

Work Instructions

  1. To start, fork the exercise repository (or pull for later updates: git pull upstream master).
  2. Clone the repository to your computer.
  3. Modify/add files (in the repository directory) and commit changes to complete your solution (please don't commit compiled and project files).
    • Each TDD phase needs to be committed separately with a suitable message, e.g. “RED: Test for finding a name”.
    • If you do pair programming, you should switch roles between RED and GREEN (see here, there is also a fun Eclipse game to guide it).
    • You can suggest other features by editing the requirements above.
  4. Push/sync the changes up to GitHub.
  5. Create a pull request to the original repository to turn in the assignment, don't forget to mention your pair.

(A pull-request screencast demo - done for another course)

Dates

Submit a pull request by next Tirgul (update: in 2 weeks), this time you don’t need to use the regular submitting form, but you can if you must 😄). We will give feedback through the pull-request system. Good luck!