System Design Document

tenuousdrunkshipInternet and Web Development

Nov 12, 2013 (3 years and 8 months ago)

78 views


System Design Document


1

of
13









System Design Document

v
1.
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 requir
es

improvement
.



I wi
ll need the winning bidder to place an
expert guarantee

w
h
ich will
serve as a
guarantee by you that I will get the work done exactly
according to our agreed terms. It wi
ll

become a
penalty
against you

if
the product is not delivered full
y

in compliance wit
h 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 m
o
ney
you have
placed

in
compensation

for
my

time
and opti
on to choose other bidders
wasted
by
your

unsatisfactory

delivery
).


Do NOT bid if you
cannot

fully c
om
m
it

to these requirements because
you will end up empty
-
handed and
your time will end up in vain
.







Sample High Level Design

Document

System Design Document


2

of
13












Version History


Version

Document Type

C
reated/Updated By

1.
1

Draft

for review

by customer


























Sample High Level Design

Document

System Design Document


3

of
13














Table of Contents


5.1

Browser compatibility

................................
................................
.........................

8

5.2

Instant Messaging Infrastructure

................................
................................
.........

8

5.3

Messaging Interfaces

................................
................................
..........................

9

6.1

User Interface Design

................................
................................
.........................

9

6.2

Data Model design

................................
................................
..............................

9

10.1

Logging

................................
................................
................................
.............

12

10.2

Unit Testing

................................
................................
................................
......

12

10.3

Integration testing

................................
................................
.............................

12

10.4

System Testing

................................
................................
................................
..

13















Sample High Level Design

Document

System Design Document


4

of
13







1

Introduction

This application is designed to provide the users a
web
-
based
collaborative

and social
networking
tool
using instant
-
m
essaging technologies provided b
y 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 amalgama
tion of Play n Work concept on web.
This application also allows the user to display ‘what’s up in life’ and follow other
people’s life by sending and receiving messages on the web.

This document provides the
functional as well as technical details of this

application.


2

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.

3

Functional features

Below is the li
st of features the

application will support. Each

major
functionality will be
explained in detail in the following sections.

Feature ID

Feature

Brief Description

F1

Home Page

As soon as the user types the URL of the website, the
home page is displayed.

F2

User Sign up

All users will register themselves with the application
using this feature

F3

User Sign Out

User log out feature

F4

User Login

User will have to login to use the functionality of the
application

F5

Forgot Password

Users will be reminded
of their passwords, if they use
this feature

F6

Display Recent
ly joined
users

Recently signed up users will be displayed on the
home page

F7

Display the most Senior
Users

List of most active users will be displayed on the
home page



Sample High Level Design

Document

System Design Document


5

of
13

F8

Get My Friends Lis
t

Based
on the

email account of the user,
get the list of
friends.

F9

Send Invite to Friends
selectively

User can invite his/her friends to join the website in a
single click.

F10

User Profile update

User can update his/her profile anytime after
registr
ation/login.

This includes layout, color
combination and theme of your
personal interface

F11

Alerts

Various alerts are sent/received whenever an event
like, friend accepting the invite, etc happen in the
system
. However if a add
-
friend request is decline
d,
the declined person will NOT be alerted.

F12

Chat window page
highlighting the current user
chat messages


Complete web
-
based instant messaging tool

F13

Auto
-
login to any instant
messaging

Automatically login to any instant messaging.

F14

Sending p
rivate messages to
friends

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 on
e the persons whose
user IDs you

input in the

viewable


list
.

F15

Internationalization
(Different languages)

As soon as the user changes his/her language
preference, the entire web site will be transformed to
that language seamlessly.

F16

My Messages l
ist

User
can have his/her messages list shown separately.

F17

Search messages

User can have multiple search options available to
search messages.

F18

Timeline of messages


F19

A list of expression words to
choose from which will be
used to start new one
-
liner
messages

L
ike

says

,

likes

,

dislikes

,

thinks

,

wonders
”……

F20

A list of smile
s to choose
f
rom which will be used to
end
one
-
liner messages


F21

The

Karma


system which
shows the popularity of each
member




Sample High Level Design

Document

System Design Document


6

of
13

F22

A number on the top right
cor
ner on each beginning
message which indicates
how many
comment
s to that
message have been posted by
other members


F23

Add a member as
friend
/accept

or deny

a
member

s request to add as a
friend
/ delete friendship
relation

A friend automatically follow
s

y
our 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
wants
.

F24

Be a fan of another
member
/stop being a fan of
another member

A fan automaticall
y follow your messages, but he/she
cannot see your private messages, because your are
not a friend

F25

Search member

Find members by search using

keywords entered into
a

combination of
search
terms

F26

Follow/stop following a
member

s all new messages
au
tomatically

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

F27

Disable comments


F28

Mute

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

F29

Time stamp on the left side
of the message box


It's 5:30 pm and

.


F30

Time on the timeline

Because users are from all over the world, there will
be different time zones involved. Should the display
time b
e in sync with the time on user

s own
computer?

F31

Change system language


F32

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 v
isit of
the web site. When clicked on the

view


button
besides each of them, the new mess
ages/comments
will be displayed.


F33

Filter
messages

Show
message
s from people who meet terms you
enter in a combination of
criteria
. These can be
people who are no
t your friends, who you are not a
fan of, or who you are not currently following.



Sample High Level Design

Document

System Design Document


7

of
13


See

show me plurks from..


at
www.plurk.com/browse

in the reference site

F34

My messages

Show all messages I have sent


F35

Random users

Displays users randomly selected by the system

F36

Top ten users by popularity

Displays top ten users by

Karma


in the reference
site.

F37

Block user

Make a member unable to
view your profile, follow
you, or respond to your messages or be
friend you.

F3
8

Groups

This is

clique


in the reference site
.

F39

Info box menu

Here you can 1 visit
the member

s
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 commen
t he/she has made
; 4 block
him/her

F40

My account

1 Account:
Time zone change
, time format change
,
password change, email change, language

change

2 Privacy

3 Instant messaging

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 smil
eys.

The word

comment


means a response to a

message


which takes similar form
as

message

.


4

Architectural Model

The application will be designed using typical J2EE n
-
tier architectural pattern.
Presentation layer comprises of JSP pages, AJAX calls, Spr
ing 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 arc
hitecture is the underlying
architectural model.


5

Tools & Technologies



Sample High Level Design

Document

System Design Document


8

of
13

Development Infrastructure

S.No.

Tools

& Technologies

Description

1

Tomcat 6.0.16

Web server to develop & deploy the
application

2

MySQL 5.0

Database

3

CSS 3.0

Style sheets technolo
gy

4

jQuery

1.6.1

and related plugins

Javascripting and AJAX framework

5


Jabber
*


An
open, secure technology

for instant
messaging and a whole lot more

6

Tigase 3.3.2
*

www.tigase.org

Open source Jabber server impl
ementation


7

JWChat
*

Jabber web chat client

8

Apache Ant

Build tool

9

EasyMock 2.4

To generate mock data objects.

10

DBUnit

To test the data access objects.

11

Spring framework 2.5

Application framework

12

Spring DAO

Data access framework

13

Eclips
e 3.4 IDE

Development Environment

14

JDK 6

Java development kit

15

JU
nit 4.4

Unit testing framework


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

5.1

Browser compatibility

The application will support the following browse
r versions.



IE 6.0+



Firefox
2.0+




Safari 4
1



Opera

5.2

Instant Messaging Infrastructure

JWChat is a full featu
red, web
-
based Jabber™ client, w
ritten using AJAX technology
.

I
t
relies on JavaScript and HTML at the client
-
side only. It supports basic jabber instant


Sample High Level Design

Document

System Design Document


9

of
13

messaging, roster management and group

chats based on the MUC protocol.

you can
manage your contacts, c
ommunicate 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 be installed on as many machines as needed.
It can store data dire
ctly in
MySQL and has built
-
in adapter for this database.

5.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
follo
wing instant messaging services.


* Hotmail / Windows Live
(Supports

all hotmail.* accounts, msn.com accounts etc.)


* Gmail
(Gtalk)


* Yahoo
(All

yahoo accounts)


6

Low level design

6.1


User Interface Design

Web 2.0 is the standard for developing soc
ial 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 po
ssible 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 grace
fully on older browsers like IE 5 or older.

6.2

Data Model design

Table name: USER_INFO

Column

Datatype

UserID

Integer

LoginID
/Screenname

Varchar(25)



Sample High Level Design

Document

System Design Document


10

of
13

PrimaryEmail

Varchar(50)

Password

Varchar(10)

Firstname

Varchar(20)

Lastname

Varchar(20)

Gender

Varchar
(1)

Age


Zipcode

Varchar(5)

Country

Varchar(20)

this should be selected from a
pull
-
down menu

DateOfBirth

Date

Profession


Relationship


Photo

BLOB

Avatar


LastLoginDate

Timestamp

UserCreatedDate

Timestamp


Table name:
USER
_
FRIENDS

Column

Dataty
pe

UserID

Integer (FK to User_Info.UserId)

FriendID

Integer(FK to User_Info.UserId)

Followup_Status

Varchar(1)

Friend_Status

Varchar(10)

Table name:
USER_MESSAGES


Column

Datatype

UserID

Integer (FK to User_Info.UserId)

Message
Id

Integer

MessageTime

Timestamp

ParentMessage
Id

Integer(FK to MessageId)



Sample High Level Design

Document

System Design Document


11

of
13

MessageDetail

Varchar
(20)

MessageType

Varchar(20)

Table name:
USER_GROUP

Column

Datatype

UserID

Integer (FK to User_Info.UserId)

GroupID

Integer(FK to Group.groupId)

GroupName

Varchar(20)

GroupStat
us

Varchar(1)


Table name:
USER_BLOCKEDUSERS


Column

Datatype

UserID

Integer (FK to User_Info.UserId)

Blocked_UserID

Integer(FK to User_Info.UserId)

BlockedAt

Timestamp

BlockedReason

Varchar(200)


Table name:
USER_ALERTS


Column

Datatype

UserID

Inte
ger (FK to User_Info.UserId)

AlertType

Varchar(25)

AlertText

Varchar(2000)

AlertCreatedAt

Timestamp

AlertGeneratedBy

Varchar(40)



7

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



Sample High Level Design

Document

System Design Document


12

of
13

Spanish

Chinese

Japanese

Note: The customer must provide the verbiage for all languages other than English.

More
languages will be ad
ded based on the verbiage provided by the customer.

8

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 deve
loper organization.

MySQL database will

be

generate
d

by the scripts provided
by 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.


9

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/ afte
r 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
eac
h development, QA and Production box.

10.1


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 prov
ide you a list of possible issues and solutions for easier
troubleshooting at a later time.

10.2


Unit
T
esting

Each use

case/functionality wi
ll be thoroughly tested using JU
nit, Easy

Mock and
DBUnit frameworks and test cases will be packaged along with the sour
ce 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.

10.3


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.



Sample High Level Design

Document

System Design Document


13

of
13

10.4


System
T
esting

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.