You are on page 1of 12

System Design Document

v1.1 Last modified at: Monday, July 21, 2008

Please imitate the reference site plur k.com as much as possible in feature layout, unless the current structure is obviously not user friendly or requires improvement.

I will need the winning bidder to place an expert guarantee which will serve as a guarantee by you that I will get the work done exactly according to our agreed terms. It will become a penalty against you if the product is not delivered fully in compliance with the requirements in this document. This means all features, functionalities, technical elements and time frame must be met or you will not only be denied the agreed fee, but also lose the penalty money you have placed in compensation for my time and option to choose other bidders wasted by your unsatisfactory delivery). Do NOT bid if you cannot fully commit to these requirements because you will end up empty-handed and your time will end up in vain.

System Design Document

1 of 12

Sample High Level Design Document

Version History
Version 1.1 Document Type Draft for review by customer Created/Updated By

System Design Document

2 of 12

Sample High Level Design Document

Table of Contents

Introduction

System Design Document

3 of 12

Sample High Level Design Document

This application is designed to provide the users a web-based collaborative and social networking tool using instant-messaging technologies provided by MSN, Yahoo, Google Gtalk etc. Any user can stay connected with his friends, family and co-workers and share your life. This application provides an amalgamation of Play n Work concept on web. This application also allows the user to display whats up in life and follow other peoples life by sending and receiving messages on the web. This document provides the functional as well as technical details of this application.

Audience

This document is intended for the customer and developer organization to understand the system both functionally as well as technically. Also, it may be used to develop the user training content.

Functional features

Below is the list of features the application will support. Each major functionality will be explained in detail in the following sections. Feature ID F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 Feature Home Page User Sign up User Sign Out User Login Forgot Password Display Recently joined users Display Users the most Brief Description As soon as the user types the URL of the website, the home page is displayed. All users will register themselves with the application using this feature User log out feature User will have to login to use the functionality of the application Users will be reminded of their passwords, if they use this feature Recently signed up users will be displayed on the home page

Senior List of most active users will be displayed on the home page Based on the email account of the user, get the list of friends. Friends User can invite his/her friends to join the website in a single click. User can update his/her profile anytime after registration/login. This includes layout, color combination and theme of your personal interface Various alerts are sent/received whenever an event

Get My Friends List Send Invite selectively to

User Profile update

F11

Alerts

System Design Document

4 of 12

Sample High Level Design Document

like, friend accepting the invite, etc happen in the system. However if a add-friend request is declined, the declined person will NOT be alerted. F12 Chat window page highlighting the current user chat messages Auto-login to any instant messaging Sending private messages to friends Complete web-based instant messaging tool

F13 F14

Automatically login to any instant messaging. Any user can send private messages to any other friends, and does not need the target user to accepts the invitation to privately chat. There are two options of private messaging: 1. viewable by all your friends; 2 viewable by one the persons whose user IDs you input in the viewable list.

F15

Internationalization (Different As soon as the user changes his/her language languages) preference, the entire web site will be transformed to that language seamlessly. My Messages list Search messages Timeline of messages A list of expression words to choose from which will be used to start new one-liner messages A list of smiles to choose from which will be used to end one-liner messages The Karma system which shows the popularity of each member A number on the top right corner on each beginning message which indicates how many comments to that message have been posted by other members Add a member as friend/accept or deny a members request to add as a friend/ delete friendship Like says, wonders likes, dislikes, thinks, User can have his/her messages list shown separately. User can have multiple search options available to search messages.

F16 F17 F18 F19

F20 F21 F22

F23

A friend automatically follows your messages, and can see your private messages (if he/she is in the viewable list you made when sending the private message) and make comments on them if he/she
5 of 12

System Design Document

Sample High Level Design Document

relation F24 Be a fan of another member/stop being a fan of another member Search member Follow/stop following a members all new messages automatically Disable comments Mute

wants. A fan automatically follow your messages, but he/she cannot see your private messages, because your are not a friend Find members by search using keywords entered into a combination of search terms Even if you are not a friend or fan of somebody, you can click on this button to follow or stop following his/her new messages

F25 F26

F27 F28

This is a button on each message. If clicked on, you will no longer get alerts of new comments made on this particular message

F29 F30

Time stamp on the left side of It's 5:30 pm and . the message box Time on the timeline Because users are from all over the world, there will be different time zones involved. Should the display time be in sync with the time on users own computer? Change system language New message/new comments alerts These two alert links show new messages/new comments they have been written by your friends and people who you are a fan of since your last visit of the web site. When clicked on the view button besides each of them, the new messages/comments will be displayed. Show messages from people who meet terms you enter in a combination of criteria. These can be people who are not your friends, who you are not a fan of, or who you are not currently following. See show me plurks from.. www.plurk.com/browse in the reference site at

F31 F32

F33

Filter messages

F34 F35 F36

My messages Random users Top ten users by popularity

Show all messages I have sent Displays users randomly selected by the system Displays top ten users by Karma in the reference site.

System Design Document

6 of 12

Sample High Level Design Document

F37 F38 F39

Block user Groups Info box menu

Make a member unable to view your profile, follow you, or respond to your messages or befriend you. This is clique in the reference site. Here you can 1 visit the members profile; 2 check out on his/her friends; 3 send private message to a member from here when you click on a message from him/her or a comment he/she has made; 4 block him/her 1 Account: Time zone change, time format change, password change, email change, language change 2 Privacy 3 Instant messaging

F40

My account

F41 Here throughout the document, the word message means a mini-blog by a member showing his/her activity or mood, in the form of one-liner messages starting with an expression chosen from a system list, like says, likes, dislikes, thinks, wonders and sometimes ending with a smiley chosen from a system list of smileys. The word comment means a response to a message which takes similar form as message.

Architectural Model

The application will be designed using typical J2EE n-tier architectural pattern. Presentation layer comprises of JSP pages, AJAX calls, Spring Form Tag library etc. and makes calls to business functionality through Spring Controllers. Business logic will be encapsulated in Business logic layer and all data access will be through Spring JDBC and Spring DAO frameworks. Model-View-Controller architecture is the underlying architectural model.

Tools & Technologies


Tools & Technologies Tomcat 6.0.16 MySQL 5.0 CSS 3.0 jQuery 1.6.1 and related plugins Description Web server to develop & deploy the application Database Style sheets technology Javascripting and AJAX framework

Development Infrastructure S.No. 1 2 3 4

System Design Document

7 of 12

Sample High Level Design Document

5 6 7 8 9 10 11 12 13 14 15

Jabber* Tigase 3.3.2* www.tigase.org JWChat* Apache Ant EasyMock 2.4 DBUnit Spring framework 2.5 Spring DAO Eclipse 3.4 IDE JDK 6 JUnit 4.4

An open, secure technology for instant messaging and a whole lot more Open source Jabber server implementation Jabber web chat client Build tool To generate mock data objects. To test the data access objects. Application framework Data access framework Development Environment Java development kit Unit testing framework

* May change later during development for better technology choice, if possible.

1.1 Browser compatibility


The application will support the following browser versions.

IE 6.0+ Firefox 2.0+ Safari 41 Opera

1.2 Instant Messaging Infrastructure


JWChat is a full featured, web-based Jabber client, written using AJAX technology. It relies on JavaScript and HTML at the client-side only. It supports basic jabber instant messaging, roster management and group chats based on the MUC protocol. you can manage your contacts, communicate with other users in 1:1 chat sessions or join a group chat room for collaborative communication. It is easiliy integratable with existing web projects. Tigase is an open-source jabber server implementation. Any web-based Jabber-based client can easily communicate with Tigase and its all java-implementation. Tigase Server is a lightweight and scalable Jabber/XMPP server written in Java. No third party libraries are needed. It can be used as embedded application in other systems or as a standalone service. Low resource consumption makes it a good solution for small installations and scalability makes it also good for deployments with very high load and a huge number of users, it can

System Design Document

8 of 12

Sample High Level Design Document

be installed on as many machines as needed. It can store data directly in MySQL and has built-in adapter for this database.

1.3 Messaging Interfaces


Contact List Importer 1.0 Java Library provides an interface for retrieving contacts from various services. This interface can retrieve contacts and address books from the following instant messaging services. * Hotmail / Windows Live (Supports all hotmail.* accounts, msn.com accounts etc.) * Gmail (Gtalk) * Yahoo (All yahoo accounts)

Low level design

1.4 User Interface Design


Web 2.0 is the standard for developing social networking and collaborative tools on the internet. It provides the users the rich look and feel of working on a desktop in a browser. It uses latest technologies like AJAX for better user experience and usability. UI will be developed as modular as possible so that future changes in requirements can be easily incorporated. CSS 3.0 style sheets will be developed to provide externalized and templatized look and feel so that users can select the look and feel on the fly, based on Themes. All images on the site will be loaded using CSS Sprites technology for better performance. Un-obtrusive javascript will be used through the site so that future changes in the requirements can be done very easily without breaking existing functionality and can degrade gracefully on older browsers like IE 5 or older.

1.5 Data Model design


Table name: USER_INFO Column UserID LoginID/Screenname PrimaryEmail Password Firstname Lastname Gender Age Zipcode Varchar(5) Datatype Integer Varchar(25) Varchar(50) Varchar(10) Varchar(20) Varchar(20) Varchar(1)

System Design Document

9 of 12

Sample High Level Design Document

Country DateOfBirth Profession Relationship Photo Avatar LastLoginDate UserCreatedDate Table name: USER_FRIENDS Column UserID FriendID Followup_Status Friend_Status Table name:USER_MESSAGES Column UserID MessageId MessageTime ParentMessageId MessageDetail MessageType Table name:USER_GROUP Column UserID GroupID GroupName

Varchar(20) this should be selected from a pull-down menu Date

BLOB

Timestamp Timestamp

Datatype Integer (FK to User_Info.UserId) Integer(FK to User_Info.UserId) Varchar(1) Varchar(10)

Datatype Integer (FK to User_Info.UserId) Integer Timestamp Integer(FK to MessageId) Varchar(20) Varchar(20)

Datatype Integer (FK to User_Info.UserId) Integer(FK to Group.groupId) Varchar(20)

System Design Document

10 of 12

Sample High Level Design Document

GroupStatus Table name: USER_BLOCKEDUSERS Column UserID Blocked_UserID BlockedAt BlockedReason Table name: USER_ALERTS Column UserID AlertType AlertText AlertCreatedAt AlertGeneratedBy

Varchar(1)

Datatype Integer (FK to User_Info.UserId) Integer(FK to User_Info.UserId) Timestamp Varchar(200)

Datatype Integer (FK to User_Info.UserId) Varchar(25) Varchar(2000) Timestamp Varchar(40)

Internationalization

The language preference is configurable through resource bundles. Various resource bundles will be configured for different languages through property files. This application will support the following languages. English Spanish Chinese Japanese Note: The customer must provide the verbiage for all languages other than English. More languages will be added based on the verbiage provided by the customer.

Deployment Model

Entire application will be deployed on Tomcat 6.0.16 server with Apache Web server as the web front end server. Both are open-source servers and the installation will be done by the developer organization. MySQL database will be generated by the scripts provided by
System Design Document 11 of 12

Sample High Level Design Document

the team. Also the team will provide the build scripts that will build, test and deploy the application on the production environment. Apache Ant 1.7.0 will be used to develop the build scripts. As the user community increases, we can load balance the user requests using apache mod-jk software load balancer configuration and it is again open source. Initially, Jabber server will be installed on the same box as Apache tomcat, but later can be moved to a separate box, depending on the load.

Technical Support Contract

Our team will provide the post-production support for 6 months, starting from the date the application goes live. If there are any functionality changes before/ after the production, our team will not be bound to this contract and would need a separate contract. Our team can be contacted only through Gtalk IM messenger. 10 Testing & Debugging Below listed types of techniques (except unit testing) will be performed on each development, QA and Production box.

1.6 Logging
All system critical events will be logged using Log4j logging framework. Various priority level messages will be logged and can later be used for debugging in case of issues. Also, with the user guide, we provide you a list of possible issues and solutions for easier troubleshooting at a later time.

1.7 Unit Testing


Each use case/functionality will be thoroughly tested using JUnit, Easy Mock and DBUnit frameworks and test cases will be packaged along with the source code and given to the customer. We will not be able to do performance/load testing within the timeframe allocated to this project, but if the timelines can be compromised, we can perform load testing at an additional cost.

1.8 Integration testing


Once each module within the system is integrated, we will run the integration test cases generated by us, and fix the issues in case of any.

1.9 System Testing


We will perform system testing for the entire application using smoke test and monkey test techniques. Once these tests are OK, we will test the system functionality end to end manually and provide you the system test cases along with the source code and documentation.

System Design Document

12 of 12

You might also like