Professional Documents
Culture Documents
Release Information
Project : Dorm Keeper
Introduction
What are the most important facts that a developer should know about
this design?
• The design considered the limited time for developing the
project
• Correctness and feasibility are the topmost priorities
• To realize the project, strict adherence to this design is expected
Overview
What are the most important facts that a developer should know about
this system architecture?
2-tier web application: webserver/app-server, database.
Components
Deployment
How will the components be deployed to processes and machines?
The deployment of components to processes and machines is clearly defined
in this UML Model with Deployment Diagram.
Integration
Architecture Checklist
What are the ranked goals of this source code organization and build
system?
1. Separation of files by type
2. Separation of version-controlled files from files generated by the build
process
3. Compatibility with standard build processes
Build Targets
Target Description
Compile = Compiles Java source code and creates .class files under the "build"
default directory.
dist Packages the system for distribution/deployment to servers or end
users. Specifically, it creates .war archive of compiled classes and
configuration files.
install Places executable code into location where it will actually be
executed. Specifically, it copies .war file into Tomcat's webapps
directory for use. You must then restart Tomcat or use the "reload"
link in the Tomcat Manager.
javadoc Generates Java API documentation under "build/docs/api/".
clean Deletes files generated by previous build commands. Files under
version control are not touched.
Overview
What are the most important facts that a developer should know about
the user interface of this system?
• The UI should be as user friendly as possible so the users will not
have a hard time to understand it.
• The flow should enable the user to browse fast into the system
so when the customer queue is stacking up the system will be able to
handle it.
What are the ranked goals for the user interface of this system?
1. Understandability and learnability
2. Task support and efficiency
3. Safety
4. Consistency and familiarity
What existing systems have user interfaces similar to the UI you want
to build? What specific aspects are similar?
• Sancofa: Online Examination System (CMSC100 Project): Our
system will look like and will have a flow like this system.
Task Models
What types of users will use this system?
See the user needs document.
Interaction
Context
--Abstract
Purpose Contents / Constraints / Behavior
UI
Component
s
Verify that the current user The page asks user to input his username
Login Page is actually the person that and password, then to click to the button
they claim to be. corresponding to his/her user type.
An image to show they are using our
--Banner Show the system’s banner
system
The name of the user account. Regex: [-_a-
z0-9]{1-16}. The application should not do
Identify the user account
anything that would help users guess
--Username that the current user is
usernames. E.g., this should not be a
trying to access.
combo-box with recent users listed, and it
should not offer auto-complete.
Verify that the current user
The password of 4-16 characters. Do not
knows a secret password
display the password on the screen. The
--Password that only the true user of
application should not do anything that
that user account should
would help users guess passwords.
know.
Allow the user to indicate "Login" Only enabled when Username !=
that they have completed "". If the username or password is
--Login
entry of their username incorrect, delay a few seconds, and then
and password. clear all fields.
This is where all the links
Home are shown to enable faster
browsing.
The links are all put here so These will serve as shortcuts to go to other
--Menu
they are easy to find pages
This is where all the
--Main Depending on what page you are in, this
primary information is
Window part is the one that changes its contents.
shown.
Tell the user the current
--Date Panel date to guide him/her for E.g. Monday | January 28, 2008
dormitory transactions
Provide user with help
This will contain descriptions for each
--Help Panel regarding the use of the
module; may contain how-to’s
system
--Footer Show copyright Displayed at the bottom of every page
Assist registration of new
New Account
dormitory residents
Identify the last name of
--Last Name Asks for the resident’s last name
the applying student
--Middle Identify the middle name of
Asks for the resident’s middle name
Name the applying student
Identify the first name of
--First Name Asks for the resident’s first name
the applying student
Insert the full name of the Checks the last name, middle name, and
--Submit applying student to the first name fields for invalid inputs; Auto-
database capitalize first letter
--
Provide feedback for the Tells the user whether the process was
Confirmatio
user successful or not
n
Allow editing of information
Edit Profile
about a resident
Displays the full names of the residents in
Show the user a list of full
--Full name the following format: Last name, First
names of the residents
Name, M.I.
Show the user the date
--Application Displays the date in the following format:
when the resident
Date HH:MM AM/PM| Month DD, YYYY
completed his registration
Redirect user to the page ‘Edit’ button is aligned with residents
which contains the current names; clicking an ‘Edit’ button will
--Edit
information about a redirect the user to the profile of the
resident corresponding resident
Delete Allow user to delete
Account resident accounts
Show user the list of Displays full name in this format:
--Full Name
residents Last name, First Name, M.I.
Show user corresponding Displays date in this format:
--Date
registration dates HH:MM | Month DD, YYYY
Delete specific resident Inactivates the respective account of the
--Delete
account resident when the 'Delete' button is clicked
-- Show user that deletion Contains text explaining that specific
Confirmatio was successful resident's account is deleted
n
Statement of Allow user to issue
Account statement of account
Identify the first name of
Asks the user to input first name;
the resident who will be
--First Name existence of the first name in the database
issued of Statement of
will be checked
Account
Identify the middle name of
Asks the user to input middle name;
--Middle the resident who will be
existence of the middle name in the
Name issued of Statement of
database will be checked
Account
Identify the last name of
Asks the user to input last name; existence
the resident who will be
--Last Name of the last name in the database will be
issued of Statement of
checked
Account
Input should be multiple of the agreed
Identify the payment of the dormitory fee; rate is based on Philippine
--Dorm Fee resident for his/her stay in Peso (Php)
the dormitory
Identify the overall total of Each appliance has its corresponding fee;
--Appliance payment for the appliance rates are set by the administrator at the
Fee of the resident, if there is start of the semester; rate is based on
any Philippine Peso (Php)
--
Identify the amount to be Asks the user to enter an amount for the
Reservatio
paid as reservation fee reservation fee
n Fee
Checks the fields of the form for Statement
--Print Print Statement of Account of Account; entered name should exist in
the database
Register appliance(s),
Register which will be used inside
Appliance the dormitory, owned by a
resident
Asks the user to input first name;
Identify the first name of
--First Name existence of the first name in the database
the owner of the appliance
will be checked
Asks the user to input middle name;
--Middle Identify the middle name of
existence of the middle name in the
Name the owner of the appliance
database will be checked
Asks the user to input last name; existence
Identify the last name of
--Last Name of the last name in the database will be
the owner of the appliance
checked
--Appliance Classify appliance Classification of Appliances: Electric fan,
Computer without printer, Computer with
printer, and refrigerator
Provide a unique
--Control
identification for each Autogenerated 5-digit number
Number
appliance
--Date Record the installation date
ZK datebox
Installed of the appliance
Insert the data entered to
--Submit None of the fields should be empty
the database
Cancel Withdraw the use of an
Appliance appliance
Show the owner of the
--Full Name Last Name, First Name, Middle Initial
appliance
--Control Show the control number of
Must be unique
Number the appliance
Classification of Appliances: Electric fan,
--Type of
Show the type of appliance Computer without printer, Computer with
Appliance
printer, and refrigerator
Inactivates the appliance horizontally
aligned with the ‘Cancel’ button; an
--Cancel Inactivate the appliance inactivated appliance will no longer be
charged of appliance fee; redirects the
page to the confirmation page
Report Report violation committed
Violation by a resident
Asks the user to input first name;
Identify the first name of
--First Name existence of the first name in the database
the violator
will be checked
Asks the user to input middle name;
--Middle Identify the middle name of
existence of the middle name in the
Name the violator
database will be checked
Asks the user to input last name; existence
Identify the last name of
--Last Name of the last name in the database will be
the violator
checked
--Nature of Identify the nature of Types of Violation: (refer to the dormitory’s
Violation violation house rules)
--Date of Record the date when the
ZK datebox
Violation violation was committed
Check-in
Admit transient
Transient
Identify the first name of
--First Name ZK input box
the transient
--Middle Identify the middle name of
ZK input box
Name the transient
Identify the last name of
--Last Name ZK input box
the transient
Autocomplete (source: residents’ table of
Identify the full name of the
--Guarantor the database); input should be one of the
guarantor
entries in the residents’ table
Insert data into the Checks the field of the form; redirects the
--Submit
database page to the confirmation page
Check-out
Dispatch Transient
Transient
--Full Name Show transient’s full name Last Name, First Name, Middle Initial
--Admission Show when the transient
HH:MM | Month DD, YYYY
Date/Time checked in
Inactivate the transient’s Redirects the page to ‘Issue Statement of
--Dispatch
record Account’
View All List all residents of the
Residents dormitory
Show the full names of the Linked to the residents’ respective pages
--Full Name
residents which contain their profile
List all violations
View
committed for the current
Violations
semester
Show the full names of the Linked to the residents’ respective pages
--Full Name
violators which contain their profile
--Nature of Show the nature of
ZK Label
Violation violation committed
Show the date when the ZK Label
--Date
violation was committed Month DD, YYYY
--Remarks Show the action taken ZK Label
View Show all the registered
Appliances appliances
Show the owner of the
--Full Name Last Name, First Name, Middle Initial
appliance
Classification of Appliances: Electric fan,
--Appliance Classify appliance Computer without printer, Computer with
printer, and refrigerator
Provide a unique
--Control
identification for each Autogenerated 5-digit number
Number
appliance
--Date Record the installation date
Month DD, YYYY
Installed of the appliance
View Show all transients who
Transients have not yet checked out
Show the full names of the
--Full Name Last Name, First Name, Middle Initial
transients
Show the name of the Last Name, First Name, Middle Initial;
--Guarantor
guarantor should be resident of the dormitory
What are your assumptions about the input devices that you will use?
We assume only that the user has a standard keyboard and mouse.
What are your assumptions about the amount of time users will spend
on tasks?
The module which is expected to take about 10 minutes to finish is the filling
up of resident’s information. The rest of the modules which require the user
to provide inputs will take 2 minutes on the average. Viewing and printing will
require at most 5 seconds.
Are there no invisible options or commands? E.g., hold down the control
key when opening a dialog box to see advanced options.
None, we only included necessary options so that it will not be too
complicated.
Safety
Are there any dangerous or irreversible actions that are done with only
one step?
None. Any action which may affect the data asks the user for confirmation.
Once confirmed, the only way to reverse it is to prevent the system from
committing the changes to the databases before it uploads data to the
Internet.
Do all elements in your system that appear the same, actually function
the same?
Yes.
Overview
What are the most important facts that a developer should know about
persistent data storage in this system?
• The developer should know how much data can be stored in the
system.
• The developer should also know how large the data is to be
stored.
Central Database
What are the conventions for directory structure and file naming?
Files are stored on the server as data/dormkeeperYYYYSSSMM.dat
*YYYY – Year SSS – Semester MM – Month
Distributed Storage
What information (if any) will be stored on client machines? For how
long?
All the user data will be stored on files on their computers for a minimum of
one month
DESIGN – SECURITY
Overview
What are the most important facts that a developer should know about
the security of this system?
• The developer focuses more on the application security.
• The developer has a trust on the dormitory staffs that they will
not use the system for unnecessary purposes or actions not related to
the dormitory services.
Security Mechanisms
What physical security mechanisms will be used?
• Server will be kept in a secured room
• Only the administrator has the access to the server
Description: The page contains the functionalities that are available for the
administrator
Description: The page contains the functionalities that are available for the
dormitory staff
Description: .war file which contains all the classes, style sheets, etc.; the gist
of the entire project
C:04: DormKeeper DB
Description: Database constructed using MySQL which will contain all the data
of the web application