Report Online Internship
Report Online Internship
A INTERNSHIP REPORT
Submitted by
Student Name
Enrollment No.
In partial fulfillment for the award of the degree of
DIPLOMA IN ENGINEERING
in
Information Technology
College Name
1|Page
216480316039
CERTIFICATE
This is to certify that the project report submitted along with the project entitled Android
development been carried out by Student Name under my guidance in partial fulfillment for
the degree of Diploma in Engineering in Information Technology, 5th Semester of Gujarat
Technological University, Ahmadabad during the academic year 2022-23.
2|Page
216480316039
DECLARATION
We hereby declare that the Internship report submitted along with the Android
Development submitted in partial fulfillment for the degree of Diploma in Engineering in
Information Technology to Gujarat Technological University, Ahmedabad, is a bonafide
record of original project work carried out by me At Company Name. under the supervision
of Sagar Khatri and that no part of this report has been directly copied from any students’
reports or taken from any other source, without providing due reference.
3|Page
216480316039
JOINING LETTER:
4|Page
216480316039
INTRODUCTION
1.1 Introduction to organisation you worked in:
I had the chance to work with a Snapfix in the Python industry, where I obtained useful
expertise and took part in interesting projects. This Snapfix is well known for its proficiency
in utilising Python's power to create reliable, scalable, and creative solutions for a variety of
sectors.
At this Snapfix, we promoted a lively, cooperative workplace that valued innovation,
problem-solving, and lifelong learning. The team was made up of skilled Python
programmers, software engineers, and data scientists who were enthusiastic about utilising
Python's adaptability to create cutting-edge systems and applications.
Snapfix’s main goal was to build effective online apps, data analysis tools, machine learning
models, and automation scripts by utilising Python's rich libraries and frameworks. Python's
readability and simplicity enabled us to prototype and deploy options, cutting down on
development time while upholding high standards.
I got the chance to work on numerous projects that demonstrated Python's versatility
throughout my employment. We regularly delivered solutions that beyond customer
expectations, whether we were developing scalable web apps using Django or Flask or
putting in place data analysis pipelines using Pandas and NumPy.
The focus on code quality, testing, and best practises was one of the noteworthy elements of
working in this organisation. To guarantee the dependability and stability of our Python
codebase, we used agile approaches and strong testing tools like pytest and unittest.
5|Page
216480316039
The Snapfix's dedication to ongoing learning and professional development also matched my
personal ideals. I was impressed with the Snapfix's internal training initiatives, such as
workshops and seminars, which it provides to staff members to assist them develop their
abilities and keep current on developments in the Python environment. This emphasis on
development and learning fit in with want to learn more and become a better Python coder.
1.3 Justification for choosing the organization
My choice of this organisation as a Python developer was influenced by a number of strong
factors that completely match my professional objectives and aspirations in the sector. The
main grounds for choosing this organisation are listed below:
Strong Focus on Python: I made my choice in part because of this Snapfix's strong emphasis
on Python development. Python is a strong and flexible programming language, so I
immediately saw its enormous potential for creating reliable and scalable systems. I was
certain that because the Snapfix specialises in Python, I would have the chance to work on
interesting projects and build a thorough understanding of Python programming.
Practical Project Experience: Working on actual projects was one of the most beneficial
experiences I had during my stay here. I was given responsibility for important tasks right
away and given the freedom to participate in project development. I was able to put my
Python knowledge to use, discover new technologies, and gain useful understanding of the
software development process thanks to this practical experience.
Opportunities for continual Learning: Professional growth and continual learning were given
real priority by this Snapfix. I was inspired to investigate new technologies, go to pertinent
conferences and seminars, and participate in internal knowledge-sharing sessions. Through
these possibilities, the organisation significantly improved my technical proficiency and kept
me up to date on the most recent developments in Python and related fields.
6|Page
216480316039
7|Page
216480316039
Operators:
Python divided the operators in 7 groups :
- Subtraction Subtracts right hand operand from left hand operand. a–b=-
10
% Modulus Divides left hand operand by right hand operand and returns b % a =
remainder 0
// Floor Division - The division of operands where the result is the 9//2 = 4
quotient in which the digits after the decimal point are removed. But and
if one of the operands is negative, the result is floored, i.e., rounded 9.0//2.0
away from zero (towards negative infinity) − = 4.0, -
11//3 = -
4, -
11.0//3 =
-4.0
8|Page
216480316039
== If the values of two operands are equal, then the condition becomes true. (a == b)
is not
true.
!= If values of two operands are not equal, then condition becomes true. (a != b)
is true.
<> If values of two operands are not equal, then condition becomes true. (a <> b)
is true.
This is
similar
to !=
operator.
> If the value of left operand is greater than the value of right operand, then (a > b) is
condition becomes true. not true.
< If the value of left operand is less than the value of right operand, then (a < b) is
condition becomes true. true.
>= If the value of left operand is greater than or equal to the value of right (a >= b)
operand, then condition becomes true. is not
true.
<= If the value of left operand is less than or equal to the value of right (a <= b)
operand, then condition becomes true. is true.
9|Page
216480316039
+= Add It adds right operand to the left operand and assign the result to left c += a is
AND operand equivalent
to c = c +
a
-= Subtract It subtracts right operand from the left operand and assign the result to c -= a is
AND left operand equivalent
to c = c -
a
*= Multiply It multiplies right operand with the left operand and assign the result to c *= a is
AND left operand equivalent
to c = c *
/= Divide It divides left operand with the right operand and assign the result to c /= a is
AND left operand equivalent
to c = c /
a
%= It takes modulus using two operands and assign the result to left c %= a is
Modulus operand equivalent
AND to c = c %
a
//= Floor It performs floor division on operators and assign value to the left c //= a is
Division operand equivalent
to c = c //
a
10 | P a g e
216480316039
& Binary Operator copies a bit to the result if it exists in both operands (a & b)
AND (means
0000 1100)
^ Binary It copies the bit if it is set in one operand but not both. (a ^ b) = 49
XOR (means
0011 0001)
<< Binary The left operands value is moved left by the number of bits a << 2 =
Left Shift specified by the right operand. 240 (means
1111 0000)
11 | P a g e
216480316039
>> Binary The left operands value is moved right by the number of bits a >> 2 = 15
Right Shift specified by the right operand. (means
0000 1111)
and Logical If both the operands are true then condition becomes true. (a and b) is true.
AND
or Logical OR If any of the two operands are non-zero then condition (a or b) is true.
becomes true.
not Logical Used to reverse the logical state of its operand. Not(a and b) is
NOT false.
not in Evaluates to true if it does not finds a variable in the specified x not in y, here
sequence and false otherwise. not in results in a
1 if x is not a
member of
sequence y.
12 | P a g e
216480316039
is not Evaluates to false if the variables on either side of the operator point x is not y,
to the same object and true otherwise. here is
not results in
1 if id(x) is
not equal to
id(y).
Structured data is information that has been formatted and transformed into a well-defined
data model. The raw data is mapped into predesigned fields that can then be extracted and
read through SQL easily. SQL relational databases, consisting of tables with rows and
columns, are the perfect example of structured data.
The relational model of this data format utilizes memory since it minimizes data redundancy.
However, this also means that structured data is more inter-dependent and less flexible. Now
let’s look at more examples of structured data.
13 | P a g e
216480316039
This type of data is generated by both humans and machines. There are numerous examples
of structured data generated by machines, such as POS data like quantity, barcodes, and
weblog statistics. Similarly, anyone who works on data would have used spreadsheets once in
their lifetime, which is a classic case of structured data generated by humans. Due to the
Snapfix of structured data, it is easier to analyze than both semi-structured and unstructured
data.
Unstructured data –
Unstructured data is a data which is not organized in a predefined manner or does not have
a predefined data model, thus it is not a good fit for a mainstream relational database. So
for Unstructured data, there are alternative platforms for storing and managing, it is
increasingly prevalent in IT systems and is used by Snapfixs in a variety of business
intelligence and analytics applications. Example: Word, PDF, Text, Media logs.
Unstructured data is defined as data present in absolute raw form. This data is difficult to
process due to its complex arrangement and formatting. Unstructured data management may
take data from many forms, including social media posts, chats, satellite imagery, IoT sensor
data, emails, and presentations, to organize it in a logical, predefined manner in a data
storage. In contrast, the meaning of structured data is data that follows predefined data
models and is easy to analyze. Structured data examples would include alphabetically
arranged names of customers and properly organized credit card numbers. After
understanding the definition of unstructured data, let’s look at some examples.
Semi-structured data is information that does not reside in a relational database but that has
some Snapfixal properties that make it easier to analyze. With some processes, you can store
them in the relation database (it could be very hard for some kind of semi-structured data),
but Semi-structured exist to ease space. Example: XML data.
Your data sets may not always be structured or unstructured; semi-structured data or partially
structured data is another category between structured and unstructured data. Semi-structured
data is a type of data that has some consistent and definite characteristics. It does not confine
14 | P a g e
216480316039
into a rigid structure such as that needed for relational databases. Snapfixal properties like
metadata or semantics tags are used with semi-structured data to make it more manageable;
however, it still contains some variability and inconsistency.
Examples of Semi-Structured Data
An example of data semi-structured format is delimited files. It contains elements that can
break down the data into separate hierarchies. Similarly, in digital photographs, the image
does not have a pre-defined structure itself but has certain structural attributes making them
semi-structured. For instance, if an image is taken from a smartphone, it would have some
structured attributes like geotag, device ID, and DateTime stamp. After being stored, images
can also be assigned tags such as ‘pet’ or ‘dog’ to provide a structure.
Fig 2.1.1
15 | P a g e
216480316039
Fig 2.1.2
Task 4: List out 5 methods of list, set and dictionary. Explain them with
example.
Python has a set of built-in methods that you can use on lists/arrays.
Table no. 2.1.9
Method Description
16 | P a g e
216480316039
Fig 2.1.3
Output:
Fig 2.1.4
Example of remove():
Fig 2.1..5
Output:
Fig 2.1.6
Example of pop()
Fig 2.1.7
Output:
Fig 2.1.8
17 | P a g e
216480316039
Example of push()
Fig 2.1.9
Output:
Fig 2.1.10
Task 5: Build a student report card program which can take subject, marks as input
and return the marks of students using function.
Fig 2.1.11
18 | P a g e
216480316039
Output:
Fig 2.1.12
Task 6:Build a program to find factorial, prime and odd even from user input:
Odd and Even:
Fig 2.1.13
Output:
Fig 2.1.14
19 | P a g e
216480316039
Prime:
Fig 2.1.15
Output:
Fig 2.1.16
20 | P a g e
216480316039
Date:
Day:
Task 1: List out five inbuilt libraries of python and use their methods with
example.
library is a collection of books or is a room or place where many books are stored to be
used later. Similarly, in the programming world, a library is a collection of precompiled
codes that can be used later on in a program for some specific well-defined operations.
Other than pre-compiled codes, a library may contain documentation, configuration data,
message templates, classes, and values, etc.
Libraries of python are listed below:
1. Numpy
Numpy is considered as one of the most popular machine learning library in Python.
TensorFlow and other libraries uses Numpy internally for performing multiple operations
on Tensors. Array interface is the best and the most important feature of Numpy.
Features Of Numpy
Methods:
1. numpy.vstack()
Example:
21 | P a g e
216480316039
Fig 2.1.17
Output:
Fig 2.1.18
2. Scipy
SciPy in Python is an open-source library used for solving mathematical, scientific,
engineering, and technical problems. It allows users to manipulate the data and visualize the
data using a wide range of high-level Python commands. SciPy is built on the Python NumPy
extention. SciPy is also pronounced as “Sigh Pi.”
Methods:
1. cbrt()
This is used to return the cube root of the given number
Example:
Fig 2.1.19
Output:
Fig 2.1.20
3.Scikit-learn
Scikit-learn (Sklearn) is the most useful and robust library for machine learning in Python.
It provides a selection of efficient tools for machine learning and statistical modeling
including classification, regression, clustering and dimensionality reduction via a consistence
interface in Python. This library, which is largely written in Python, is built upon NumPy,
SciPy and Matplotlib.
4.Pandas
22 | P a g e
216480316039
Pandas is an open source Python package that is most widely used for data science/data
analysis and machine learning tasks. It is built on top of another package named Numpy,
which provides support for multi-dimensional arrays.
Table no. 2.1.10
\w\w\w\w = geek
\w\w\w =! geek
\w alphanumeric character
? 0 or 1 character s? = _ or s
\W symbols \W = %
geek[sy] = geeky
geek[sy] != geeki
[a-z] or [0-9] character set
5.Tensorflow
TensorFlow is an end-to-end open-source machine learning platform with a focus on deep
neural networks. Deep learning is a subtype of machine learning that analyses massive
amounts of unstructured data. Since it works with structured data, deep learning is different
from normal machine learning.
Task 3:
23 | P a g e
216480316039
List put at least 10 meta characters and use them in pattern for email and
phone number validation.
Metacharacters are considered as the building blocks of regular expressions. Regular
expressions are patterns used to match character combinations in the strings. Metacharacter
has special meaning in finding patterns and are mostly used to define the search criteria and
any text manipulations.
Email
validation:
Fig 2.1.21
Output:
Fig 2.1.22
24 | P a g e
216480316039
Fig 2.1.23
Output:
Fig 2.1.24
Date:
Day:
Task 1: Create a signup page with basic CSS properties and validations.
25 | P a g e
216480316039
Fig 2.1.25
26 | P a g e
216480316039
Fig 2.1.26
Date:
Day:
Task 1: Create a Django project with application
Below are steps to create a Django project with application:
Step 1:
To create a new project , first we need to select the folder in which we have to create a
project, for that we use the command ‘cd’. After cd write the path where we have to create a
project. For example if we have to create project on desktop the we will write ‘cd Desktop/’.
Fig 2.1.27
Step 2:
Once we select the directory , after that to create a new project we use command ‘django-
admin.
startproject projectname’ and the folder will be created itself.
27 | P a g e
216480316039
Fig 2.1.28
After the project is created select the folder in which the project is created and then select
the project.
Fig 2.1.29
Fig 2.1.30
28 | P a g e
216480316039
Fig 2.1.31
Now the project is created , to create a application in it we need to follow below steps:
Step 3:
To create a new application in our project , ‘python manage.py startapp appname’ command
will be used.
Fig 2.1.32
29 | P a g e
216480316039
Fig 2.1.33
30 | P a g e
216480316039
Date:
Day:
Task 1:
Create a multiple html files using internal css with working navigation bar
Signup.html
Fig 2.1.34
31 | P a g e
216480316039
Fig 2.1.35
Fig 2.1.36
32 | P a g e
216480316039
Login page
Fig 2.1.37
33 | P a g e
216480316039
Fig 2.1.38
Fig 2.1.39
34 | P a g e
216480316039
Contacts page
Fig 2.1.40
35 | P a g e
216480316039
Fig 2.1.41
36 | P a g e
216480316039
Output:
Signup page:
Fig 2.1.42
Login page:
Fig 2.1.43
37 | P a g e
216480316039
Contacts page:
Fig 2.1.44
Date:
Day:
Task 1:
List out error code with explanation
Table no. 2.1.11
Error Explanation
AssertionError Raised when the assert statement fails.
AttributeError Raised on the attribute assignment or reference fails.
EOFError Raised when the input() function hits the end-of-file condition.
FloatingPointError Raised when a floating point operation fails.
GeneratorExit Raised when a generator's close() method is called.
ImportError Raised when the imported module is not found.
IndexError Raised when the index of a sequence is out of range.
KeyError Raised when a key is not found in a dictionary.
KeyboardInterrupt Raised when the user hits the interrupt key (Ctrl+c or delete).
MemoryError Raised when an operation runs out of memory.
NameError Raised when a variable is not found in the local or global scope.
NotImplementedError Raised by abstract methods.
OSError Raised when a system operation causes a system-related error.
OverflowError Raised when the result of an arithmetic operation is too large to be
represented.
ReferenceError Raised when a weak reference proxy is used to access a garbage collected
referent.
RuntimeError Raised when an error does not fall under any other category.
38 | P a g e
216480316039
Error Explanation
StopIteration Raised by the next() function to indicate that there is no further item to be
returned by the iterator.
SyntaxError Raised by the parser when a syntax error is encountered.
IndentationError Raised when there is an incorrect indentation.
TabError Raised when the indentation consists of inconsistent tabs and spaces.
SystemError Raised when the interpreter detects internal error.
SystemExit Raised by the sys.exit() function.
TypeError Raised when a function or operation is applied to an object of an incorrect
type.
UnboundLocalError Raised when a reference is made to a local variable in a function or
method, but no value has been bound to that variable.
UnicodeError Raised when a Unicode-related encoding or decoding error occurs.
UnicodeEncodeError Raised when a Unicode-related error occurs during encoding.
UnicodeDecodeError Raised when a Unicode-related error occurs during decoding.
UnicodeTranslateError Raised when a Unicode-related error occurs during translation.
ValueError Raised when a function gets an argument of correct type but improper
value.
ZeroDivisionError Raised when the second operand of a division or module operation is zero.
Date:
Day:
Task 1: List out 3 ORM queries with examples
ORM stands for Object Relational Mapping. An object-relational mapper (ORM) is a code
library that automates the transfer of data stored in relational database tables into objects that
are more commonly used in application code.
Below is the database table created to perform the orm queries:
Fig 2.1.45
39 | P a g e
216480316039
Fig 2.1.46
1.Creating a new object for inserting data
Fig 2.1.47
2.Filter object using field value
Fig 2.1.48
Date:
40 | P a g e
216480316039
Day:
Task1: Build a login signup module with design:
Signup page:
Fig 2.1.49
41 | P a g e
216480316039
Fig 2.1.50
Login page:
Fig 2.1.51
42 | P a g e
216480316039
Fig 2.1.52
Signup page:
Fig 2.1.53
43 | P a g e
216480316039
Fig 2.1.54
When we enter wrong id or password
Fig 2.1.55
44 | P a g e
216480316039
Fig 2.1.56
Fig 2.1.57
Date:
Day:
Task1: Explain session and cookies with their applications:
A session is the total time devoted to an activity. In computer systems, a user session begins
when a user logs in to or accesses a particular computer, network, or software service. It ends
when the user logs out of the service, or shuts down the computer. A session can temporarily
store information related to the activities of the user while connected. A session cookie is
used in web pages for storing information in case the user leaves the web page or closes
down their Internet browser. For example, this is one way a website can remember what is in
your shopping cart if you leave and come back.
Session is used mostly in web applications, web site login/signup session, cookies, shopping
websites etc.
Cookies are text files with small pieces of data — like a username and password — that are
used to identify your computer as you use a computer network. Specific cookies known as
HTTP cookies are used to identify specific users and improve your web browsing experience.
45 | P a g e
216480316039
Data stored in a cookie is created by the server upon your connection. This data is labeled
with an ID unique to you and your computer.
When the cookie is exchanged between your computer and the network server, the server
reads the ID and knows what information to specifically serve to you.
HTTP cookies, or internet cookies, are built specifically for Internet web browsers to track,
personalize, and save information about each user’s session. A “session” just refers to the
time you spend on a site.
Cookies are created to identify you when you visit a new website. The web server — which
stores the website’s data — sends a short stream of identifying info to your web browser.
Browser cookies are identified and read by “name-value” pairs. These tell cookies where to
be sent and what data to recall.
The server only sends the cookie when it wants the web browser to save it. If you’re
wondering “where are cookies stored,” it’s simple: your web browser will store it locally to
remember the “name-value pair” that identifies you.
If a user returns to that site in the future, the web browser returns that data to the web server
in the form of a cookie. This is when your browser will send it back to the server to recall
data from your previous sessions.
1. Session management. For example, cookies let websites recognize users and recall
their individual login information and preferences, such as sports news versus politics.
2. Personalization. Customized advertising is the main way cookies are used to
personalize your sessions. You may view certain items or parts of a site, and cookies
use this data to help build targeted ads that you might enjoy.
3. Tracking. Shopping sites use cookies to track items users previously viewed,
allowing the sites to suggest other goods they might like and keep items in shopping
carts while they continue shopping.
46 | P a g e
216480316039
Task: Build a ecommerce type home page which have header footer
Fig 2.1.58
47 | P a g e
216480316039
Fig 2.1.59
48 | P a g e
216480316039
Fig 2.1.60
49 | P a g e
216480316039
Fig 2.1.61
50 | P a g e
216480316039
Fig 2.1.62
Output:
Fig 2.1.63
51 | P a g e
216480316039
Fig 2.1.64
Date:
Day:
Task 1: Build a web application with flow containing user side and admin side both.
52 | P a g e
216480316039
Fig 2.1.65
Fig 2.1.66
53 | P a g e
216480316039
Fig 2.1.67
Fig 2.1.68
54 | P a g e
216480316039
Fig 2.1.69
Fig 2.1.70
55 | P a g e
216480316039
Fig 2.1.71
3.2 Roles and Responsibilities
Designing And Developing Software Solutions.
Requirement Analysis.
Coding.
Collaborating with Cross-functional teams.
3.3 Problems Given
Following problems are addressed during the internship:
My development as a Python programmer. I had the honour of working closely with
knowledgeable experts who were ready and prepared to mentor and help me at all times.
Their knowledge, helpful criticism, and eagerness to impart it helped me improve my abilities
and deepen my grasp of Python programming best practises.
Opportunities for continual Learning: Professional growth and continual learning were given
real priority by this Snapfix. I was inspired to investigate new technologies, go to pertinent
conferences and seminars, and participate in internal knowledge-sharing sessions. Through
these possibilities, the organisation significantly improved my technical proficiency and kept
me up to date on the most recent developments in Python and related fields.
56 | P a g e
216480316039
4. SKILLS LEARNED
4.1 Learning Outcome
Learning outcomes of the internship are given below:
Python proficiency: Working on actual projects within the Snapfix gave me a great chance
to hone my Python abilities. I developed a thorough understanding of Python's syntax,
features, and capabilities through practical experience and exposure to a variety of projects.
My ability to develop clear, effective, and maintainable Python code has improved.
Problem-Solving and Optimisation: I improved my problem-solving abilities by addressing
performance and scalability difficulties. I gained knowledge of many methodologies,
including code profiling, algorithmic advancements, and the use of specialised libraries, for
code analysis, bottleneck identification, and performance optimisation. My ability to scalably
and efficiently improve Python apps as a result of this experience.
Collaboration and communication: Effective teamwork and communication were
developed by working in a collaborative and supportive environment. Through conversations
with seasoned people, I gained insightful knowledge regarding collaborative software
development practices. This improved my ability to work effectively in a team, communicate
ideas clearly, and contribute to the success of projects.
57 | P a g e
216480316039
6. OVERALL EXPERIENCE
6.1 Technical Experience
Technical experience of the internship is given below:
Python programming: I was able to expand my knowledge and comprehension of the
Python programming language by working on actual projects. Python's syntax, data
structures, control flow, and object-oriented programming principles were all introduced to
me through practical experience. I am now able to develop Python code that is clear,
effective, and readable thanks to this experience.
Django web development: I had the chance to work extensively with the Django web
framework as a Python developer. With the help of Django's strong capabilities, like URL
routing, templating, database connectivity, and form handling, I obtained practical experience
creating web applications. Through this experience, I was better able to create scalable and
secure web solutions and comprehend the MVC (Model-View-Controller) architecture's
guiding principles.
Database Integration: For my internship, I had to save and retrieve data using databases. I
acquired practical knowledge in Object-Relational Mappers (ORMs) like Django's built-in
ORM or SQLAlchemy are used to integrate databases with Python applications. In the
context of a Python application, this experience helped me better comprehend ideas like data
modelling, querying, and guaranteeing data integrity.
58 | P a g e
216480316039
7. CONCLUSIONS
In conclusion, my experience working as a Python developer intern for this Snapfix has been
rewarding and life-changing. My technical knowledge, personal development, and
professional insights have helped me grow and have helped me become a more competent
and self-assured developer. I got the chance to engage with a talented group of experts, work
on projects that were relevant to the real world, and overcome challenging situations
throughout my internship.
I've become proficient in a number of technical areas, including Python programming,
Django web development, database integration, Git version control, testing and debugging,
front-end development, deployment and DevOps, and Agile development approaches. These
technical abilities have given me a solid foundation and given me the tools I need to succeed
in the Python programming industry.
59 | P a g e
216480316039
8. BIBLIOGRAPHY/REFERENCES
Harry J.W. Percival, "Test-Driven Development with Python"
Visit https://docs.djangoproject.com/ for the official Django documentation.
(https://docs.python.org/) Official Python documentation
Udemy, Coursera, and Codecademy are online learning portals that provide Python and
Django courses.
Django for Beginners" by William S. Vincent
"Two Scoops of Django 3.x: Best Practices for the Django Web Framework" by Daniel Roy
Greenfeld and Audrey Roy Greenfeld
"Django 3 By Example" by Antonio Mel
60 | P a g e
216480316039
ACKNOWLEDGEMENT
I am very thankful for giving me the opportunity to undertake my internship training at the
prestigious "Company Name". It was a very good learning experience for me to have at this
site.
First, I would like to thank Head of The Department of College Name for giving permission
to commence this Internship.
Further, I would like to express my sincere gratitude to my Industrial Mentor External
Guide Name for continuously guiding me at the company and dispel all my doubts with
patience. Also, I am very obliged to my Internal Mentor External Guide Name for helping
me throughout my internship and giving me a necessary suggestions and advices along with
their valuable coordination. Without their continuous support it would not have been possible
to complete my internship.
I own my wholehearted thanks and appreciation to the entire staff of the company for their
cooperation and assistance during my internship.
I also thank my parents, friends, and all the members of the family for their precious support
and encouragement which they had provided in the completion of my work.
Student Name
Department Name
Enrollment No.
61 | P a g e