A Facebook Application that allows any Facebook user to select specific Facebook Groups in which the user is a member of. Once a Facebook Group is selected, the Facebook Application will provide full-text search of Posts made on the group, as well as listings by discussion Post, member Posts, and advance search (including posted by, from-to date... etc). Result of searches as well as listings are represented as text links to the original Post in the Facebook group.
1. **Add Facebook App**: Facebook User (FBUser) selects to Add Facebook Application. For now let's refer to the application as Grouple.
2. **Select Facebook Group**: FBUser selects 1 or more Facebook Groups in which they are a member
3. **Adding Group**: Grouple does a full-text index on posts and comments on posts in selected Group/s. Care must be taken not to re-index, or collect information about the a Group that has already been added by a different FBUser. In addition to full-text search, Grouple should collect and save the following information about:
1. names of members who posted,
2. names of members who commented,
3. names of members who clicked "Like"
4. Date of Posts
5. Date of Comments
4. **Search**: Grouple will provide a page with a search text box. FBUser enters search text, and Grouple lists search results. Each search result should have the following (should look similar to Google search results):
1. Name of member of contributed the Post or the Comment
2. Date Post or Comment was added to group
3. The first 15 to 20 words of the Post or Comment (used as title)
4. 1 or 2 lines (depending on how big is Post or Comment) showing the search hit and bold the search text
5. clicking any item in this results listings will take the FBUser back to the Facebook Group and display the specific Post or specific Comment in a Post
5. **Members Listing**: Grouple will provide a page listing of members in group in alphabetical order, each as an expandable node. When FBUser clicks the name of a group member, a listing is displayed in 3 categories below. Listing should have the elements described in 4 above except for Member Name (since this is listed under it in this case), and except search text highlighting or bolding
1. Posts: All posts on Group by selected member
2. Comments: All comments on Group by selected member
3. Likes: All Likes on Group by selected member
6. **Advance Search**: Grouple will provide a page for Advance Search. FBUser will be able to search the group based on the following criteria below. Listing of results should look like 4.
2. Date range (Post or Comment added from date x to date y)
3. Member Name who added Post or Comment (should be pull-down list, or auto-complete)
4. Post or Comment flag
**Platform & Language:**
* Grouple should run on Google App Engine, and all storage should use either Google's Big Table or other Google provided storage
* To the extent possible, we want this whole project programmed in Java
* If not possible, then explain why and suggest alternative language. Google App Engine is a must.