Beruflich Dokumente
Kultur Dokumente
Tribhuvan University
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
1.2
Background ...................................................................................................................... 1
1.3
1.4
Work Procedure................................................................................................................ 3
CHAPTER 2
2.1
2.2
2.3
Present Situation............................................................................................................... 6
2.4
2.4.1
Challenges ................................................................................................................. 7
2.4.2
Opportunities............................................................................................................. 7
2.5
CHAPTER 3
3.1.1
3.1.2
Organization Hierarchy............................................................................................. 9
3.2
Methodology .................................................................................................................. 10
3.2.1
3.2.2
Placement/Duration/Activities ................................................................................ 11
CHAPTER 4
4.1
4.2
4.2.1
4.2.2
4.2.3
4.2.4
Introduction to MongoDB....................................................................................... 16
iii
4.2.5
4.3
4.3.1
Background ............................................................................................................. 17
4.3.2
4.3.3
4.3.4
4.4
4.4.1
4.4.2
4.4.3
4.5
4.5.1
4.5.2
4.5.3
4.5.4
4.6
4.6.1
4.6.2
4.6.3
4.6.4
4.6.5
Testing..................................................................................................................... 28
4.7
4.8
CHAPTER 5
5.1
5.2
Conclusion...................................................................................................................... 31
5.3
Recommendation ............................................................................................................ 31
References ..................................................................................................................................... 32
Bibliography ................................................................................................................................. 33
iv
List of Abbreviations
Techolate R&D
BscCSIT
JS
Java Script
AngularJS
CoffeeScript
Mongodb
Jquery
DBMS
SD
System Design
SQL
QA
Quality Assurance
UML
ER
Entity-Relationship
MVC
HTML
ACM
ICT
IT
Information Technology
SIGITE
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
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.
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.
To explore and gain relevant knowledge and skills required to enter into a particular
career field.
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.
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.
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
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.
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.
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
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 conduct research and development on latest technology and promote scaling up.
3.1.2
Organization Hierarchy
how information flows between the different levels of management. Techolate Research
and Development has also its organizational structure.
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
Placement/Duration/Activities
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:
Collected the necessary requirement of the system from the organization members.
Consulted with the supervisor and the person who will be using the system.
12
CHAPTER 4
ANALYSIS OF ACTIVITIES
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
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.
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:
DOM control structures for repeating, showing and hiding DOM fragments.
4.2.4
Introduction to MongoDB
16
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]
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
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
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
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
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 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.
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
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.
To what degree?
21
Can the solution be designed and implemented during the acceptable time frame?
Deals with how the end users feel about the proposed system.
A measure of how well a solution can be implemented within existing legal and
contractual obligations.
Copyright law.
Code ownership.
22
Create project
Add Department
Leave Request
verify user
Login
Admin
Employee
Designation
Add Designation
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()
24
4.5.3
Sequence Diagram
Login Page
Employee
System
System
1.enter(username,password)
3.add dailylogs
4. dailylog added
25
Login
Page
Admin
System
System
1.enter(username,password)
3.create project
4. project created
5.assign member
6. display memberlist
26
4.5.4
Activity Diagram
Admin Activity
Invalid
Valid
Open System
Check Employee's
reports
Invalid
Valid
Open System
Updates Dailylogs
for the day
coding standards.
4.6.1
Framework Used
MeteorJS Framework
4.6.2
MVC
4.6.3
IDEs Used
SublimeText
4.6.4
Server Used
4.6.5
Meteor Server
Testing
WebDriverIO
29
CHAPTER 5
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