Sie sind auf Seite 1von 41

COLLEGE OF APPLIED BUSINESS

Tribhuvan University

Institute of Science and Technology

An INTERNSHIP REPORT

Submitted to
Department of Computer Science and Information Technology
College of Applied Business

In partial fulfillment of the requirements for the Bachelors Degree in Computer Science and
Information Technology

Submitted by
Sushil Thapa
Symbolno. : 1174/068
T.U. Registration no. : 5-2-360-12-2011
February, 2016

ACKNOWLEDGEMENT
Internships are a valuable method of gaining knowledge and experience by working in a business
environment and by interacting with professionals. The three months that I spent working as an
intern helped gain new experiences and knowledge and it helped me to become prepared for the
working conditions and methods in todays market. My internship would not have been possible
without the help of many people and for that I would like to thank them for their words of kindness
and encouragement.
My internship at Techolate Research and Development would not have been successful without
the help and guidance of the very cooperative staff there. I would like to thank my supervisor at
Techolate Research and Development without whose help and guidance, my internship would not
have been possible. Special thanks goes to all the members of Techolate Research and
Development family for giving me the chance to work there and for all the warm help and support
during my work there as an intern.
I would like to thank Mr. Abhimanu Yadav, Faculty Member, College of Applied Business (CAB)
as supervisor for this report without whose help, my internship would not have been a success and
this report would not have come to fruition. His insights, suggestions guidance helped me to tackle
many of the problems I faced during this report.
I am also grateful and thankful to all the teachers at College of Applied Business (CAB) who
granted us the knowledge and shared with us their experience which was instrumental in preparing
us for our future and helping us to achieve our dreams.
Special thanks to my friends and colleagues who directly and indirectly helped me during my
studies and my internship and who were instrumental in the success of this report.

Sushil Thapa

ABSTRACT
The Basic theme of internship at Techolate Research and Development is about developing skills
and knowledge in JavaScript framework. The main objectives of the internship program is to gain
practical knowledge and build up working skills so that we are able to develop ourselves into well
rounded individuals who can work and contribute to the companies and to the society. This
internship report represents the work I did during my internship period, and the things that I learned
from working in the organization of my choice: Techolate Research and Development

Sushil Thapa
Roll no: 1174/068
T.U. Registration no. : 5-2-360-12-2011
March 2016

ii

Table of Contents
ACKNOWLEDGEMENT ............................................................................................................... i
ABSTRACT .................................................................................................................................... ii
List of Abbreviations ...................................................................................................................... v
List of Figures ................................................................................................................................ vi
CHAPTER 1

INTRODUCTION ................................................................................................. 1

1.1

Introduction to Internship ................................................................................................. 1

1.2

Background ...................................................................................................................... 1

1.3

Goals and Objectives of Internship .................................................................................. 2

1.4

Work Procedure................................................................................................................ 3

CHAPTER 2

INTRODUCTION TO INDUSTRY ..................................................................... 5

2.1

Brief Introduction of IT Industry ..................................................................................... 5

2.2

IT Industry in Nepal ......................................................................................................... 6

2.3

Present Situation............................................................................................................... 6

2.4

Challenges and Opportunities .......................................................................................... 7

2.4.1

Challenges ................................................................................................................. 7

2.4.2

Opportunities............................................................................................................. 7

2.5

Software Industry in Nepal .............................................................................................. 8

CHAPTER 3

INTRODUCTION TO ORGANISATION ........................................................... 9

3.1.1

Objective of organization .......................................................................................... 9

3.1.2

Organization Hierarchy............................................................................................. 9

3.2

Methodology .................................................................................................................. 10

3.2.1

Organization Selection ............................................................................................ 11

3.2.2

Placement/Duration/Activities ................................................................................ 11

CHAPTER 4

ANALYSIS OF ACTIVITIES ............................................................................ 13

4.1

Understanding the system and working environment .................................................... 13

4.2

Preparation Phase ........................................................................................................... 13

4.2.1

Introduction to JavaScript ....................................................................................... 13

4.2.2

Introduction to CoffeeScript ................................................................................... 15

4.2.3

Introduction to Angularjs ........................................................................................ 15

4.2.4

Introduction to MongoDB....................................................................................... 16
iii

4.2.5
4.3

Introduction to Meteor ............................................................................................ 17

Planning for ETimeSheet ............................................................................................... 17

4.3.1

Background ............................................................................................................. 17

4.3.2

Problem Statement .................................................................................................. 17

4.3.3

Planned Overview and working of ETimeSheet ..................................................... 18

4.3.4

Software Development Model to be used ............................................................... 18

4.4

Requirement Analysis .................................................................................................... 19

4.4.1

Data Collection ....................................................................................................... 19

4.4.2

Software Requirement Specification ...................................................................... 20

4.4.3

Feasibility Analysis ................................................................................................. 21

4.5

Designing Task Management System ............................................................................ 23

4.5.1

Use Case Diagram................................................................................................... 23

4.5.2

Class Diagram ......................................................................................................... 24

4.5.3

Sequence Diagram .................................................................................................. 25

4.5.4

Activity Diagram .................................................................................................... 27

4.6

Developing ETimeSheet ................................................................................................ 28

4.6.1

Framework Used ..................................................................................................... 28

4.6.2

Design Patterns Used .............................................................................................. 28

4.6.3

IDEs Used .............................................................................................................. 28

4.6.4

Server Used ............................................................................................................. 28

4.6.5

Testing..................................................................................................................... 28

4.7

Testing ETimeSheet ....................................................................................................... 28

4.8

Experiences in the Internship ......................................................................................... 29

CHAPTER 5

LESSON LEARNT, CONCLUSION, RECOMMENDATION ......................... 30

5.1

Lesson Learnt ................................................................................................................. 30

5.2

Conclusion...................................................................................................................... 31

5.3

Recommendation ............................................................................................................ 31

References ..................................................................................................................................... 32
Bibliography ................................................................................................................................. 33

iv

List of Abbreviations

Techolate R&D

Techolate Research and Development

BscCSIT

Bachelor of Science in Computer Science and Information Technology

JS

Java Script

AngularJS

Java script library

CoffeeScript

Same like JavaScript

Mongodb

Cross-platform object oriented database

Jquery

the Write Less, Do More, JavaScript Library

DBMS

Database Management System

SD

System Design

SQL

Structure Query Language

QA

Quality Assurance

UML

Unified Modeling Language

ER

Entity-Relationship

MVC

Model View Control

HTML

Hyper Text Markup Language

ACM

Association for Computing Machine

ICT

Information Communication Technology

IT

Information Technology

SIGITE

Special Interest Group for IT Education

List of Figures
Fig 1.1: Gantt Chart..................................................................................................4
Fig 3.1: Organization Hierarchy...............................................................................9
Fig 4.1: Waterfall Model.........................................................................................18
Fig 4.2: Usecase Diagram........................................................................................22
Fig 4.3: Class Diagram............................................................................................23
Fig 4.4: Employee Sequence...................................................................................24
Fig 4.5: Admin Sequence........................................................................................25
Fig 4.6: Admin Activity..........................................................................................26
Fig 4.7: Employee Activity.....................................................................................26

vi

CHAPTER 1

INTRODUCTION

1.1 Introduction to Internship


The internship is done as a partial fulfillment of requirements of the Bachelors degree in
Computer Science and Information Technology under Tribhuvan University (TU). The
internship is assigned six credit hours (minimum of ten weeks or 180 hours long) as a part
of the course requirement.

The internship program is designed to provide students engaged in a field experience with
an opportunity to share their insights, to explore the links between students academic
preparation and their field work, and to assist participants in developing and carrying out
the major research project which will serve to culminate their internship experience.

Internships are individualized and tailored to the needs and interests of each student in the
program. As part of the internship experience, students are expected to take an active role
in finding an appropriate internship for themselves.

Internship mechanism is being considered as an important resource for improvement of the


system of higher education and establishment of effective connection between the
universities and the labor market. Internships provide opportunities to experiment and
pursue careers that match academic and personal interests. Internship experiences are
considered in the hiring process, and often interns are looked as the best potential
candidates for full-time positions in organizations.

1.2 Background
This project report is the outcome of internship undertaken at Techolate Research and
Development, Pulchowk during 8th Semester of BSc.CSIT (Computer Science and
Information technology) program. In the process, the students are exposed to a professional
work environment, various challenges and experience how it is to work in an organization
company otherwise not possible only through classroom learning. As the work gets
1

increasingly together and competitive with more fresh graduates entering every year, the
internship experience proves to be vital for students. It teaches the student of the program
confidence and helps them make crucial business and professional relationships that can
be beneficial for them in the future. Further, students will be able to also realize their
strengths and also make improvements by knowing weaknesses.
This is a complete documentation of the software development process for ETimeSheet.
ETimeSheet is a web-based application to assist the organization in getting relevant
information about dailylogs of the employees. This system can be helpful to the
organization to know about the working schedule of the employees for the day and track
the available employees in the organization and employees on leave as well. This will help
to manage the operation of the organization and plan the working schedule for the day.
This report consists of information on activities conducted during a period of at least 12
weeks of internship as per requirement of Tribhuvan University. It contains information
about the industry, organization where internship was conducted and the application
developed for an organization.

1.3 Goals and Objectives of Internship


The internship program was conducted as partial fulfillment of the BSc.CSIT (Bachelor of
Science in Computer Science and Information Technology) course under Tribhuvan
University. The main objective of this program is to gain experience in the IT sector of
Nepal. Besides gaining experience, interns were required to work on specific projects.
Some points to describe objectives of the internship program are:

To explore and gain relevant knowledge and skills required to enter into a particular
career field.

To experience the real working scenario.

To understand the importance of all the departments in the accomplishment of the


ultimate goal of the organization.

To implement the theoretical knowledge into practical implementation.


2

To develop capability to compete in the IT market after the completion of


BSc.CSIT.

To build important connection and strong professional network that would help in
the future.

To develop and enhance research skills, report writing skills along with
presentation and communication skills.

To provide the solution to the organization in terms of System Analysis, System


Design and System Development.

The internship program is a great opportunity for a meaningful experience. It is a way for
preparing oneself to enter into the job environment after graduation. The primary goal of
this internship was to be able to apply theoretical knowledge in real world situation and to
develop all the necessary skills to perform job responsibly.
To achieve the goals and objectives of the internship program, lots of time and effort was
dedicated in learning new concepts and ideas from mentors, supervisors and project
managers.

1.4 Work Procedure


Techolate R&D allowed interne to work 5 days a week i.e from Monday to Friday. From
the first week interne was introduced to the IT(Information Technology) department and
he was allowed to settle in the environment by letting him study and analyze the various
system and architecture of the IT infrastructure of the company. Interne studied about
several software development methodologies used in JavaScripts framework as well as
how software estimation, testing and implementation can be done using multi-module
projects in general. Further, interne also learnt about how software development is done
simultaneously despite being in several geographical locations using configuration
management.
After the initial week, the organization gave interne an opportunity to go through several
tutorials regarding javascripts, design patterns, AngularJS framework, NodeJS framework,
MeteorJS framework etc. Since the third week we started working on ETimeSheet which
3

included planning, designing, testing, implementation etc. Planning included preparation


of schedule of activities and their respective time durations. Interne also designed use case
diagrams, ER (Entity-Relationship) diagrams, sequence diagram, activity diagram etc in
the designing phase. Then developing was done in MeteorJS framework using abstract
method design patter and MVC (Model View Control) framework. Finally, interne wrote
test cases using WebdriverIO and then carried out unit testing.
Other than these activities, supervisor gave interne a new task each day. The task included
simple ones like testing some software. However, the complex tasks required interne to be
directly guided by his supervisor as he had little idea on how real time applications are built
in an organization.
Since interne was allotted to fixed period to finish his project, he had to manage his time
at his level best. So, interne made a time table and Gantt chart to carry out activities on a
planned basis. Furthermore, all activities from requirement analysis, developing, testing,
implementation etc. were carried out on the basis of Gantt chart. Various software design
works such as Use Case Diagram, ER diagram etc. were drawn to avoid confusions. After
the paper works, coding for the system was started.
Weeks

1st

2nd

3rd

4th

5th

6th

7th

8th

9th

10th

11th

12th

Task
System study

Studying
AngularJS
Planning for
ETimeSheet
Prototyping of
ETimeSheet
Developing back
end

Writing Test
Cases
Testing

Implementation
and Operation
Fig 1.1: Gantt Chart

CHAPTER 2

INTRODUCTION TO INDUSTRY

2.1 Brief Introduction of IT Industry


Software Industry, rapidly developing field in the world and Nepal too. From the mid1960s software industry started at the time of personal computer revolution. Software can
be categorized as desktop application, web application and mobile application. But now
days, software industry is highly focusing in mobile application. The software industry also
includes software service, such as training and consultancy.
The number of software industries are rapidly increasing in Nepal. Various software
companies with various goals, with different targeted customers and targeted groups. Most
of the Nepal based software industries are based on web development. Web development
is a broad term for any activity related to developing a web site for the World Wide Web
or an intranet. This can include e-commerce business development, web design web
content development, client-side/server-side scripting and web server configuration.
Nepal based application development companies are less then web development
companies. And countable number of Banking, Healthcare and Financial application
development companies. Banking and Financial application are most secure application.
Those applications include financial record keeping, transaction management, online
transactions, offline transactions etc. Banking solution is a comprehensive, integrated, yet
5

modular and agile business solution: address all the core need of banks in easy-to-configure
modules. Banking solution provides all the building blocks of business functionality,
enabling users to configure products and process flexibly in order to adapt to a dynamic
environment.

2.2 IT Industry in Nepal


The installation and operation of Main Frame IBM-1401 computer in 1971, in the National
Computer Center (NCC) at Kathmandu in 1971 for the National population census, saw
the advent of Electronic Data Processing Technology in Nepal. NCC was established with
the purpose of giving computer related service to government bodies, developing computer
manpower and enhancing computer consciousness. Later on NCC used ICL-2950/10 Main
Frame computer, a DG Mini-computer, a Prime Mini-computer. Now, there is an
Information and Technology ministry itself in the government level and a National
Informatics Center (NIC) under the ministry, instead of NCC, to advise and formulate
National level IT policies and plans.

2.3 Present Situation


Anything that renders data, information or perceived knowledge in any visual format
whatsoever, via any multimedia distribution mechanism, is considered part of the IT
domain. IT provides businesses with four set of core services to help execute the business
strategy: business process automation, providing information, connecting with customers,
and productivity tools.
IT professionals perform a variety of functions (IT Disciplines/Competencies) that ranges
from installing applications to designing complex computer networks and information
databases. A few of the duties that IT professionals perform may include data management,
networking, engineering computer hardware , data base and software design ,as well as
management and administration of entire systems. Information technology is starting to
spread further than the conventional personal computer and network technologies, and
more into integrations of other technologies such as the use of cell phones, televisions,
automobiles, and more, which is increasing the demand for such jobs.
6

In the recent past, the Accreditation Board for Engineering and Technology and the
Association for computing Machinery have collaborated to form accreditation and
curriculum standard for degree in information technology as a distinct field of study as
compared to Computer Science and Information System today. SIGITE (Special Interest
Group for IT Education) is the ACM working group for defining these standards. The
Worldwide IT services revenue totaled $940 in 2010.

2.4 Challenges and Opportunities


2.4.1

Challenges

There are challenges in IT industry in Nepal. Though this is the only industry that is
growing in Nepal. We all know that its a crucial part for the development of Nation; some
hindrances make it quite tough too. As everything had pros and cons, there are also certain
challenges of IT industry in Nepal. These are included as below:
1. Insufficient allocation of Budget
2. Not sufficient manpower for developing IT industry
3. No implementation of Cyber law
4. Unstable Government and increasing load-shedding
2.4.2

Opportunities

There are lots of opportunities of IT industry in Nepal. This is the only industry that is
growing so fast and incessantly in Nepal. Now this is a very useful way to communicate
with the global market of information technology. It makes everything faster in the context
of developing country like Nepal. In the recent 2-3 years IT industry had been boom for
the developing country like ours. It had played crucial role to enhance the people life. Some
opportunities can be included as
1. Incessant growth of Technology
2. Inauguration and establishment of IT industry.
3. Establishment of many international Software company

2.5 Software Industry in Nepal


Software development, production and application industry is the knowledge based
industry and is the most flourishing industry with highest rate growth. Software production
and application sector has the most potential of being highest foreign currency earner in
the context of Nepal.

CHAPTER 3

INTRODUCTION TO ORGANISATION

Techolate Research and Development has been offering various technologies related
services. The Techolate Research and Development is a focused team of technology
experts and development practitioners who provide integrated and innovative solutions and
services to its client. It emphasize on facilitating the organizations, streamlining the work
culture with the aid of the modern technology and integrating different work procedures.
Techolate Research and Development have significant experience satisfying the most
special technical needs of customers. Techolate understands the importance of a balanced
technical design. It applies the appropriate level of technology to each project, keeping
smaller projects simple and larger projects robust. It has been working with clients mostly
in the area of web application to meet the need of the customer to their best.
3.1.1

Objective of organization

Techolate Research and Development transform technology goals into a well-defined plan;
defines the scope and effort required to help prioritize the factors affecting the specified
scenario. Techolate Research and Development responds to each clients unique wish list
by providing a comprehensive Needs Analysis based on their requirements and
evaluation of existing systems. Our main objectives are as follows:

To provide cost effective software solutions for increased productivity and competitive
edge for organizations and businesses.

To provide consultancy and advisory services on ICT tools and technology.

To conduct research and development on latest technology and promote scaling up.

3.1.2

Organization Hierarchy

Organization structure is the typically hierarchical arrangement of lines of authority,


communications, rights and duties of an organization. Organizational structure determines
how the roles, power and responsibilities are assigned, controlled, and coordinated, and

how information flows between the different levels of management. Techolate Research
and Development has also its organizational structure.

Fig3.1: Organization Hierarchy

3.2 Methodology
A systematic approach and methodology is needed in order to do any type of study and
prepare report on the study being carried. An intense research has to be done in order to
get the appropriate results. This internship report has been designed to give a clear picture
of the operations performed in Pathway Technologies and Services. So, this report contains
primary as well as secondary data collected from all those resources. Placement and
duration of the internship are mentioned underneath.

10

3.2.1

Organization Selection

To gain a real knowledge in his/her academic, a student require theoretical knowledge as


well as practical experience of what he/she had learnt in the classroom. Introducing
internship program in BSc.CSIT has helped the students a lot with practical exposure in
the real world. It is very important to choose the right industry to imply the knowledge
gained because it is a chance to know ones actual potential and to learn from the industry
too. Selecting organization for internship was a tough task. The organization, where we
work as internship for the industrial attachment project, gives the real working environment
experience and exposure. It is also the opportunity for us to show our skills, knowledge
and ability to the real world. As we work for the intern only, the organization should be
well cultured and all the staff should be also cooperative to express their needs and the
suggestion.
The intern had approached to Techolate Research and Development for the internship
program where Mr. Ishwor Mali (Director of Techolate R&D) gave the general idea about
the role of interns in the organization. The intern was assigned as intern in the organization
for a period of 12 weeks and was assigned a project after a brief discussion about the
possible projects that can be accomplished within a limited time frame and one knowledge
horizon.
During the internship period, this project was supervised and mentored by Mr. Sajan
Maharjan (Sr. Software Engineer/Developer of Techolate R&D). The staff members of
Techolate R&D were very cooperative and provide the necessary help and support. The
company provided a healthy environment for learning and implementing the knowledge.
3.2.2

Placement/Duration/Activities

The requirement duration of internship for BSc.CSIT, affiliated to Tribhuvan University,


demands the time of 10 weeks. So, with a view to fulfill this requirement, the intern was
engaged for the period of 12 weeks at Techolate Research and Development. During the
internship period, the intern was asked to develop a web-based application which could
demonstrate the report of the daily logs and schedule of the employees for the day. The

11

intern was placed in IT/Technical Department starting from 1st September 2015 to 30th
November 2015.
The activities that the intern has performed during the internship are:

Design the procedure of the system.

Collected the necessary requirement of the system from the organization members.

Consulted with the supervisor and the person who will be using the system.

Interface and System Design.

Coding and Debugging.

Implementation of the system.

12

CHAPTER 4

ANALYSIS OF ACTIVITIES

4.1 Understanding the system and working environment


This phase simply included getting along with the working environment of Techolate
R&D. Interne considers himself very lucky in this regard. The supervisor was very
helpful and supportive in helping interne to understand the IT infrastructure and working
procedure of the organization. This phase also includes the proper understanding of
communication procedures, reporting mechanisms and functional hierarchy of the firm.

4.2 Preparation Phase


The preparation phase involved looking through tutorials, taking supervisors help and
running programs in IDEs, learning from outputs etc. Interne gathered in-depth
understanding of JavaScript and its related domains during the preparation phase.
4.2.1

Introduction to JavaScript

JavaScript is a programming language that can be included on web pages to make them
more interactive. We can use it to check or modify the contents of forms, change images,
open new windows and write dynamic page content. We can even use it with CSS to make
DHTML (Dynamic HyperText Markup Language). This allows us to make parts of our
web pages appear or disappear or move around on the page. JavaScripts only execute on
the page(s) that are on our browser window at any set time. When the user stops viewing
that page, any scripts that were running on it are immediately stopped. The only exceptions
are cookies or various client side storage APIs, which can be used by many pages to store
and pass information between them, even after the pages have been closed.
JavaScript is a client side, interpreted, object oriented, high level scripting language, while
Java is a client side, compiled, object oriented high level language. Now after that
mouthful, here's what it means. [1]

13

Client side
Programs are passed to the computer that the browser is on, and that computer runs them.
The alternative is server side, where the program is run on the server and only the results
are passed to the computer that the browser is on. Examples of this would be PHP, Perl,
ASP, JSP etc.
Interpreted
The program is passed as source code with all the programming language visible. It is then
converted into machine code as it is being used. Compiled languages are converted into
machine code first then passed around, so we never get to see the original programming
language. Java is actually dual half compiled, meaning it is half compiled (to 'byte code')
before it is passed, then executed in a virtual machine which converts it to fully compiled
code just before use, in order to execute it on the computer's processor. Interpreted
languages are generally less fussy about syntax and if we have made mistakes in a part they
never use, the mistake usually will not cause us any problems.
Scripting
This is a little harder to define. Scripting languages are often used for performing repetitive
tasks. Although they may be complete programming languages, they do not usually go into
the depths of complex programs, such as thread and memory management. They may use
another program to do the work and simply tell it what to do. They often do not create their
own user interfaces, and instead will rely on the other programs to create an interface for
them. This is quite accurate for JavaScript. We do not have to tell the browser exactly what
to put on the screen for every pixel (though there is a relatively new API known as canvas
that makes this possible if needed), we just tell it that we want it to change the document,
and it does it. The browser will also take care of the memory management and thread
management, leaving JavaScript free to get on with the things it wants to do.
High level
Written in words that are as close to english as possible. The contrast would be with
assembly code, where each command can be directly translated into machine code.

14

Object oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of
"objects", which may contain data, in the form of fields, often known as attributes and
code, in the form of procedures, often known as methods. A distinguishing feature of
objects is that an object's procedures can access and often modify the data fields of the
object with which they are associated. In OO programming, computer programs are
designed by making them out of objects that interact with one another. There is significant
diversity in object-oriented programming, but most popular languages are class-based,
meaning that objects are instances of classes, which typically also determines their type
4.2.2

Introduction to CoffeeScript

CoffeeScript is a light language that compiles down to JavaScript. Because it is a language


that compiles to another language, some might classify it as a transcompiler instead of just
a compiler. CoffeeScripts syntax is heavily inspired by Python and Ruby. For the most
part, statements in CoffeeScript correspond one-to-one with their equivalent in JavaScript.
CoffeeScript was created out of love for the JavaScript language, but also out of frustration
with the JavaScript syntax. The JavaScript syntax has a tendency to become cumbersome,
verbose, and arguably, syntactically messy. The CoffeeScript syntax on the other hand,
improves the readability and writabilty of equivalent code that would have otherwise been
written in JavaScript.
CoffeeScripts succinct syntax offers developers an enjoyable experience, but it also
includes other features that makes development more natural. For example, it includes a
simple syntax for object oriented programming, and it includes Python-like array and
object comprehensions that make it easier to iterate and interact with lists and objects. [2]
4.2.3

Introduction to Angularjs

AngularJS is a structural framework for dynamic web apps. It lets us use HTML as our
template language and lets us extend HTML's syntax to express our application's
components clearly and succinctly. Angular's data binding and dependency injection
eliminate much of the code we would otherwise have to write. And it all happens within
the browser, making it an ideal partner with any server technology.
15

Angular is what HTML would have been, had it been designed for applications. HTML is
a great declarative language for static documents. It does not contain much in the way of
creating applications, and as a result building web applications is an exercise in what do I
have to do to trick the browser into doing what I want?
The impedance mismatch between dynamic applications and static documents is often
solved with:

a library - a collection of functions which are useful when writing web apps. Our
code is in charge and it calls into the library when it sees fit. E.g., jQuery.

frameworks - a particular implementation of a web application, where our code fills


in the details. The framework is in charge and it calls into our code when it needs
something app specific. E.g., durandal, ember, etc.

Angular takes another approach. It attempts to minimize the impedance mismatch between
document centric HTML and what an application needs by creating new HTML constructs.
Angular teaches the browser new syntax through a construct we call directives. Examples
include:

Data binding, as in {{}}.

DOM control structures for repeating, showing and hiding DOM fragments.

Support for forms and form validation.

Attaching new behavior to DOM elements, such as DOM event handling.

Grouping of HTML into reusable components. [3]

4.2.4

Introduction to MongoDB

MongoDB is an open-source document database, and leading NoSQL database. MongoDB


works on concept of collection and document. All the data are stored in the form of the
objects. And they are accessed in the same way of accessing the JSON file. And the
collection of the objects are known as the collection like tables in relations databases.
Database is a physical container for collections. Each database gets its own set of files on
the file system. A single MongoDB server typically has multiple databases.

16

Collection is a group of MongoDB documents. It is the equivalent of an RDBMS table. A


collection exists within a single database. Collections do not enforce a schema. Documents
within a collection can have different fields. Typically, all documents in a collection are of
similar or related purpose. [4]
4.2.5

Introduction to Meteor

The Meteor framework is an open source project to create a complete JavaScript App
Platform for full stack reactive app development on mobile and web. This framework is
used to develop the system. And deploy the testing module in the web. [5]

4.3 Planning for ETimeSheet


4.3.1

Background

ETimeSheet is the process of managing a task through its life cycle. It involves planning,
testing, tracking and reporting. ETimeSheet can help either individuals achieve goals, or
groups of individuals collaborate and share knowledge for the accomplishment of
collective goals. Tasks are also differentiated by complexity, from low to high.
Effective task management requires managing all aspects of a task, including its status,
priority, time, human and financial resources assignments, recurrences, notifications and
so on. These can be lumped together broadly into the basic activities of task management.
Managing multiple individual or team tasks may require specialized software, for example
workflow or project management software. In fact, many people believe that etimesheet
should serve as a foundation for project management activities.
ETimeSheet may form part of project management and process management and can serve
as the foundation for efficient workflow in an organization. Project managers adhering to
task-oriented management have a detailed and up-to-date project schedule, and are usually
good at directing team members and moving the project forward.
4.3.2

Problem Statement

An IT organization would obviously like to reduce operational cost and time by generating
and accessing and maintaining information about tasks, work status and employees through
a database and an effective Task Management System.
17

The management is looking into an automated database for the task management system
that saves time for the project managers, Admin or project manager for creating projects,
assigning designation, creating departments, approving the leave request and maintaining
status of projects. Due to not every employee is very information technology inclined, the
database should not be very complicated to use in achieving the main objective.
4.3.3

Planned Overview and working of ETimeSheet

In ETimeSheet, there will be 2 actors: admin and employee. admin will create a project,
designation, departments in the organisations that is required for the organization. He will
be able to add the employee for the following project. Manager will be the administrator
of the ETimeSheet. He can also check the report of the each projects that are assigned to
the employee. He will be approving all the leave requests requested by the employee.
Employee will work on the projects that have been assigned by the admin. On the basis of
the project requirement and work assigned by the admin the employee will be planning
his/her daily schedule i.e. daily logs for e.g. designing for 2 hours, testing for 3 hours and
so on. Employee will be able to request the leave application to the admin for approval.
4.3.4

Software Development Model to be used

After some researching, interne discovered that the processing of the data should be highly
structured and very well understood in the many different stages. Therefore, interne chose
the waterfall model as the Software Development model.
The waterfall model is executed in sequential phases. For each phase, we would need to
identify the different tasks that are being needed to perform and this would allow tracking
of progress easily before proceeding to the next phase. Besides this, we can also set
datelines for completion for the different phases. As such, these datelines will act as
milestones to know whether the project is on schedule, behind schedule or in front of
schedule. All these, makes the monitoring of the progress of the whole schedule easier.
So, it can be concluded that with the use of the waterfall model, the developer can execute
a high level of control on the progress of the whole project and a higher quality of the
design and implementations of the different phases of the projects can be expected with

18

this tighter control on the project as each phase is to be completed with satisfaction before
proceeding to the next phase.

System Planning
System Analysis
System Design
Development
Testing
Fig 4.1: Waterfall Model

4.4 Requirement Analysis


4.4.1

Data Collection

In order to have a good and complete picture of how the system would be like, interne used
two different techniques to collect the proper requirements to develop etimesheet system
Firstly, interne did literature research on the internet about the different types of TMS
systems that were available on the market and the different functions that they may have.
All these gave interne good ideas on what are the functions and attributes that interne would
need to implement as there are definitely still time constraints and not all functions and
attributes are implementable.
Lastly, interne conducted multiple interviews with seniors, teachers and employees who
are dealing with task management issues at their respective companies. Before each
interview sessions, interne would first ask himself what the objectives are and intended end
results that he wanted to achieve and interne would then prepare a set of questions to ask
them at the respective interviews. As such, interne would make full use of the time given
making the interview sessions more fruitful.

19

4.4.2

Software Requirement Specification

At the requirement gathering phase, interne identified the main requirements which
will address end users potential problems. The identified requirements can be categorized
into functional and non-functional requirements.
4.4.2.1 Functional Requirements

The system should be able to provide general details about a particular


employee such as employee id, employee name, post, email etc. Similarly, the
information about project includes project id, project name, project description etc.

The system should be able to provide details regarding status (open, progress,
resolved, reopened, closed.

The system should be able to update details regarding all leave requests for
requested by the employee.

The task management system should easily facilitate managers to create projects
and allow employee to make the daily schedule and request the leave request.

4.4.2.2 Non-Functional Requirements


For any information system, non-functional requirements also will play a major role of the
success of that information system. These non-functional requirements will provide the
atmosphere and environment to achieve success of functional requirements. Interne
identified several non-functional requirements which will be essential to the system.

User Friendliness
User friendliness is one of most important part of the proposed system as end users are
managers and other employees. So it is essential to provide maximum user friendliness
because it will help the end users to minimize their time they spend on it. The ultimate goal
is to provide an information system which will be very easy to use and very flexible.

Secure
Security will play another major part of an information system. Without proper security
implementations we cannot provide the information system product to the end users. It is

20

essential to develop User levels, user logins, user authentications, system log books and
many other features to make sure the developed system is fully secure.

Reliability
The reliability of the system is also a crucial matter. The system should build up its
reliability gradually along with the system maturity by providing truly accurate solutions
& details that enhances user satisfaction.

Availability
The system should be readily available & freely accessible at any given moment to all the
users.
4.4.3

Feasibility Analysis

Feasibility is the measure of how beneficial an information system will be to an


organization. Every project is feasible for given unlimited resources and infinitive time.
Feasibility study is an evaluation of the proposed system regarding its workability, impact
on the organization, ability to meet the user needs and effective use of resources. Thus
when a new application is proposed it normally goes through a feasibility study before it is
approved for development. Feasibility and risk analysis and related in many ways. If a
project risk is great and feasibility of producing software is reduced. When assessing
feasibility of a project following criteria can be identified.
4.4.3.1 Operational Feasibility

A measure of how well a solution meets the identified system requirements to solve
the problem.

Take advantage of the opportunities identified during the scope definition and
problem analysis phases.

Will the solution fulfill the users requirements?

To what degree?

How will the solution change the users work environment?

How do users feel about such a solution?

21

4.4.3.2 Technical Feasibility

A measure of the practicality of a technical solution & the availability of technical


recourses and expertise.

Addresses these major issues.

Is the proposed technology or solution practical?

Do we possess the necessary technical expertise? (Hardware / Personnel)?

4.4.3.3 Economic Feasibility

A measure of the cost-effectiveness of a project.

Will address three major issues.

Is the solution cost-effective?

Whether the solution will pay for itself?

How profitable the solution is?

4.4.3.4 Schedule Feasibility

A measure of how reasonable the project time table is.

Can the solution be designed and implemented during the acceptable time frame?

How much time is available to build the new system?

When it can be built? (Mandatory / Desirable deadlines.)

4.4.3.5 Cultural Feasibility

A measure of how well the solution will be accepted in a given organizational


climate.

Deals with how the end users feel about the proposed system.

Evaluates whether a system will work in a given organizational climate.

4.4.3.6 Legal Feasibility

A measure of how well a solution can be implemented within existing legal and
contractual obligations.

Understands potential legal and contractual ramifications of the system.

Copyright law.

Code ownership.
22

4.5 Designing Task Management System


4.5.1

Use Case Diagram

Create project

Add Department

Leave Request

verify user

Login
Admin

Employee
Designation

Add Designation

Fig 4.2: Usecase Diagram

23

4.5.2

Class Diagram

department

user
userId
firstName
lastName
middleName
emailAddress
address
contact
mobile
home no.
+createUser()
+removeUser()

belongs

departmentId
name
description
isActive
userId
+addDepartment()
+removeDepartment()

leaveRequest

requests

project
projectId
name
startDate
endDate
members
parent
isActive
deleted
+addProject()
+removeProject()
+addMember()

plans

dalilyLog
dailylogId
createdDate
taskDone
taskDescription
timeTaken
userId
projectId
+addDailylogs()

is a

completes

leaveId
startDate
endDate
requestedDate
reason
approvedBy
userId
+addLeave()
+removeLeave()

designation
designatioId
userId
name
-memberName
description
isActive
deleted
+addDesignation()
+removeDesignation()

Fig 4.3: Class Diagram

24

4.5.3

Sequence Diagram

Login Page

Employee

System
System

1.enter(username,password)

2. Verify username and password

3.add dailylogs

4. dailylog added

5.add leave request

6. leave reuest added

Fig 4.4: Employee Sequence

25

Login
Page

Admin

System
System

1.enter(username,password)

2. Verify username and password

3.create project

4. project created

5.assign member

6. display memberlist

Fig 4.4: Admin Sequence

26

4.5.4

Activity Diagram

Admin Activity

Invalid

Try to put valid


username and
password

Enter username and


password

Valid

Open System

Check Employee's
reports

Fig 4.5: Admin Activity


Employee Activity

Invalid

Try to put valid


username and
password

Enter username and


password

Valid

Open System

Updates Dailylogs
for the day

Fig 4.6: Employee Activity


27

4.6 Developing ETimeSheet


ETimeSheet was developed using following frameworks, design patterns, IDEs server and

coding standards.
4.6.1

Framework Used
MeteorJS Framework

4.6.2

Design Patterns Used

Abstract Factory Design Pattern

MVC

4.6.3

IDEs Used

SublimeText

4.6.4

Server Used

4.6.5

Meteor Server
Testing
WebDriverIO

4.7 Testing ETimeSheet


Testing stage answers the questions. Will the system produce the desired results under
known conditions? Software testing is a critical element of system quality assurance and
represents the ultimate review of specification, design and coding. Programmer team
generates integration testing, stress testing, load testing, scalability testing, resolution
testing & cross browser compatibility testing. Once source code has been generated, system
must be tested to identify errors before delivery to the customer. The goal is to design a
series of test cases that have a high likelihood of debugging errors. In case of ETimeSheet
system, test cases were written and testing was carried using webdriverio .Thats where
software testing technique enter the picture, these techniques provide systematic guidance
for designing tests that
1. Exercise the input and output domains of the program to uncover
errors in program function, behavior and performance.
28

2. Exercise the internal logic and interfaces of every software


components.
Testing and implementation were being carried out simultaneously almost from the start of
the implementation phase. Compilation of the program was being done from time to time
making sure that no syntactical errors were present. Testing of the software by creating
hypothetical users and have also ensured the software does not come up with errors once
they have been final delivered.

4.8 Experiences in the Internship


In the organization, interne had been assigned as Java Developer and had learnt a lot. This
internship provided interne with following insights:
1. How to work together in a Team.
2. How to deal with real life queries of IT and way of debugging them.
3. How to deal with customer and handle them corteously
4. How to take input and store them in respective table of database.
5. How to complete the assigned task in timely fashion.

29

CHAPTER 5

LESSON LEARNT, CONCLUSION,


RECOMMENDATION

5.1 Lesson Learnt


Interne believes that during his tenure, he has been exposed to different valuable aspects
of a typical IT professionals day. This will surely help familiarize interne with the breadth
of IT professional work possible in his future careers. Interne strategically targeted specific
opportunities in the internship to participate in events that were integrated with the overall
tasking, and also complement the lessons of the college classroom with practical work life
experiences typical of the professional.
This internship have provided interne with experiences that approximate the real world"
that scholarly world fails to provide. These will help interne to understand the levels of
communications skills, performance and self-management that will be expected from
interne in the real world. Interne have been provided meaningful work experiences to
grow as competent entry-level professional. Before the internship, internes academic
preparations reflect dated programming language courses and lacked balance between
theory and practice. These things reflect in haphazardly assembled. So, rather than sitting
back and complaining, interne decided to proactively take the bull by the horns.

At the end of this internship, interne has completed a project at his own in JavaScript
programming language using MeteorJS framework, MongoDB database at back end, GIT
for version control and followed MVC design pattern for making the project in best
possible way. This program has boosted internes resume and also he is now capable in
dealing with clients because of experiences in dealing with foreign customers. Team
building in the office has enriched internes confidence.
At last the most important thing interne have learned is that internship is more than just a
part-time work arrangement for the student and cheap labor for the employer. Internship
Program is a flexible framework within which talent, innovation and growth is certain to
be nurtured.

30

5.2 Conclusion
In the three months of internship program, interne learned lots of new things and also
developed a useful ETimeSheet System. ETimeSheet is the process of managing
tasks

through

its

life

cycle.

It

involves

planning,

testing,

tracking

and

reporting. Task management can help either individuals achieve goals, or groups of
individuals collaborate and share knowledge for the accomplishment of collective goals.
So, interne developed a ETimeSheet System software for the organization that would help
manager to assign task, manage information within employees, notify the completed task
by employee, leave request approved etc.

This internship program proved to be a golden opportunity for interne for his overall
development and it will surely become an added advantage in the days to come. It was a
wonderful experience to work in close circuit with highly professional and talented group
of employees who have a great vision and sense of determination. This internship not only
helped interne in the academic grounds but also helped to develop software managerial
skills necessary to succeed in the challenging and competitive job environment.

5.3 Recommendation
Interne spent 3 months in Techolate R&D with motivated and cooperative staffs and IT
service department was great. Though it was smooth running and well managed department
with cooperating staffs, author could not help but notice few areas that required attention.
So, there are few recommendations by the interne for the organization which can help the
organization to run more smoothly:
The reporting hierarchy of the company is not effectively managed
Lack of communication between different departments of the company
Interne observed that the organization was using the traditional way of managing
different processes and performing managerial activities. Assigned to and created
by different employees. So, interne is hopeful that along with using ETimeSheet,
other areas of getting things done and most of the administrative procedures will be
digitized.

31

References
[1] M. ". Wilton-Jones., "JavaScript tutorial - Introduction to JavaScript," 11 may 2011.
[Online]. Available: http://www.howtocreate.co.uk/tutorials/javascript/introduction.
[Accessed 17 march 2016].
[2] "jumpstartlab," [Online]. Available:
http://tutorials.jumpstartlab.com/topics/javascript/coffeescript.html. [Accessed 16 march
2016].
[3] Google, "AngularJS," Google, 2010. [Online]. Available:
https://docs.angularjs.org/guide/introduction. [Accessed 16 march 2016].
[4] "Tutorial Point," [Online]. Available:
http://www.tutorialspoint.com/mongodb/mongodb_overview.htm. [Accessed 17 march
2016].
[5] "First Meteor Tutorial," [Online]. Available: http://meteortips.com/first-meteor-tutorial/.
[Accessed 17 March 2016].

32

Bibliography
Whitten &Bently, Introduction to Software Engineering, TATA McGraw Hill, 1998, pp.
163-164
Connolly, T.M. and C.E. Begg, 2004. Database System: A Practical Approach to Design,
Implementation and Management. 4rd Edn., Addison Wesley, USA , pp: 1236.
Schildt, Herbert, The Complete Reference, 2007, 8th edition, TATA McGraw Hill
David Tegarden, Barbara Haley Wixom, Alan Dennis. Systems Analysis and Design with
UML. New York: John Wiley & Sons Inc., August 1, 2001.
Dennis, Alan. Systems analysis and design. North Carolina: Prentice Hall, January 1,
2000.
Ari Lerner, ng-book:The Complete Book on AngularJS. 2013-2014

33

Das könnte Ihnen auch gefallen