Business Requirement Document For Intern Management
Business Requirement Document For Intern Management
Business Requirement Document For Intern Management
RE Q U I RE M E NT
D O CU M E N T
FOR
INTERNSHIP MANAGEMENT
A P P L I C AT I O N
1. INTRODUCTION
1.1 Overview
This document provides a comprehensive description on how the project, Development of an
Internship Management System and Two Way Database synchronization was
conducted, explaining specifically how the project was analyze, design and eventually
implemented.The project involves two independent systems (an Internship Management
System and an Online Application Portal) which have been developed separately and how
data is synchronized between their databases.
2.LITERATURE REVIEW
This chapter of the report describes the different methods, architectures and frameworks that
were considered in order to execute the project. Their merits and demerits are also provided.
With the new system, applicants will be able to apply and check the status of their
application online.
Changes made to data cannot easily be seen by other staffs in the same unit and as far as security
is concerned, there is the tendency that people without the right grant or
permission can easily gain access to the stored data if they manage to gain access to the
management staff computer.
The new system will employ a unified database, making it easy for changes to be seen by
everyone. Also, security will be enforced by granting each user a username and password.
The new system will offer the possibility to track and trace human errors. Also, because many
aspects will be automated human error is reduced.
The fact that the current system is not web-based, it is impossible to manage internship
remotely. Since the new system is web-based and will run on a webserver, remote access
is possible via a network.
The problem of data redundancy is also addressed as records will be stored in a well
normalized database. Thus, the new system benefits from the advantages of a database
management system.
4. METHODOLOGY ADOPTED
This chapter provides a combination of the methods by which the project was conducted and
controlled, and also, the software development method applied. In addition, arguments are
provided regarding the methods chosen.
The object oriented approach and the Rational Unified Process (RUP) framework to software
development was adopted to analyze, design and implement the software system. Rationale for
adopting the object oriented approach and RUP framework is explained below:
It has been around for a long time and thus is easy to find answers on the web.
It has a light footprint.
5. REQUIREMENTS ANALYSIS
This chapter explains specifically how the requirements of the software systems were captured. It
provides the functional and non functional requirements of the system.
The requirements for both systems (Internship Management System and Online Application
Portal) were captured in the Requirements Analysis and Definition phase of the project. This was
done via preparation of questionnaires with sample questions for the interns to answer. Also,
meeting sessions were organized for face-to-face conservations with the students. In each
meeting session, audio recorder was used to capture the conversation, hence enforcing better
requirements capture.
After the requirements were captured, a Software Requirement Specification (SRS) document
was produced.
Illustrated below are the functional and non functional requirements of the systems. The
following labels are used to prioritize the requirements:
Must have - Refers to those requirements that together create the core functionalities of the
system.
Should have - Refers to those requirements that although are not part of the core functionalities,
however, they can be very useful and will be implemented if the project schedule allows to do
so.
Nice to have - Refers to those requirements that do not play a main role in the functionality of the
system, at least at the scope of this project; however, they would give more facilities to the users if
the schedule allows them to be implemented.
The labels are given the following prefix: M to Must have, S to Should have and N to Nice to
have
ID Functional Requirements
Importance
To allow user to print internship offer letter, internship extension letter and
internship attestation in English language.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Functional Requirements
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
Importanc
e
Reliability
Availability
Security
Maintainability
.
5.2.2. Non functional Requirements of the Online Application Portal
(OAP)
The table below shows the non functional requirements of the OAP. Each non
functional requirement is indicated in the left column, while the right column
indicates what the system must fulfill to satisfy the requirement.
Table 5.4: Non Functional Requirements of the OAP
Requirement
Description
Category
Performance
Requirement
Design
Constraints
Standard
Compilance
Reliability
Availability
Security
Maintainability
Use Case Modeling is a powerful modeling technique that can be used to capture and
organize requirements. Use Case Modeling has two perspectives, a Use Case Diagram
and a Use Case Model template which simplifies the explanation of the use case.
Shown below is the use case diagram for both the Internship Management System
(IMS) and Online Application Portal (OAP).
User Interface Design describes the functionality of the system from the users perspective.
That is, it explains how the users will use the system to complete all the expected
features and the feedback information that will be displayed for the user. In this case, UML
Activity diagram and State Chart diagram are used to design the UI. Also, following the
diagrams are screen sketches of the major UI elements.
6.2.1. Activity Diagrams
Activity diagrams model the behaviors of a system and the way in which these behaviors
are related in an overall flow of the system
Figure 6.6: State Chart Diagram of the IMS (Behavior of the Manager and
the system)
6.3. Information Domain Modeling
Type
varchar(40)
varchar(45)
varchar(120)
int(10)
Text
Null
No
No
No
No
No
Default
0
0
0
Type
Null
academic_id
applicant_id
int(11)
int(11)
No
No
institution_name
institution_location
Field
Specialty
Level
degree_program
graduation_date
anticipated_graduation_date
institution_country
varchar(100)
varchar(100)
varchar(255)
varchar(45)
int(2)
varchar(45)
Date
varchar(15)
char(2)
No
No
No
Yes
No
No
Yes
Yes
No
Defaul
t
Links to
Applicants>applicant id
NULL
NULL
NULL
Column
applicant_id
last_name
first_name
birth_date
Gender
country_of_residence
Type
int(11)
varchar(50)
varchar(50)
Date
char(1)
char(2
Null
No
No
No
No
No
)No
Default
Phone
Language
Email
City
country_of_citizenship
varchar(25)
varchar(25)
varchar(50)
varchar(255)
char(2)
Yes
No
No
No
No
NULL
account_id
int(11)
Yes
NULL
Links to
Countriescountry code
Countriescountry code
The tables, Applicants, Academics, Trainings, Applications and Documents for the
Online Application Portal have the same structure as that of the Internship Management
System shown above. These were the tables involved in data synchronization. More tables
for the OAP include the following:
Experience Table - For storing interns internship experience
Account Table - For storing online accounts
Page Table - For storing pages
Subject Table - For storing different subjects
Administrator Table - For storing administrators account
which illustrate the client-server architecture of the Internship Management System. Also,
the relation called synchronization logic indicates that Component 1 (IMS) provide the
logic for communicating with the Online Application Portal.
b. Easy maintenance
Since client/server architecture is a distributed model representing dispersed
responsibilities among independent computers integrated across a network, its an
advantage in terms of maintenance. Its easy to replace, repair, upgrade and relocate a
server while clients remain unaffected. This unawareness of change is called
encapsulation.
c. Security
Servers have better control access and resources to ensure that only authorized clients can
access or manipulate data and server-updates are administered effectively.
d. Flexibility
e. Scalability
Client-Server architecture is scalable hence new features can be upgraded when needed.
f. Centralization
Access, resources and data security are controlled through the server.
g. Interoperability
All components (clients, network, and servers) work together.
Base on these benefits, the Client-Server architecture was chosen.
7. IMPLEMENTATION
Implementation in this context refers to programming. This is the phase that gave birth to
the system. The outputs from the analysis and design phase are used as input in this phase.
The main activity in this phase is programming.
PHP (Hypertext Preprocessor) - Language used to program the logic of the system.
Specifically, Code Igniter framework was used.
JavaScript and Jquery Library - was used to enhance the look and feel of the system. It
was also used to improve usability.
Ajax - Was used for form submission and to improve usability.
HTML5 - Was used to design the graphical user interface.
CSS3 - Was used to design the graphical user interface.
Unified Modeling Language (UML) - Language used to develop a model for the system.
C Programming Language - Was used to count the number of distinct occurrences of
languages in a text file and sort them out in alphabetical order for
used in a web form.
Microsoft Visio (version 10) - Was used in the requirements phase to design basic
templates of how the system was going to look like.
Enterprise Architect (version 10.0) - Was used to draw the UML diagrams.
Komodo Edit, version 8.5.3 - Text editor used for coding the system.
JetBrainsPhpStorm 6.0.2 - IDE used for coding the system.
Google Chrome(Version32.0.1700.77), Firefox(version28), Safari and Internet
Explorer were the browsers used for testing the system.
MySQL Workbench - Was used to develop the Extended Entity Relationship (EER)
diagram.
XAMPP for Linux (Version 1.8.3-1) - It includes the following packages:
Web Server (Apache, version 2.4.4)
PHP, version 5.5.3
Database (MySQL, version 5.6.12)
Linux mint 17 (64 bits) and Windows 7 (64bits) were the platforms used for
development.