Internship Report
Internship Report
Internship Report
An Internship Report
on
At
(KonnectCraft)
Submitted By
September, 2023
Acknowledgement
The successful completion of this internship report would not have been possible without
the support and assistance of many individuals and organizations. I feel immensely blessed
to have gotten this during the course of my internship program. I would like to take this
opportunity to offer my earnest admiration to each and every one of them.
I express my sentiment of gratitude to Mr. Anish Byanjankar, who has been a continuous
source of inspiration as my intern mentor. Without his constant guidance and suggestions,
this report would have been nowhere near completion. My gratitude for his trust and
generosity goes beyond words. I am indebted and thankful to my learned and revered
supervisor for his upbeat personality, kindness; encouraging support and willingness to
help have tangibly and greatly improved the quality of my Internship Report and brought
it up to its present status.
Thanks to our colleagues who helped us directly or indirectly to accomplish our work. I am
especially grateful to Mr. Kamal Bahadur(Shrish) Thapa(Supervisor) and Mr. Manoj
Pokharel(Coordinator), who has also been a positive and encouraging influence on our
research efforts. Finally, I thank all our teachers and colleagues, who were the people who
prepared us for this endeavor.
With respect,
Kishmat Bhattarai (20530/075)
i
Abstract
The purpose of the project, SnapDrive is to deliver a comprehensive web and mobile
application that assists vehicle management process. With its features and integration of
Machine Learning technology, SnapDrive offers a robust solution for efficient organization
and management of vehicle-related information. The application empowers users to capture
their vehicle's image with precise orientation, following a specific order, using orientation
detection model. The orientation detection model is created using the Transfer Learning
techniques where the pretrained model is used and trained with multiple vehicle’s
orientation images. SnapDrive is synchronized between the web and mobile platforms, it
ensures a seamless user experience and streamlined data flow. SnapDrive optimizes the
vehicle management process, making it easier than ever to keep track of vehicle details and
capture accurate visual representations.
ii
Table of Contents
Acknowledgement ............................................................................................................... i
Abstract ...............................................................................................................................ii
iii
Chapter 4: Conclusion and Learning Outcomes .......................................................... 31
4.1. Conclusion........................................................................................................... 31
4.2. Learning Outcomes ............................................................................................. 31
References ......................................................................................................................... 32
Appendices ........................................................................................................................ 33
iv
List of Abbreviations
AI - Artificial Intelligence
API - Application Programming Interface
HTTP - Hypertext Transfer Protocol
JS - JavaScript
REST - Representational State Transfer
SQL - Structured Query Language
SSD - Single Shot Multi-Box Detector
UI - User Interface
UML - Unified Modeling Language
YOLO - You Only Look Once
v
List of Figures
Figure 2.1: Organization Hierarchy ..................................................................................... 4
Figure 3.1: Use Case Diagram (Mobile App) .................................................................... 12
Figure 3.2: System Architecture of SnapDrive .................................................................. 13
Figure 3.3: Class Diagram ................................................................................................. 14
Figure 3.4: State Diagram (Web App) ............................................................................... 15
Figure 3.5: State Diagram (Mobile App) ........................................................................... 16
Figure 3.6: Sequence Diagram (Web App)........................................................................ 17
Figure 3.7 Sequence Diagram (Mobile App) ..................................................................... 18
Figure 3.8: Activity Diagram (Web App) .......................................................................... 19
Figure 3.9: Activity Diagram (Mobile App) ...................................................................... 20
Figure 3.10: Component Diagram ..................................................................................... 21
Figure 3.11: Deployment Diagram .................................................................................... 22
Figure 3.12: Incremental Delivery Model ......................................................................... 24
Figure 3.13: Confusion Matrix for Orientation Detection Model...................................... 27
Figure 3.14: Accuracy per Epochs Graph for Orientation Detection Model ..................... 28
vi
List of Tables
Table 2.1: Intern Duration in KonnectCraft ......................................................................... 6
Table 3.1: Weekly Log ........................................................................................................ 8
Table 3.2: Test Case for Installation .................................................................................. 25
Table 3.3: Test Case for Application Login....................................................................... 25
Table 3.4: Test Case for Orientation Detection Model ...................................................... 26
Table 3.5: Test Case for Data Input ................................................................................... 28
Table 3.6: Test Case for Capturing Image ......................................................................... 28
Table 3.7: System Testing.................................................................................................. 29
vii
Chapter 1: Introduction
1.1. Introduction
This report provides an overview of the tasks performed by the intern and highlights the
various related tasks completed during the internship period. The internship took place at
KonnectCraft Inc, where the intern had the privilege to work on the project called
"SnapDrive". Specifically, the intern was involved in teams responsible for building web
and mobile applications using frameworks like ReactJS, Flutter, and Django.
SnapDrive is a web and mobile application designed for vehicle management process.
SnapDrive offers a robust solution to efficiently manage and organize vehicle related
information as well as allows users to capture their car image with proper orientation in
particular order with the help of Machine Learning. The app detects the presence of a
vehicle and prompts users to capture ten different types of vehicle orientations. SnapDrive
ensures seamless integration and synchronization between the web and mobile
applications.
SnapDrive uses state-of-the-art Machine Learning practices like transfer learning. Transfer
learning is used for building the model to detect the orientation of the vehicle based on the
image stream provided by the camera of mobile devices. Similarly, for vehicle detection
another model is used, called SSD MobileNet.
1
1.3. Objectives
• To build a Deep Learning model for orientation detection.
• To integrate Deep Learning model with mobile application to ensure image accuracy.
1.4.2. Limitation
The limitations of this internship report and project includes the following:
Chapter 1 Introduces the internship project along with problem statements, objectives,
scope and limitations of the project.
Chapter 2 Introduces the organization, organizational hierarchy along with its working
domains, description of intern department/unit and literature review of similar projects.
2
Chapter 3 Consists of the internship activities like roles and responsibilities, weekly log,
description of the projects involved during the internship.
Chapter 4 Includes the conclusion section and also learning outcomes from the internship.
3
Chapter 2: Organization Details and Literature Review
2.1. Introduction to Organization
KonnectCraft is a Managed IT and VoIP Services Provider that has been providing quality
services to small to mid-sized businesses (SMB) across US & Canada since 2012. The
company understands that not all businesses are equal and each have different needs and
requirements. The company also work with the clients to deliver a tailored solution to meet
their goals and challenges. KonnectCraft also engages with clients across diverse industries
such as Automotive, Real Estate, Finance, Accounting, Manufacturing, and Legal fields.
As an authorized partner of 3CX, team comprises certified engineers with expertise in
various products and vendors including Avaya, Microsoft, Cisco, Fortinet, and Netgate
pfSense Security Appliances.
Apart from Managed IT and VoIP services, company also provide Hardware Procurement,
Web Development and Systems Integrations Services to essentially become a one stop
solution for all IT and Business communication needs for the customers. (Byanjankar,
Byanjankar, & Shrestha, 2022)
4
2.3. Working Domains of Organization
Within its diverse working domains, the organization offers a comprehensive range of
services to address the IT and business communication needs of SMBs. The overview of
the key working domains, highlighting the specialized solutions and services provided by
the organization are as follows:
2.4.2. Duration
The duration and relevant details of internship are as follows:
5
Table 2.1: Intern Duration in KonnectCraft
Among the multiple models built using deep learning technique, MobileNet model has been
found to have wide applications in various vision tasks due to its efficiency and
effectiveness. This model has streamlined architecture that utilizes depth-wise
convolutions. With extensive experimentation, MobileNet has resulted impressive
performance in comparison to other popular models. By leveraging MobileNet model and
using transfer learning method it can be used for development of various vision-based
systems and applications. (Andrew G. Howard, 2017)
MobileNet model is used by multiple researchers and practioners. This model became very
successful due to its ability to capture the feature of the image properly which can be very
beneficial for developing the model which it was intended for. Apart for MobileNet itself
at a model, this model is very popular in the context where it can be used as base model
and create a completely different model with only few numbers of images provided with
the help of Transfer Learning method. With transfer learning method, basically first the
pretrained convolutional layer is taken from the pre-trained model which basically captures
the property of the image like edges and use this feature extracting layer to train for the
multiple use cases.
6
Researchers in the past have used object detection models and image classification models
for various real time computer vision tasks. “Real Time Object Detection and Recognition
using MobileNet-SSD with OpenCV” was one where the researchers used MobileNet-SSD
Model to detect objects on video stream via webcam. They used models for their use case
of real-time detection and for webcam streaming to detect objects in a video stream. (Mr.
Harshal Honmote, 2022)
Similarly, research done on fruit image classification, where the deep learning model
identifies the pattern of the fruit images from a large number of image dataset and classifies
the newer fruit image. This task of detecting the fruit required expert and detailed inspection
which was easily automated with the help of a deep learning model. Researchers used
MobileNetV2 as the base model and trained on images using Transfer Learning Technique.
(Gulzar, 2023)
In the same way another research on bird image classification was done by the researchers
in past, where they used deep learning models to identify the bird species. This research
was done with intention to identify the endangered birds and helps as the initial steps on
preserving them. Researchers used different models and did transfer learning to see the
outcomes of the prediction with base models as Resnet152V2, Inception V3, Densenet201,
and MobileNetV2. (Manna, et al., 2023).
7
Chapter 3: Internship Activities
3.1. Roles and Responsibilities
At first the supervisor divided the work into teams and assigned the task to the teams. Then
for few weeks basic knowledge of React, Django, Docker, was learned to get started. In
first week, concepts like react Components, Props, Hooks such as useState, useEffect,
Routes were learned. In second, third, fourth, fifth week, concepts like docker container,
docker image, docker compose, different commands related to docker, Django, useContext
hook for state management, fetch and axios for API call, antDesign as rich UI components
were learned and used to create vehicle inventory management web application. During the
development period the team members pushed their work into git repository and also the
application was dockerized.
After finishing the web application, another project was assigned to the teams. For few
weeks basic knowledge of Flutter and Dart was explored. In sixth week, concepts like
Widgets, Stateless Widgets, Stateful Widgets, Navigation were learned. In seventh and
eight-week, UI of the app was developed followed by integration of API call to the backend
using package like http. Further shared_preferences, intl were also used for local storage
and date formatting. In rest of the week, AI model was created using keras and the model
was integrated in flutter app using different packages like Camera, tflite, Image. Then the
application was hosted in the Virtual Machine in cloud.
8
Second Basic Overview of Docker Research and
implementation of concepts
like docker container,
docker image, docker
compose, dockerfile.
9
Ninth AI Model (Keras) Created Datasets, used
transfer learning to train
model, model evaluation.
10
Use Case Diagram
Use case diagram is a graphical depiction of a user’s possible interactions with a system. It
is used to gather the requirements of a system including internal and external influences.
11
Figure 3.1: Use Case Diagram (Mobile App)
• Performance
• Security
• Availability
• Reliability
12
architectural design of the system. In essence, system design serves as a visual
representation of how the system will function and its underlying structure.
The three-tier architecture divides applications into three distinct computing layers: the
presentation layer or client layer which is responsible for the user interface, the application
layer which is responsible for data processing and implementing the business logic and
finally the database layer which is responsible for storing and managing the application's
data. In SnapDrive, the user interacts with the application through the user interface via
web browser or mobile application which is connected to the application layer through API
Gateway. Application Layer at the middle handles the request from the user, process the
request and send the response back to the user. Apart from that application layer also
communicates with database layer for storing the processed information which can be
retrieved later when required.
13
3.3.2.2. Analysis
Systems analysis involves the study of a system to gain a overall understanding of its
components, their interactions, and potential areas for enhancement. It takes an entire
perspective, considering the system as a unified entity and identifying the interconnections
among its elements. The primary objective of systems analysis is to identify existing issues
and inefficiencies within the system and propose appropriate solutions for enhancement.
14
3.3.2.2.2. Dynamic modelling using State and Sequence Diagrams
State diagram in the UML, also known as a state machine diagram is a type of diagram that
illustrates the possible states of the system and transitions between those states.
Sequence diagram in the UML is a type of diagram that illustrates the sequence of messages
between objects in an interaction. It consists of a group of objects represented by lifelines
and message they exchange during the interaction denoted by arrow symbols.
15
Figure 3.5: State Diagram (Mobile App)
The above state diagram for the mobile app consists of different states and events. First the
connection is checked. If the connection is available then the system displays a login screen
and prompts the user to enter their login credentials. If the user enters valid credentials,
then the user is prompted to home screen otherwise the user is redirected to the login screen.
Then, the user is asked to provide the access for camera. If access for camera is provided
by the user, then the camera screen is displayed. In camera screen the object is detected and
if car detected, the user can route to the orientation screen. Here, images of vehicles are
captured in a particular order. After capturing vehicle images, the user is prompted to add
vehicle data screen where different data related to vehicles can be added.
16
Figure 3.6: Sequence Diagram (Web App)
The above sequence diagram for web app consists of actor i.e., user, and two objects i.e.,
system and database. The user registers with valid credentials and the system stores it in
the database. When the user tries to login, the provided info is validated and if the user is
successfully verified then the access is granted otherwise an error message is displayed.
Then homepage is displayed to the valid user. User can add vehicle data through add vehicle
page, that data is stored in the database and the vehicles list is also updated which can is
displayed to the user in the home page. Similarly, the vehicle data can be edited, updated
and deleted respectively. During these requests, the database is updated accordingly.
17
Figure 3.7 Sequence Diagram (Mobile App)
The above sequence diagram for mobile app consists of actor i.e., user, and two objects i.e.,
system and database. The user registers with valid credentials and the system stores it in
the database. When the user tries to login, the provided info is validated and if the user is
successfully verified then the access is granted otherwise an error message is displayed.
Then home screen is displayed to the valid user. User can request camera through the
camera screen and the camera is loaded by the system. Through orientation screen vehicle
images are captured and are provided by the user to the system. Model is run by the system
continuously to detect the object and different orientations. The output is then displayed to
the user based on the image. At last, the vehicle data are added by the user and hence the
database is updated.
18
3.3.2.2.3. Process modelling using Activity Diagram
Activity diagram in the UML is a type of diagram that visually presents a series of actions
or flow of control in a system. It shows workflows of stepwise activities with support for
choice, iteration and concurrency.
19
The above activity diagram for web app shows the flow of control from User, System and
Database. First the user credentials are passed to the system for authentication. Then if the
user is valid the user is taken to home page, and shows error if the credentials provided is
not valid. User can access the add vehicle page to add vehicle data which is then sent to the
database for saving those data. Similarly, user can edit and delete vehicle data. During this
process, the database is updated accordingly.
The above activity diagram for mobile app shows the flow of control from User, System
and Database. First the user credentials are passed to the system for authentication. Then if
the user is valid the user is taken to home screen, and shows error if the credentials provided
20
is not valid. User can access the camera screen, for detecting object the system runs a model
and if the detected object is car, then the user can access the orientation screen. In
orientation screen, another model is run by the system for detection of different
orientations. If the required orientation matches, then the user is allowed to capture image.
After capturing all the orientation of vehicle, user is prompted to add vehicle screen where
user can enter vehicle data which is saved in the database.
The above component diagram consists of different components, such as Vehicle Data
Input, User Data, Vehicle Data, Image Data and Minio Bucket. It includes interfaces such
as Vehicle Data, Vehicle Information, Image and Vehicle Image. There is a dependency
between Vehicle Data Input component and Vehicle Data component, also between Minio
Bucket component and Vehicle Data component. The vehicle data, vehicle information and
image are provided to the Vehicle Data component and Minio Bucket respectively.
21
3.3.2.2.5. Deployment Diagram
Deployment diagram are UML structural diagrams that shows the relationships between
the hardware and software components in the system and the physical distribution of the
processing i.e., Deployment diagram are used to visualize the topology of the physical
components of the system where software components are deployed.
The above deployment diagram consists of nodes and artifacts. The Mobile/Browser node
is linked to server node and database node through Django API. This API enables the both
mobile and web app to send and receive data from the server i.e., Nginx and database i.e.,
My SQL.
22
environment. Effective project management, collaboration, and following the best practices
are essential for a successful system implementation.
23
3.4.1.3. Other Tools
• Docker
Docker is a set of platforms as a service product that use OS-level virtualization to deliver
software in packages called containers. It is designed to help developers build, share, and
run modern applications. Docker was used in SnapDrive application for containerizing the
different services within the application.
• Jupyter Notebook
The Jupyter Notebook is a web-based interactive computing platform. It allows machine
learning developers to narrate visualizations along with sharing the code and data sets.
Jupyter Notebook was used during development of SnapDrive mobile application. It was
used to create model for vehicle orientation detection.
• Postman
Postman is a standalone software testing API (Application Programming Interface)
platform to build, test, design, modify, and document APIs. It is a simple Graphic User
Interface for sending and viewing HTTP requests and responses.
24
3.4.2. System Testing
System testing is a crucial phase in the software development life cycle (SDLC) that
focuses on verifying and validating the entire integrated system to ensure that it meets its
specified requirements and functions as expected.
25
1 TC-LG- Login Enter valid Navigate to Displayed Pass
01 Success credentials in home home page
email and screen with
password success
message
Accuracy =
TP+TN)/(TP+
FP+TN+FN)
26
Precision =
TP/(TP+FP)
Recall =
TP/(TP+FN)
27
Figure 3.14: Accuracy per Epochs Graph for Orientation Detection Model
28
2 TC-CAP- Orientation Capture the Allow to Car image Pass
02 Screen car image capture car was
with different image if allowed to
orientations orientation capture
matches when
orientation
matched
29
3 TC-INP- Input Vehicle Enter vehicle Update Vehicle Pass
01 Data related data vehicle table was
and click add table based updated
to submit on
provided
data
30
Chapter 4: Conclusion and Learning Outcomes
4.1. Conclusion
The Internship period in KonnectCraft Inc. has given an opportunity to learn and improve
software development skills. It helped the intern to acquire new experience of working in
professional field and particularly working as a member in a team. Besides that, it provided
a chance to work in a project involving different programming languages and platforms
connected with company’s interest and specialization.
The Vehicle Inventory Management and Orientation Detection systems developed during
the internship period helped the intern to get familiar with different frameworks and tools
such as React, Flutter, Django, Docker. The application can be used to manage vehicle
related data and capture vehicle images with different orientations in a particular order
efficiently. In conclusion, this internship period has proved to be effective in enhancing
the intern's skills, fostering teamwork, and rewarding for the intern.
Beyond technical skills, the intern also enhanced his problem-solving abilities, teamwork,
and adaptability. It generally helps in developing skills such as solving real-world
problems, following rules set by the company and working within specified deadlines. The
projects and tasks assigned during internships provide technical knowledge and practical
experience, which become valuable assets throughout intern’s professional career.
31
References
Andrew G. Howard, M. Z. (2017, April 17). Retrieved from arxiv:
https://arxiv.org/abs/1704.04861
Byanjankar, J., Byanjankar, A., & Shrestha, R. (2022). KonnectCraft. Retrieved from
KonnectCraft: https://konnectcraft.com/
Gulzar, Y. (2023, January 19). Fruit Image Classification Model Based on MobileNetV2
with. MDPI Open Access Journals, 1-14. Retrieved from MDPI:
https://www.mdpi.com/2071-1050/15/3/1906
Manna, A., Upasani, N., Jadhav, S., Mane, R., Chaudhari, R., & Chatre, V. (2023). Bird
Image Classification using Convolutional Neural . International Journal of
Advanced Computer Science and Applications, 1-11. Retrieved from thesai:
https://thesai.org/Downloads/Volume14No3/Paper_97-
Bird_Image_Classification_using_Convolutional_Neural_Network.pdf
Mr. Harshal Honmote, M. S. (2022, January 01). Real Time Object Detection and
Recognition. International Journal of Engineering Reasearch & Technology, 2.
Retrieved from https://www.ijert.org/research/real-time-object-detection-and-
recognition-using-mobilenet-ssd-with-opencv-IJERTV11IS010070.pdf
32
Appendices
33
Car Detection Front View Detection
34
Back-Right View Detection Back View Detection
35
Front-Left View Detection Driver-Seat View Detection
36
Login Page
Register Page
37
Vehicle Inventory
Vehicle Details
38