Tribhuvan University: Institute of Science and Technology Kirtipur, Nepal
Tribhuvan University: Institute of Science and Technology Kirtipur, Nepal
Kirtipur, Nepal
on
At
Submitted by:
Santosh Rana Magar
TU Exam Roll No: 7511/072
TU Regd. No: 5-2-0577-0177-2015
Submitted to:
Department of Computer Science and Information Technology
Nepalaya College, Kalankisthan, Kathmandu
February 2020
Student’s Declaration
I hereby declare the internship report entitled Internship Report on Form Builder
& Data Collection Application submitted to the office of dean, Faculty of Science
and Technology, Tribhuvan University, is my internship done in partial fulfillment
of the requirements for the Bachelor of Science in Computer Science and
Information Technology under the supervision and guidance of Mr. Bikash Balami
as a supervisor and Er. Sandeep Adhikari, GIS/IT Manager of ADMC
Engineering Pvt. Ltd. as a mentor.
______________________
I hereby recommend that this report, entitled Internship Report on Form Builder
& Data Collection Application, prepared under my supervision by Mr. Santosh
Rana Magar [7511/072] in the partial fulfillment for the requirement of Bachelor
of Science in Computer Science and Information Technology of Tribhuvan
University be processed for the evaluation.
___________________
GIS/IT Manager
I hereby recommend that this report, entitled Internship Report on Form Builder
& Data Collection Application, prepared under my supervision by Mr. Santosh
Rana Magar [7511/072] in the partial fulfillment for the requirement of Bachelor
of Science in Computer Science and Information Technology of Tribhuvan
University be processed for the evaluation.
___________________
Visiting Faculty
Nepalaya College
Certificate of Approval
This is to certify that the project prepared by Mr. Santosh Rana Magar [7511/072]
entitled Internship Report on Form Builder & Data Collection Application, in
the partial fulfillment for the requirement of Bachelor of Science in Computer
Science and Information Technology has been well studied. In our opinion it is
satisfactory in the scope and quality as an intern report for the required degree.
Evaluation Committee
____________________ ____________________
I express my utmost gratitude to GIS/IT Manager of ADMC Engineering Pvt. Ltd. Er.
Sandeep Adhikari, who in spite of being extraordinarily busy with his duties, took
time out to hear, guide and keep me on the correct path and allowing me to carry out
project at their esteemed organization and extending during the training.
Finally, I would like to express my deepest thanks toward my family and friends for
their kind co-operation and encouragement and special thanks to my mentor and
supervisor.
i
Abstract
This report has been prepared for the internship that has been done on Data Collection
Web Application at ADMC Engineering Pvt. Ltd., New Baneshwor, Kathmandu.
Data collection is a key component of an information system. The use of Internet to aid
research practice has become more popular in the recent years. Internet surveying and
electronic data collection may revolutionize many disciplines by allowing for easier
data collection, larger samples, and therefore more representative data. Since web
services are platform-independent, it can access data stored in the JSON format from
any platform.
This system is used to make dynamic forms using form builder component of system
and make those forms available online to the user of organization user through REST
API. Users fill those forms and send data to the organization web server.
ii
Table of Contents
ACKNOWLEDGEMENT ........................................................................................... I
ABSTRACT ................................................................................................................. II
LIST OF ABBREVIATIONS ............................................................................... VIII
CHAPTER 1: INTRODUCTION ............................................................................... 1
iii
Chapter 6: Conclusion ............................................................................................ 7
5.2 TOOLS................................................................................................................. 22
iv
5.2.1 Sublime Text 3............................................................................................. 22
5.3.7 JavaScript..................................................................................................... 24
CHAPTER 6 : CONCLUSION................................................................................. 30
v
6.2 FUTURE ENHANCEMENT .................................................................................... 30
vi
List of Figure
vii
List of Tables
viii
List of Abbreviations
ER - Entity Relationship
JS - JavaScript
ix
Chapter 1: Introduction
1.1 Introduction of Internship
ADMC Engineering Pvt. Ltd. is a Geo-IT company based in Kathmandu, Nepal. The
company holds specific expertise in digital mapping, surveying, geodata management,
development of map-centric applications and infrastructure works in the realms of
buildings, roads, irrigation, water supply and sanitation, hydropower, etc. with
particular emphasis on social and environmental aspects. The prime area of the
company is in collecting and analyzing geo-tagged data to turn them into information
that can facilitate better decision making. The list of clients consists of Government and
Non-Government organizations, Hydropower companies and other small and medium
scale companies. As professionals in the sector of digital mapping and geo-information
management, ADMC Engineering Pvt. Ltd. develop platforms that can help in
1
collecting, visualizing, analyzing distributing geo data for planning, development and
analysis.
1.2.2 Organization Hierarchy
The organization’s structure has evolved to perform better, as an organization and to
provide excellent services to the users. The company has departments to facilitate the
business process, which also has good coordination among each other. The
organizational hierarchy has also maintained according to its various lines of work. The
Organization Chart of ADMC Engineering Pvt. Ltd. is shown below.
2
Figure 1.2: Location map of Organization
As per the requirement of Tribhuvan University, the students require at least minimum
of ten weeks or 180 hours long of internship tenure. Selection of proper organization is
one of the important parts of internship program. A better organization can give better
experience at real work environment which is the original objective of the internship
program. I have completed 4 months working days as an intern and an employee of the
organization.
Holiday Saturday
3
1.4 Background
Form builder is not new topic to the internet world at all. There has been numerous
form builder system available such as Fulcrum, JotForm, JQuery Form etc. ADMC
Engineering is currently working on many projects such as survey data collection which
is compatible for GIS. Where surveyor needs to send the data.
This application is web-based platform which is dedicated to generating dynamic form
and store the form data on organization server. API also developed for mobile
application. As an intern, the author was given the task of designing and developing
form builder. The base of the study was to review the different procedure about dynamic
form building. This study helps user to create dynamic forms.
There is a huge social impact of having a form builder application for business, as it
will save a lot of time and money because there is no longer a need to go through static
form. Our field surveyor needs the dynamic form. Sometimes they need to collect the
extra data but old form does not allow and there is no such form validation.
On the other hand, although there is only some application that are available in the
market that can generate the dynamic form and collect the data. Therefore, developing
a system would be the better solution.
1.6 Objectives
This report is prepared for the purpose of acquiring my achievement during internship
period and the general functions of the company, ADMC Engineering Pvt. Ltd. As well
as I here tried to articulate extensively the performance of ADMC Engineering Pvt. Ltd.
4
• To help students potentially land permanent or contractual jobs from host
company.
1.6.2 Objective from the Internship Project
The main objective of this internship is to get develop the web base form builder; we
aim to meet the following objectives:
The main task assigned is to developing the form builder. The project is handled to the
author as soon as the internship started. We discuss about the information required to
develop system. First of all, we need draggable form making user interface the we
choose form.io because it serializes the form component to JSON format. So, we can
extract the JSON and make schema in MongoDB. Then we can make form from the
database schema. Form.io send the final result to their server the clone the form.io and
then recompiled to make it compatible to our project. Other data are store in
PostgreSQL database. Then we choose the Django as back-end.
The role assigned for author as an intern can be summarized as follow:
• Study the existing dynamic form making system
• Developing form builder, debugging and testing.
5
1.8 Details of the work done
Week Activity
First & Second Project introduction and collecting the Tools requires for
project initiation.
Third Design the front end of application by using HTML and CSS.
Fourth Clone the form.io library from GitHub repository and modified.
Fifth Study about the MongoDB and NOSQL and search library
available for this.
Eight & Ninth Writing the Views, Mixing and middle-ware for back-end.
1.9 Motivation
The organization selection to meet the criteria of students’ knowledge, skill and interest
is not only essential but important also. I have selected an IT company for my internship
project. The team members of the organization were friendly in nature and hospitality
of it was sound to everyone. Web development ranges from simple to complex. I have
used open source systems which made my project less costly. I was highly engaged to
the public via personal networking, marketing as well as communication.
6
1.10 Report Organization
This report is separated into different chapters for proper readability. The report consists
of six chapters in total, along with references and conclusion.
Chapter 1: Introduction
This chapter gives an overview of requirement collection, analysis and discuss the
functional, non-function requirements and feasibility study of application.
This chapter contains system design technique such as architecture design, schema
design and process design.
This chapter gives an overview of tools used for making application and Testing such
as unit testing, integrated testing and system testing.
Chapter 6: Conclusion
This chapter gives a conclusion of internship program and application. Also discuss
about the future enhancement of application.
7
Chapter 2: Literature Review
During my internship period I had gone through many literatures which helped on my
work throughout this period. Form Builder is an application that creates customizable,
job-specific forms for unit needs. Form Builder administrators, with help from ATLAS
Applications, have the capacity to maintain, edit, and redistribute their own forms.
Utilizing a host of possible features, Form Builder administrators can modify and
update forms depending on the specifics of a project. Instead of units having to make
their process fit the tool, Form Builder allows units to create a tool that fits their process
(R., 2016-04-11).
The traditional approach to relational database design starts with the conceptual design
of an application based schema in a model like the Entity-relationship model, then
mapping that to a logical design and eventually representing it as a set of related
normalized tables (Malhotra, 2014 June).
The rapid expansion of mobile devices, mobile phones and mobile smartphones, makes
mobile technology a powerful tool in data collection and survey research. Nowadays,
it is easy for one to collect data, through use of apps that can give a timely and real time
information, measured by experience sampling and auxiliary data by use of reality
mining (Barxilay, 2019 Fab).
The use of mobile web sites and mobile web applications (mobile web apps), on the
other hand, is somewhat more elusive to measure and estimate as there are no app stores
so to speak. This statistic indicates a smaller yet significant usage of the Internet from
mobile web browsers. Furthermore, the key technology that mobile web apps depend
on is HTML5. The advent of HTML5 and interrelated technologies such as CSS3 and
JavaScript APIs has made these common web tools more powerful and capable to
produce web apps that rival native apps in terms of functionality, design, interaction,
and use of multimedia (Jobe, 2013 Oct).
8
Chapter 3: System Analysis
3.1 Requirement Collection
When it comes to any type of system, requirement collection plays a key role.
Requirements collection is not only important for the system, but it is also important
for the system management function. The application that I have developed, during this
internship program had the initial requirements laid out by the field surveyor which
were briefed to us by our project manager and team leader.
The process that was held while collecting the requirements of the system are as
follows:
• Team Discussion
Team discussion is the process of discussion how the project should be implemented
by professionals.
• Understanding the focused group
Application should have the aim of what the audience want to interact in the application.
3.2 Requirements Analysis
Requirement analysis is critical to the success of a systems or software project. The
requirements should be documented, actionable, measurable, testable, traceable, related
to identified business needs or opportunities and defined to level of detail sufficient for
system design.
3.2.1 Functional Requirements
A Functional requirement is a description of the service that the system must offer. It
describes a software system or component. A function is nothing but input to the
system, its behavior and output. It can be a calculation, data interaction, or any other
specific functionality which defines what function a system is likely perform (What is
a Functional Requirement?, n.d.). The main functional requirements of this system are
as follow:
a) Create accounts/Sign UP
Description: Admin will create the new user.
9
Table 3.1: Create account
S. N Requirements Priority
b) Authenticate user
Description: Admin or user login/logout into system by providing login
credentials.
S. N Requirements Priority
c) Authorization user
Description: Admin will assign the permission to the user.
S. N Requirements Priority
d) Creating/Update/Delete Projects
S. N Requirements Priority
10
d) Creating Form
Description: User will create form.
S. N Requirements Priority
d) Update/Delete Form
Description: User will create, update and delete form.
S. N Requirements Priority
S. N Requirements Priority
Use case diagrams play an important role in modeling with UML. Careful modeling is
crucial in obtaining a correct and efficient system architecture. The paper refers to the
formal analysis of the use case diagrams. A formal model of use cases is proposed and
its construction for typical relationships between use cases is described (Formal
Analysis of Use Case Diagram, 2010 Jan).
12
In above figure, we can see that three actor who performs a role in our system
accordingly. The Oval represent the function that are performed by the respective
actors. The rectangle block represents a whole system and arrow shows the direction of
data flow.
First of all, the Admin create the organization and create the organization user. Then
admin will assign the respective permission to the user. Only Authorized user will able
to create the form and fill the data.
Feasibility study is the process of whether or not the project is worth doing or not.
Feasibility studies were undertaken with tight time constraints. I have taken 1 week for
in feasibility study for this project. A feasible project is one where the project could
generate adequate amount of cash flow and profit, withstand the risk it will be
encounter, remain viable in the long-term. The feasibility study of this application had
been carried out which are as follows:
3.3.1 Technical Feasibility
This form builder and data collection app is a technical feasible. The hardware and
software requirement for development of this applications are not many already
available and library are free and open source. The work for this project is done with
available equipment and existing software technology. All the browser except old
Internet Explore.
3.3.2 Operational Feasibility
Assessing the operational feasibility is to gain an understanding of whether the
proposed system will likely to solve the business problems, or the advantage of the
opportunities or not. It is important to understand how the new system will fit into the
current day-to-day operations of the organization. Through this application user can
create the dynamic field form and get the data in structure format.
3.3.3 Economic Feasibility
Economic feasibility is the analysis of a project's costs and revenues in an effort to
determine whether or not it is logical and possible to complete. This application is
completely economic feasible because this application is made using all open source
software and library and development period is just 4 months.
13
3.3.4 Schedule Feasibility
Schedule feasibility is a measure of how reasonable the project timetable is. So, feasible
schedule had been managed through proper time schedule. Since our project has been
completed on-time, we can say that our project is feasible.
The schedule for the development of the project are show in the figure below:
2 Proposal Submission 3d
3 Application Design 7d
7 Documentation 5d
3.4.1 ER Diagram
The ER is a high-level conceptual data model diagram. Entity-Relation model is based
on the notion of real-world entities and the relationship between them. ER modeling
helps you to analyze data requirements systematically to produce a well-designed
database. So, it is considered a best practice to complete ER modeling before
implementing your database.
14
Figure 3.2: ER Diagram
A flowchart is a type of diagram that represents the workflow or process, showing the
steps as boxes of various kinds, and their order by connecting them with arrows.
15
Figure 3.3: Flow diagram of the system
16
Chapter 4: System Design
4.1 System Design
A database schema is the skeleton structure that represents the logical view of the entire
database. It defines how the data is organized and how the relations among them are
associated. It formulates all the constraints that are to be applied on the data. A database
schema defines its entities and the relationship among them. It contains a descriptive
detail of the database, which can be depicted by means of schema diagrams. It’s the
database designers who design the schema to help programmers understand the
database and make it useful (Database Schema, n.d.).
17
Figure 4.2: Database Schema
In below figure, there are ten database table: Project, User, Role, Permission, Form,
Form Data, Role_user, Project_user, Permission_role, Permission_user which has their
own primary key and attributes. The connection line is showing the relationship
between tables.
18
4.3.2 Sequence Diagram
A sequence diagram simply depicts interaction between objects in a sequential order
i.e. the order in which these interactions take place. We can also use the terms event
diagrams or event scenarios to refer to a sequence diagram. Sequence diagrams describe
how and in what order the objects in a system function. These diagrams are widely used
by businessmen and software developers to document and understand requirements for
new and existing systems.
19
Chapter 5: Implementation and Testing
5.1 Implementation
5.2 Tools
Sublime Text is a shareware cross-platform source lightweight code editor. Which have
great tooling for web design and python programming.
VSCode includes enriched built-in support for Node.js development with JavaScript
and TypeScript, powered by the same underlying technologies that drive VSCode.
Using VSCode, all the codes such as HTML, CSS, JS and Python were written in order
to develop the web application for the system and easy for debugging.
5.2.3 Postman
Postman is a great tool for prototyping APIs, and it also has some powerful testing
features. It is a Google Chrome app for interacting with HTTP APIs that presents us
with a friendly GUI for constructing requests and reading responses. This tool was used
for the testing of the APIs implemented on the system during its development.
5.3.3 NGINX
20
This system allows you to build "serverless" data management applications using a
simple drag-and-drop form builder interface.
5.3 Technology
5.3.1 Python
21
runs on many operating systems such as Linux, FreeBSD, OS X, Solaris, and Microsoft
Windows etc.
5.3.5 HTML5
HTML5 known as Hyper Text Markup Language version 5, the authoring language
used to create documents on the World Wide Web. HTML defines the structure and
layout of a Web document by using a variety of tags and attributes. HTML was used.
HTML tags were used in posts, pages, sidebar text widgets to code a hyperlink by hand,
or adjust the header sizes.
5.3.6 CSS3
CSS3 stands for Cascading Style Sheets version 3. It describes how HTML elements
are to be displayed on screen or in other media. In this project, additional CSS was used
when further customization on the site was required. Sometimes, the theme does not
work as per the requirement of the user so to meet the requirement of the user additional
CSS was used.
5.3.7 JavaScript
jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and
manipulation, as well as event handling, CSS animation, and Ajax. It is free, open
source software using the permissive MIT License. Some of the functionalities like date
picking are handled using this technology.
The requirement of the system is already known so Waterfall model was used to
develop the system because development process looks like the flow, moving step by
22
step through the phases of analysis, projecting, realization, testing, implementation, and
support. The detailed methodology used to develop the system are described below.
The waterfall model is comprised of series of very definite phases each one intended to
be started sequentially only after the last has been completed, with one or more tangible
deliverable produced at the end of each phase of the waterfall model of SDLC.
It is crucial for requirement collection and analysis. This phase was used to determine
the requirements such as: who are target group for the system? How will they use the
system? These were the type of questions that were answered during the requirements
gathering phase. The overall analysis of requirements is done in chapter 3.
5.4.2 System Design
In this phase, the actual design of the system takes place. The output of the design phase
is the design document that acts as an input for all subsequent SDLC phases. The overall
design of the system is presented in chapter 4.
5.4.3 Implementation
Coding phase is carried out after the design phase. It includes the translation of the
requirements specified in requirement phase into a logical structure that can be
implemented in a programming language. Each functionality is linked with another and
23
inter connectivity is transparent and smooth. The project is done using sublime text and
visual studio as code editor. Pgadmin4 and mongo compass is used as database
management tools.
5.4.4 System Testing
After the code was developed in the coding phase, the codes were tested to check
whether or not it complied with the requirements and that the code actually solved the
needs that were addressed in the requirements phase. The testing of the 30project has
been done on emulator, chrome web browser and as well as real hardware. It has been
done for the individual functionalities of the project. Errors that occurred were corrected
and further debugging was performed. The overall testing viz unit testing, integration
testing and system testing is presented in below testing topic.
5.4.5 System maintenance and Documentation
Unit testing is a software testing method by which individual units of source code, sets
of one or more computer program modules together with associated control data, usage
procedures, and operating procedures, are tested to determine whether they are fit for
use. Unit testing has been done testing individual activity of the application.
Each function like registration, sign in and assign role and permission has been tested
individually. All the units testing has been done by writing test cases and chrome web
browser for web application.
24
Table 5.1: Test Cases
25
TC Update Name, slug, title, type, project, Registration, regst, pass
10 Form component Regs, form, MIS,
json(data)
System Testing is a level of the software testing where a complete and integrated
software is tested.
The system testing has been performed by testing the whole application in Chrome web
browser with and without the internet connection. The whole application runs smoothly
and without error with the internet connection. Without the internet connection, the
application cannot perform fully
26
Chapter 6: Conclusion
6.1 Conclusion
I got great opportunity to get enrolled in the development of system which was solely
aim to manage different components and tasks efficiently and effectively.
A form builder is developed which has various interactive function and features. It has
simple user interface. The various kind of data can be easily added, changed and
deleted. Hence, all the requirements and the objectives of the project have been fulfilled
by the application.
This internship program has given me the chance to learn about the real-world field in
IT sector. It has given a opportunity to learn the practical knowledge from the
professionals themselves. It has helped me improve my skills, knowledge, abilities to
cope in office environment. With the knowledge gained from the organization of
internship author has been able to make a dynamic form and working with node.js.
27
References
About Python. (n.d.). Retrieved from www.python.org: https://www.python.org/about/
Formal Analysis of Use Case Diagram. (2010 Jan). Formal Analysis of Use Case
Diagram.
Malhotra, K. (2014 June). Towards a Form Based Dynamic Database Schema Creation
and Modification System.
28
CHAPTER 8: APPENDIX
APPENDIX: SCREENSHOTS
29
8.3 Create Project
30
8.5 Fill the Form
31
8.9 Form Reports
32