WYSIWYG

http://kufli.blogspot.com
http://github.com/karthik20522

Wednesday, July 18, 2012

Take Home Interview Questions [More]

Adding one more question to my previous take home post

Question 2:
Requirements
Product management supplied the following requirements:
  • The application should be a windows desktop application.
  • The user can search data by show date, gender of participants, question id, and cities in which participants reside.
  • Cities should be presented in a drop down list.
  • Gender should be presented in radio buttons.
  • The search result should be presented in a table format containing all information described in the "Fields" bullet below.
  • Only 10 search results should be shown at a time. The user can page through the results by next and previous buttons. The user should also be able to change the number of records shown at a time.
  • The user should be able to sort the result by any field.
  • The application should be designed such that we can quickly modify the way that the result is presented to users.
  • Fields
    • Age
    • Gender
    • City
    • State
    • Question Id
    • Response
    • Show Date
Additional consideration should be given to the following:
  • The database is expected to have very heavy traffic and search could take a long time.
  • The search result can potentially contain a large number of records.
  • There is another team of developers that will be responsible for developing a search service that takes search criteria and returns results for you. The team is waiting for you to specify the interface to which their service will conform.
Design Phase
Your design tasks are as follows:
  • Write a brief summary about how you would deal with slow response time while a search is performed. Specifically, how would you keep the user interface from "freezing" while the application is querying the database?
  • Write a brief summary about how you would design the application so that you can quickly modify the way the results are presented to the users.
  • Define the search interface so that the search team can start their development. Keep in mind that the search result can potentially be very large.
  • Provide a class diagram of classes that you will use to organize search results. These classes should be able to call the search service, organize and sort the result, and provide paging functionality. Don’t worry about strict adherence to a particular software diagramming philosophy (i.e., it doesn’t have to be perfect UML). Briefly describe in words how the pieces of your design fit together.

Labels: ,