Report Draft
Report Draft
A
Internship Report
On
Submitted by
1. Mr. Vaidikkumar Makawana - [ 229760307048 ]
D.E. : III year, Semester : V
Diploma in Computer Engineering
Guided By:
Prof. Priya Patel
Computer Engineering Department
Pacific School of Engineering, Surat.
Academic Year
[ 2024 - 2025 ]
i | Page
INTERNSHIP CERTIFICATE
ii | P a g e
Pacific School of Engineering, Surat
Affiliated with GTU
INSTITUTE CERTIFICATE
This is to certify that the project report submitted along with the project entitled “Python
programming base mini projects: 1) CRUD operations with Django and 2) desktop
applications using PyWebView” has been carried out by Mr. Makawana Vaidikkumar
[229760307048] under my guidance in partial fulfillment for the Diploma of Engineering in
Computer, 5th Semester of Gujarat Technological University, Ahmadabad during the academic
year 2023-24.
iii | P a g e
Pacific School of Engineering, Surat
Affiliated with GTU
DECLARATION
We hereby declare that the Project report submitted along with the Project entitled “Python
programming base mini projects: 1) CRUD operations with Django and 2) desktop applications
using PyWebView” submitted in partial fulfillment for the Diploma of Engineering in Computer
to Gujarat Technological University, Ahmedabad, is a bonafide record of original project work
carried out by us at Pacific School of Engineering under the supervision of Prof. Priya Patel and
that no part of this report has been directly copied from any students’ reports.
iv | P a g e
ACKNOWLEDGMENT
I would also like to thank my college guide, Prof. Priya Patel, for her
continuous support and mentorship. Her guidance helped me navigate
challenges and maximize my learning during this internship, making it a
truly rewarding experience.
v | Page
ABSTRACT
vi | P a g e
Table of Contents
ACKNOWLEDGMENT ............................................................................... v
ABSTRACT .............................................................................................. vi
Chapter 1 : Company Introduction .......................................................... 1
1.1 About ............................................................................................ 1
1.2 Mission and vision ......................................................................... 1
Mission ...................................................................................... 1
Vision ......................................................................................... 2
1.3 Services ......................................................................................... 2
1.4 Company culture and work environment ...................................... 3
Chapter 2 : Internship Overview ............................................................. 4
2.1 Duration and scope of the internship ............................................ 4
2.2 Role and responsibilities................................................................ 5
Chapter 3 : Python Basics Overview ........................................................ 7
3.1 Introduction to Python .................................................................. 7
3.2 Key Features of Python ................................................................. 8
3.3 Setting up the Python Environment ............................................ 11
Chapter 4 : Introduction to Django ....................................................... 16
4.1 Introduction to Django ................................................................ 16
4.2 Key Features of Django ................................................................ 18
4.3 Django Architecture and Structure .............................................. 19
Chapter 5 : Basic Working with Django Structure ................................. 22
5.1 Components of a Typical Django Application .............................. 22
vii | P a g e
5.2 Setting up a Django Project ..................................................... 28
Chapter 6 : Introduction to My Basic Django Project ............................ 31
6.1 Project Overview: ........................................................................ 31
6.2 Step-by-Step Application Walkthrough with Screenshots ........... 33
Chapter 7 : Introduction to PyWebview ................................................ 38
7.1 What is PyWebView? .................................................................. 38
7.2 Key Features of PyWebView ........................................................ 38
7.2 Use Cases for PyWebView ........................................................... 39
Chapter 8 : Introduction to My PyWebview Project .............................. 41
8.1 Project Overview ......................................................................... 41
8.2 Working of the Project ................................................................ 43
8.3 Step-by-Step Application Walkthrough ....................................... 46
Conclusion ............................................................................................ 56
References ............................................................................................ 57
viii | P a g e
Chapter 1 : Company Introduction
1.1 About
OmTec Web is a one-stop globally leading IT solution provider company.
Delivering top-notch IT solutions for small-scale to large-scale
organizations with 10+ years of excellence in the IT sector. We provide a
wide range of website development services, mobile app development
services, eCommerce development services, digital marketing services,
and many more. We deliver high-quality solutions to our clients to get an
effective online appearance. So we understand each project’s goals and
work accordingly to convert a client’s dreams into reality.
1 | Page
tailored to meet the unique needs of each client, ensuring they can
navigate the complexities of the digital landscape with confidence. Our
team of experts combines deep industry knowledge with a passion for
technology, enabling us to provide cutting-edge solutions ranging from
web development and software engineering to cloud services and
cybersecurity. We believe that by prioritizing our clients' objectives and
fostering long-term partnerships, we can help them achieve their goals
while adapting to the ever-evolving market demands.
Vision
Our vision at Om Tec Web is to be a leading force in the IT industry,
recognized for our unwavering commitment to quality, innovation, and
client satisfaction. We aspire to create a world where technology
seamlessly integrates into everyday life, driving efficiencies and unlocking
new opportunities for businesses of all sizes. By embracing the latest
advancements in technology and continuously refining our services, we
aim to set new standards for excellence in IT solutions. We envision a
future where our contributions lead to transformative changes, not just
for our clients, but for communities around the globe, fostering a more
connected and technologically adept society.
1.3 Services
Digital Marketing Services
Mobile App Development
E-Commerce Development
Website Design And Development Services
Wordpress maintenance and support services
2 | Page
Wordpress speed optimization services
Work Environment
The work environment at Om Tec Web is designed to promote both
productivity and well-being. The office is equipped with modern facilities
and ergonomic furniture, creating a comfortable space for employees to
work effectively. Natural light floods the workspace, contributing to a
vibrant and uplifting atmosphere. Breakout areas are available for
informal meetings or relaxation, where team members can recharge and
connect with one another. This balance between focused work and
casual interaction encourages creativity and enhances collaboration
among teams.
3 | Page
Chapter 2 : Internship Overview
2.1 Duration and scope of the internship
My internship at Om Tec Web spanned from June 27, 2024, to August 7,
2024, providing me with an intensive six-week experience that was both
enriching and transformative. During this period, I had the opportunity
to immerse myself in Python technology, a skill that is increasingly vital
in the modern tech landscape. The structured timeline allowed me to
delve deeply into specific frameworks, particularly Django and
PyWebview, which were pivotal in the development of two significant
projects. The internship was designed not only to enhance my technical
skills but also to cultivate my ability to work within a professional team,
addressing real-world challenges and contributing to impactful solutions.
4 | Page
As I progressed through the internship, I successfully developed two
distinct projects that showcased my growing proficiency with Python.
The first project, built using Django, involved creating a web application
that facilitated user interactions and data management, highlighting the
framework's strengths in handling complex database operations and user
authentication. The second project utilized PyWebview to create a
lightweight desktop application that bridged the gap between web and
native functionalities. This experience not only enhanced my technical
skills but also taught me valuable lessons in project management,
teamwork, and problem-solving. By the end of my internship, I felt
equipped with a solid foundation in Python technologies and a deeper
understanding of how to contribute effectively within a collaborative
work environment.
5 | Page
A significant aspect of my role was to report my progress at the end of
each day to Chirag. This practice not only kept me accountable but also
enabled constructive feedback on my work. During these end-of-day
reports, I would detail the specific tasks I had completed, challenges I
encountered, and any breakthroughs in my understanding of the
technologies we were utilizing. For instance, while working on the Django
project, I had to implement features that required careful attention to
the database schema and user authentication processes. Chirag's
feedback was instrumental in refining my approach, as he often shared
best practices and real-world scenarios that enhanced my learning
experience. This iterative process of reporting and feedback greatly
contributed to my professional development and reinforced the
importance of clear communication in a team setting.
6 | Page
Chapter 3 : Python Basics Overview
3.1 Introduction to Python
Python is a high-level,
interpreted programming
language that has gained
immense popularity due
to its simplicity and
versatility. Developed in
the late 1980s by Guido
van Rossum and officially
released in 1991, Python
emphasizes readability
and ease of use, making it
an ideal choice for both
beginners and
experienced developers. Its syntax is clean and straightforward, allowing
developers to express concepts in fewer lines of code compared to other
programming languages. This focus on readability not only enhances the
learning curve for new programmers but also facilitates collaboration
among teams, as code is easier to understand and maintain.
7 | Page
programming paradigms, including procedural, object-oriented, and
functional programming, which gives developers the flexibility to choose
the style that best fits their project requirements. The language's
versatility is further enhanced by its strong community support, which
contributes a wealth of third-party libraries and frameworks, such as
Django for web development and NumPy for scientific computing.
Dynamic Typing :
In Python, variable types are determined at runtime rather than in
advance. This dynamic typing allows for more flexibility in coding,
as developers can easily change the types of variables without
needing explicit declarations.
Cross-Platform Compatibility :
Python code can run on various operating systems, such as
Windows, macOS, and Linux, without requiring modification. This
cross-platform nature facilitates development and deployment
across different environments.
9 | Page
Rich Ecosystem of Libraries and Frameworks :
The Python community has created a vast array of third-party
libraries and frameworks that extend its capabilities. Popular
libraries like NumPy, Pandas, Django, and Flask allow for specialized
functionalities in areas such as data analysis and web development.
Community Support :
Python has a large and active community that contributes to its
growth and development. This community offers extensive
resources, including documentation, tutorials, and forums, making
it easier for developers to find help and share knowledge.
Integration Capabilities :
Python can easily integrate with other programming languages,
such as C, C++, and Java. This flexibility allows developers to
leverage existing codebases and libraries, enhancing the language’s
versatility.
12 | P a g e
You should see the version number of Python installed. If you see an
error, check that Python was added to your PATH correctly.
13 | P a g e
- Follow the installation instructions.
14 | P a g e
- You can run the program by opening the integrated terminal (`View` >
`Terminal` or `Ctrl+``) and typing: “python main.py”
15 | P a g e
Chapter 4 : Introduction to Django
16 | P a g e
One of the core components of Django is its robust Object-Relational
Mapping (ORM) system, which simplifies database interactions. This
feature allows developers to define their data models in Python code
rather than SQL, enabling a more intuitive approach to database
management. The ORM seamlessly translates Python code into database
queries, facilitating easy data manipulation and retrieval. Additionally,
Django supports multiple database backends, including PostgreSQL,
MySQL, and SQLite, providing flexibility for various project needs. This
ability to abstract database operations makes it easier for developers to
maintain and evolve their applications without extensive rework,
promoting a more agile development process.
17 | P a g e
4.2 Key Features of Django
Object-Relational Mapping (ORM) :
- Simplifies database interactions with Python objects.
- Supports multiple database backends (PostgreSQL, MySQL, and
SQLite).
- Enables advanced querying with intuitive syntax.
Admin Interface :
- Automatically generates a user-friendly admin panel.
- Facilitates easy management of application data.
- Requires minimal configuration for model management.
URL Routing :
- Offers a straightforward way to map URLs to views.
- Supports clean and readable URL design.
- Allows for dynamic URL patterns.
Templating Engine :
- Provides a powerful system for rendering HTML.
- Supports template inheritance for reusable components.
- Allows for dynamic content insertion and logic.
Form Handling :
- Simplifies form creation, validation, and processing.
18 | P a g e
- Provides built-in protection against common vulnerabilities.
- Supports custom form fields and widgets.
Middleware Support :
- Enables processing of requests and responses globally.
- Facilitates features like session management and authentication.
- Allows for easy integration of third-party functionality.
Security Features :
- Protects against SQL injection and XSS attacks.
- Implements password hashing and secure cookie management.
- Provides tools for secure session handling.
Scalability :
- Designed to handle high-traffic applications efficiently.
- Supports caching mechanisms for improved performance.
- Facilitates the development of modular applications.
View
Definition: The View acts as a bridge between the Model and the
Template. It contains the logic that retrieves data from the Model
and passes it to the Template for presentation.
Example: A view function may retrieve all student records from the
database and pass this data to a Template that displays it in a
structured format.
Template
Definition: The Template is responsible for the presentation layer of
the application. It defines how data should be displayed to the user,
using HTML combined with Django’s templating language.
URL Dispatcher
Definition: The URL Dispatcher maps incoming web requests to the
appropriate View based on the URL pattern defined in the
application.
20 | P a g e
Example: A URL pattern might map `/students/` to a view that lists
all students, while `/students/<id>/` could retrieve a specific
student’s details.
Admin Interface
Definition: Django automatically generates a powerful admin
interface for managing application data based on the defined
Models.
Middleware
Definition: Middleware is a layer of hooks into Django’s
request/response processing. It allows you to modify the request
or response globally.
21 | P a g e
Chapter 5 : Basic Working with Django
Structure
Key Features:
- Data Definition: Models define fields and behaviors of the data
you want to store.
- Data Validation: Built-in validation ensures that the data adheres
to specified formats and constraints.
22 | P a g e
Example:
Views
Views are responsible for processing user requests and returning
responses. They contain the application logic, fetching data from
the models and passing it to templates for rendering. In Django,
views can be defined as functions or class-based views, providing
flexibility in handling requests.
Key Features:
- Request Handling: Views receive HTTP requests and determine
what data to display.
- Business Logic: They can implement complex logic to handle user
interactions and data manipulation.
- Response Generation: Views prepare and return responses, often
by rendering templates with dynamic content.
Example:
23 | P a g e
Templates
Templates are used for rendering the presentation layer of the
application. They define how data is displayed to users, utilizing
Django's templating language to embed dynamic content.
Templates can extend one another, promoting reuse and
consistency across the application.
Key Features:
- Dynamic Content: Templates can display data passed from views,
enabling dynamic web pages.
- Template Inheritance: Allows for a base template that other
templates can extend, reducing redundancy.
- Conditional Logic: Supports template tags and filters for
implementing conditional rendering and formatting.
Example:
24 | P a g e
URL Dispatcher
The URL dispatcher maps incoming HTTP requests to the
appropriate views based on the URL patterns defined in the
application. It plays a crucial role in determining how users navigate
through the application.
Key Features:
- URL Patterns: Defined in a dedicated `urls.py` file, specifying how
URLs are matched to views.
- Dynamic URLs: Supports capturing URL parameters, allowing for
dynamic content based on the URL.
- Hierarchy and Organization: Enables a structured way to organize
URLs for better maintainability.
Example:
Admin Interface
Django comes with a built-in admin interface that provides an easy
way to manage application data. This powerful tool is automatically
generated based on the defined models and allows administrators
to perform CRUD operations without writing additional code.
Key Features:
25 | P a g e
- User-Friendly Interface: Offers an intuitive web interface for
managing data.
- Customization: Allows for customization of the admin panel to
tailor it to specific needs.
- Access Control: Supports user authentication and permissions to
secure sensitive data.
Static Files
Static files, such as CSS, JavaScript, and images, are essential for
enhancing the visual appeal and interactivity of web applications.
Django provides a robust mechanism for managing static files,
ensuring they are served correctly alongside dynamic content.
Key Features:
- Static File Management: Django collects static files from various
applications and serves them efficiently.
26 | P a g e
- Version Control: Supports versioning and caching strategies to
optimize performance.
Middleware
Middleware components are hooks into Django’s request/response
processing. They allow for global modifications to requests and
responses, enabling functionality such as session management,
authentication, and security features.
Key Features:
- Request and Response Processing: Middleware can process
requests before they reach the view and responses before they are
sent to the client.
- Security Enhancements: Middleware can implement security
measures like CSRF protection and user authentication.
28 | P a g e
wsgi.py: An entry point for WSGI-compatible web servers to
serve your project.
With your project set up, you can begin developing your Django
application by creating models, views, and templates according to your
project requirements.
30 | P a g e
Chapter 6 : Introduction to My Basic Django
Project
6.1 Project Overview:
The Django CRUD project serves as a web application designed to
manage and display student and faculty data in an organized manner. The
primary objective of this project is to facilitate the creation, retrieval,
updating, and deletion (CRUD) of records related to students and faculty
members, providing a user-friendly interface for efficient data
management.
Key Features:
User-Friendly Interface: The application offers an intuitive web
interface for users to navigate easily through student and faculty
records.
31 | P a g e
Database Integration: Utilizes Django’s ORM for seamless
interaction with the database, ensuring data integrity and
consistency.
Learning Outcomes:
32 | P a g e
6.2 Step-by-Step Application Walkthrough with Screenshots
Login page
The application features a unified login page that allows both students
and faculty to access their accounts seamlessly. Users can log in using
their unique ID or registered email address, along with their password.
This design simplifies the authentication process and enhances user
experience by providing multiple options for logging in. After entering
their credentials, users can securely access the main dashboard, where
they can view relevant data and perform various actions based on their
role within the organization.
Student Login
Upon successful login, users are directed to the home page, which serves
as their personal dashboard. This page displays essential information,
including the user's username, first name, last name, profile photo, email
address, and phone number. It provides a clear overview of the user's
profile, promoting a personalized experience.
33 | P a g e
Additionally, users have the convenience of updating their first name,
last name, and profile photo directly from this page, as well as changing
their password. This feature enhances user engagement and allows for
easy management of personal information, ensuring that users can
keep their profiles up to date with minimal effort.
34 | P a g e
Student details page
35 | P a g e
Admin login
After the admin logs in, they gain access to a comprehensive view of
student details. This interface allows the admin to perform CRUD
(Create, Read, Update, and Delete) operations on student data
seamlessly. The organized layout facilitates easy management of
student records, ensuring that updates and modifications can be made
efficiently. This functionality not only streamlines administrative tasks
but also enhances overall data integrity within the application.
36 | P a g e
The admin can also view staff details and class details.
37 | P a g e
Chapter 7 : Introduction to PyWebview
7.1 What is PyWebView?
PyWebView is a lightweight cross-platform library that allows developers
to create desktop applications with web technologies. It serves as a
bridge between Python applications and web-based user interfaces,
enabling the integration of HTML, CSS, and JavaScript in a native window.
This makes it possible to build modern user interfaces while leveraging
the extensive capabilities of Python for back-end processing.
Simple API:
- The library offers a straightforward API that simplifies the process of
creating and managing windows. Developers can easily open, close, and
control web views with minimal code, making it accessible even for those
with limited experience in desktop application development.
39 | P a g e
Rapid Prototyping: Developers can quickly create and test
application ideas without the overhead of building a full native
interface.
40 | P a g e
Chapter 8 : Introduction to My PyWebview
Project
8.1 Project Overview
The Python project utilizing PyWebview is a web-based application
designed to facilitate product management and streamline interactions
between users, retailers, and administrators. This application provides a
platform for users to view product details, sign up for accounts, and place
orders. Additionally, it allows administrators to monitor all activities and
enables retailers to easily restock products through CSV file uploads.
Key Features:
User Registration and Login: Users can create accounts and log in to
access personalized features, enhancing their shopping experience.
41 | P a g e
Retailer Functionality: Retailers can upload product information
through CSV files to efficiently restock inventory, simplifying
inventory management.
Technical Stack:
Framework: PyWebview for creating the GUI
Backend: Python for server-side logic
Data Storage: SQLite (or another database) for managing user and
product data
File Handling: CSV for bulk product uploads
Learning Outcomes:
This project enhances proficiency in Python programming and web
application development, particularly in utilizing GUI frameworks like
PyWebview. It also provides practical experience in database
management, user interface design, and handling user interactions in a
multi-role environment. Ultimately, this project demonstrates how to
create a functional application that meets the needs of various
stakeholders in a retail context.
42 | P a g e
8.2 Working of the Project
In this project “JS API Bridge” of PyWebview is used for data transfer and
other necessary task for project.
43 | P a g e
4. Event Handling: The Bridge can handle events triggered from the
webview, enabling real-time updates and interaction based on user
actions.
Example Flow:
44 | P a g e
45 | P a g e
8.3 Step-by-Step Application Walkthrough
Login Page
Sign Up page
46 | P a g e
User login
The product page allows users to easily browse all available products.
Each item features clear images, descriptions, and pricing, making it
simple to find what they need. Intuitive navigation and filtering options
enhance the shopping experience, enabling users to make informed
purchasing decisions effortlessly.
47 | P a g e
Orders Page
In this orders page, users can see details of their ordered products,
including names, quantities, prices, and order statuses. The user-
friendly layout allows for easy access to order history, enhancing the
overall shopping experience.
Cart page
48 | P a g e
Product details page
Add to Cart
49 | P a g e
Admin Login
In the admin login section, administrators can manage orders, users,
products, and inventory data efficiently. This centralized interface
streamlines administrative tasks, ensuring smooth operations within
the platform.
Users Page
50 | P a g e
Admins can perform CRUD operations on user data, allowing them to
create, read, update, and delete user records as needed.
51 | P a g e
Product Page
52 | P a g e
53 | P a g e
Inventory page
On the inventory page, admins can upload CSV files to update product
quantities in bulk, streamlining inventory management and ensuring
accurate stock levels.
54 | P a g e
Order page
On the order page, admins can change order statuses and delete order
records from the database, ensuring efficient order management and
up-to-date tracking.
55 | P a g e
Conclusion
My internship at Om Tec Web was a transformative experience that
significantly enhanced my technical skills and provided valuable insights
into the professional environment. Working on real-world projects,
especially in Python and Django, helped me bridge the gap between
theory and practice. I became proficient in Django, gaining hands-on
experience with back-end functionalities and integrating front-end
technologies using PyWebView. Developing a student management
system reinforced my learning and improved my problem-solving
abilities. Regular communication with my supervisor and collaboration
with fellow interns fostered teamwork and accountability. Balancing
multiple tasks enhanced my time management and adaptability in a fast-
paced setting. This internship clarified my career path in web
development, inspiring me to contribute to open-source projects and
collaborate with other developers, ultimately shaping my career
aspirations.
56 | P a g e
References
Internet
You Tube : https://www.youtube.com/
W3schools : https://www.w3schools.com/
Django documentation:
https://docs.djangoproject.com/en/5.1/
PyWebView documentation :
https://pywebview.flowrl.com/guide/
Knowledge of the company's industry experts.
57 | P a g e