In this homework we are exercising Test Driven Development. In this method code is mostly written through the following cycle: Test (Red) -> Code (Green) -> Refactor. 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.
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!
Feature: Find a Person!
- Given a person name, return all posts (of a map) containing it’s name (in any of a post fields)
- Given a name, check if the map includes a location information (place or geo. location)
- Check if there are map inconsistencies, e.g., the same name with different locations. Example: Or (R.I.P) appears at [27°59′N 86°55′E] but also at [31°47′N 35°13′E]
- To start, fork the exercise repository (or pull for later updates:
git pull upstream master
). - Clone the repository to your computer.
- Modify/add files (in the repository directory) and commit changes to complete your solution.
- 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.
- Push/sync the changes up to GitHub.
- 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)
Submit a pull request by next Tirgul (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!