Title: Intelligent Book
Vision Statement
To create a simple, convenient web application that allows you to receive contact information maintained by your contacts, to access your contact information from just about anywhere, and to automatically notify friends when your contact information changes. We aim to make it such that you create your contact information once and share easily with others. You simply create your contact information, and the web application distributes it to whomever you want. It also means there's no need for you to keep adding or updating every one of your friends' contact information. If your friends are also using the web application, they'll update their contact information and the changes are universally reflected.
Feature List
- Each user registers/signs in, then edits own contact info (including per-item visibility to other people)
- User can request to friend other people, thereby allowing the users to view the information that their friends allow them to see.
- Central list of friends' contact info
- Import from vcard, Export to vcard or csv address book format
- Search for and browse friends. (Search will correct for any mistyping of friends' names or search criteria)
- RSS feed for changes to friends' contact info
- Send emails to contacts (integrate with user's smtp)
- "Friend Finder" - search for matches based on shared interests or common friends
- Birthday reminders
- Keeps track of when info was last modified
GUI Sketches
User updating own information
Browse a user's contacts
Search for friends
Invite a friend to join
Use-cases
Actors (for all use cases)
- User - the person using the address book
- Friend - another user (or potential user) who is a friend of User
Request to friend |
Primary Actor | User |
Secondary Actor | Friend |
Goal | User requests to be linked with Friend |
Main path |
- User enters the search criteria into the search form.
- User clicks on the "Search" button.
- The query returns a list of matches.
- The query returns no results.
- The user refines his query and clicks on "Search" again.
- User clicks on the button labeled "Request to friend".
- User is notified that the request has been sent.
- Friend can confirm the request
|
Invitation to join |
Primary Actor | User |
Secondary Actor | Friend |
Goal | User sends a request to Friend to join the site and become friends with User |
Main path |
- User enters a the name and email address of a friend who might not already be a member
- Users enters a custom message and sends the invitation
- The friend gets an email which lets them register and become friends with the user
|
Import |
Primary Actor | User |
Goal | User can import their information from an existing vcard |
Main path |
- User clicks on "Import".
- User selects the file to import.
- The file format is invalid for import.
- The user selects a different file to import.
- The user's address book is updated.
|
Export |
Primary Actor | User |
Goal | User can export a single contact or a list of contacts to a file (in order to import the contacts into other applications) |
Main path |
- User clicks on "Export".
- User selects which contacts to export and the format to export as.
- A "Save As..." dialogue is displayed.
- The file is saved to disk.
|
Search |
Primary Actor | User |
Secondary Actor | Friend |
Goal | User searches through all people visible to them. |
Main path |
- User enters the search criteria into the search form.
- User clicks on the "Search" button.
- The query returns a list of matches.
|
Browse Address Book |
Primary Actor | User |
Goal | User can view a list of all their contacts (and their information) |
Main path |
- User clicks on "View Contacts".
- User's contacts are displayed with basic informaton.
- User clicks Friend's entry to bring up all visible information belonging to Friend.
|
Add/Update Contact Information |
Primary Actor | User |
Goal | User can view a list of all their contacts (and their information) |
Main path |
- User clicks on "Update Contact Info".
- The contact information edit form is displayed.
- User enters the desired information.
- User clicks on "Save".
- User's contact info is updated.
- The info entered in the form is invalid.
- Invalid fields are shown to the user.
- User reenters contact info.
|
Architecture
- JBoss application server
- Java Server Faces for the frontend
- Hibernate with MySQL for data storage
Resources
- Google Maps to show location of friends' addresses