The goal of this project is to create a demo project that will use Amazon EC2 (or another service if you have a good reason) to implement a basic login/account functionality as well as a MapReduce backend to do a search on the site.
The basic demo will work as follows:
After logging in the user can create a new search. They will enter places they've been in one column and places they want to go in the other.
The service will then search the database and return the matches of people who have the opposite criteria (i.e. someone who has been to New york city and wants to go to paris would be matched with someone who wants to go to new york city but has already been to paris).
Results will be sorted based on number of relevant matches. There will also need to be some logic to do a "contains" search and rank those slightly lower. For example "New York" should be considered a loose match to "New York City'.
The real key to this demo is for me to learn/understand how MapReduce works. The design should be focused on efficiency and scalability. The goal is to create a system that could handle any number of user searches with any number of keywords per search.
I have attached a rough idea of the UI design. The UI is relatively unimportant as long as the functionality is there.
Again, since this is a learning demo commenting is very important in the code. I am most familiar with Java and C languages so I would prefer the project be done in that so long as it can meet the requirements.
Feel free to ask any questions. THANKS!