Sarika Internship
Sarika Internship
A report submitted in partial fulfillment of the requirements for the Award of Degree of
MASTER OF SCIENCE
in
COMPUTER SCIENCE
By
M. SARIKA
(23SPCS002)
November 2024
MANNAR THIRUMALAI NAICKER COLLEGE
A Co-educational, Autonomous and Linguistic Minority Institution
CERTIFICATE
I was involved in building and managing dynamic websites, where I had to create
and manipulate models to interact with databases seamlessly. Django’s Object-
Relational Mapping (ORM) feature made it much easier to interact with the
database, as it abstracts complex SQL queries and provides a high-level Python
interface to work with. During the internship, I became proficient in designing
database schemas, creating migrations, and handling various types of queries, which
played a crucial role in optimizing the performance of the applications. Additionally,
I learned how to implement RESTful APIs using Django’s built-in capabilities. This
involved designing endpoints that could handle multiple HTTP methods, such as
GET, POST, PUT, and DELETE, which provided a foundation for building flexible
and scalable back-end services that could interact with front-end clients.
INTERNSHIP OBJECTIVES
INDEX
16.05.2024 Thursday
Installation
17.05.2024 Friday
Project creation
18.05.2024
Saturday Models
1. INTRODUCTION ............................................................................................... 1
2. TECHNOLOGY ................................................................................................. 2
3. ORGANIZATION INFORMATION……………………………………………..3
6. OUTCOMES ……………………………………………………………………6
7. CONCLUSION ………………………………………………………………….7
INTRODUCTION
One of Django's key strengths is its emphasis on reusability and "don’t repeat yourself"
(DRY) principles, allowing developers to focus more on application-specific logic rather
than boilerplate code. This results in faster development cycles, especially for projects with
strict deadlines.
Django Framework
Django is built on Python, one of the most popular and versatile programming languages.
Python's clean syntax and wide range of libraries make it ideal for both backend logic and
integrating with other services. Writing server-side logic, managing data flow, and
handling requests and responses in the web application. Django is the core framework
used to structure the web application. It includes tools for URL routing, form handling,
authentication, and much more. Building scalable web applications, managing database
models, views, and templates, and ensuring security through its built-in mechanisms.
These front-end technologies are essential for creating the user interface.
Designing the layout and enhancing the user experience on the front-end side of the
application.
Django’s built-in ORM allows interaction with databases using Python code, without
needing to write complex SQL queries. Managing databases, handling migrations,
creating database models, and performing CRUD (Create, Read, Update, Delete)
operations.
Django Admin Interface
Django provides a powerful built-in admin panel for managing application data without
creating separate interfaces. Administering and managing the database via a web-based
DRF is an extension of Django used for building RESTful APIs. Enabling the web
application to communicate with external systems or services, and for creating APIs for
These combined efforts provide significant career opportunities for those looking to
enhance their technical expertise and stay competitive in the fast-evolving tech landscape.
Benefits of the Company/Institution through our report:
Employees can achieve significant career progression with recognition and rewards for
their contributions. The company emphasizes a healthy work-life balance by offering
flexible work hours, remote work options, and a focus on employee well-being.
BRIEF REPORT
Overview of Python:
Detail the basic building blocks of Python: data types (int, float, string, list,
tuple, dictionary), control structures (if-else, loops), and functions.
Discuss Python's object-oriented programming (OOP) model, including
classes, inheritance, and polymorphism.
Include code snippets to demonstrate your understanding of these concepts.
Discuss any challenges you faced while learning Python (e.g., syntax errors,
logic errors, or implementing algorithms).
Talk about how you resolved those challenges through online resources,
mentorship, or practice.
Introduction to Django
Briefly explain what web frameworks are and why they are essential for web
development.
Compare Django to other frameworks like Flask, Ruby on Rails, and Node.js,
emphasizing its advantages (e.g., security, scalability, ease of use).
Discuss built-in features of Django that attracted you, such as the ORM, the
admin interface, and security features like CSRF protection.
Highlight how Django promotes rapid development with its "don't repeat
yourself" (DRY) philosophy.
Mention any difficulties you encountered while getting familiar with Django
(e.g., understanding the project structure, configuring settings, handling static
files).
Provide solutions or workarounds that you found helpful.
Installation of Django and Setup
Installing Django
Provide a step-by-step guide on how you installed Django using pip, including
the versions you worked with.
Discuss how you configured the initial setup, including creating a project
folder, initializing Git for version control, and setting up environment
variables.
Configuring Settings.py
Go into detail about how you configured settings.py in Django. Break down
the key sections such as INSTALLED_APPS, DATABASES, and
STATIC_URL.
Discuss the changes you made to adapt the settings for development, such as
enabling debugging mode, configuring time zones, or setting up static files.
Mention how you managed secret keys and sensitive information.
Explain how you created your first Django project using the django-admin
startproject command.
Describe the structure of the Django project, including the purpose of key files
like manage.py, settings.py, urls.py, and wsgi.py.
Discuss the creation of individual apps within the Django project using the
startapp command.
Explain the role of apps in Django’s modular structure and how they allow
you to compartmentalize functionality.
Describe how you connected apps to the main project using the
INSTALLED_APPS setting and defined URLs specific to each app.
Talk about best practices for organizing files and folders in a Django project.
Explain how you handled static files, templates, and media files to ensure that
the project was clean and scalable.
Challenges Faced in Project Setup
Models in Django
Creating Models
Dive deep into how you define models in Django, specifying the fields (e.g.,
CharField, IntegerField, DateTimeField) and their attributes.
Discuss relationships between models (OneToOne, ForeignKey,
ManyToMany) and how you implemented these in your project.
Include code examples of models and explain how these were used in the
actual application.
Explain how you performed Create, Read, Update, and Delete (CRUD)
operations on your models.
Provide code examples of how you used Django’s QuerySet API to retrieve,
filter, and manipulate data from the database.
Start by explaining the purpose and benefits of Django’s built-in admin panel.
Highlight how Django's admin interface allows you to manage your project's
data without building a custom interface from scratch.
Discuss how you registered models with the admin site using admin.py.
Provide code snippets showing how you used admin.site.register() to include
different models in the admin interface.
Mention how you customized the display of models in the admin panel by
modifying list display, search fields, and filters.
Customizing Admin Panel for Different User Roles
Go in-depth on how you customized the admin panel for different user roles.
Discuss any advanced customizations you implemented, such as overriding
admin templates, using decorators to restrict access, or adding custom actions.
Provide examples of how you created custom forms for the admin panel or
modified the user interface to display specific data fields.
URL Mapping
Walk through how you created and configured URL patterns in your project.
Include examples of path() and re_path() functions to map specific URLs to
views, and show how you managed dynamic routing with URL parameters.
Discuss the significance of namespacing URLs for large projects to avoid
conflicts between different apps.
Explain how URL patterns work in conjunction with views and templates.
Describe how you passed data from the views to templates and used Django’s
reverse URL lookup to dynamically generate URLs in templates.
Provide detailed examples of how you created and extended templates in your
project.
Discuss the use of template inheritance with base templates and how you
structured the layout of your web application.
Include examples of template blocks, variables, and filters to render dynamic
content.
Talk about how you handled static files (CSS, JS, images) and loaded them
into your templates.
Dive into Django’s template tags and filters, explaining how they work to
render conditional logic or loop through data in templates.
Provide examples of using {% for %}, {% if %}, {% include %}, and other
template tags.
Discuss any custom template tags or filters you created to handle specific
formatting or logic.
Challenges in Template Rendering
Mention any challenges faced while working with templates (e.g., rendering
data, managing static files, or handling form data in templates).
Discuss how you troubleshooted common issues like broken links, incorrect
data display, or missing static assets.
Database Connectivity
Database Migrations
Go deeper into Django’s ORM and how it abstracts the complexity of raw
SQL.
Provide examples of CRUD (Create, Read, Update, Delete) operations using
Django's QuerySet API.
Talk about how you used model methods and QuerySets to filter, retrieve, and
manipulate data.
Demo Project
Give a brief introduction to the demo project you built, its purpose, and the
problem it aimed to solve.
Explain the scope of the project, its target users, and any real-world use cases.
Discuss the main components of your project, such as the models, views, and
templates.
Provide detailed explanations of each app within the project, highlighting their
functionality.
Include code snippets and diagrams to show how data flows through your
application.
Implementation of Features
Describe the core features you implemented in the demo project, such as user
authentication, data input forms, or API integrations.
Walk through specific functionalities like user registration, login, and CRUD
operations on data.
Reflect on the challenges you faced while building the demo project (e.g.,
integrating external libraries, debugging, performance issues).
Mention how you approached testing your project, including any unit tests or
manual testing strategies you applied to ensure the application worked
correctly.
Provide insights into how you debugged issues or optimized your code for
better performance.
This section should reflect on the overall skills you acquired during the internship.
Mention how your understanding of web development, Python, and Django
improved, and highlight soft skills like problem-solving, debugging, and project
management. Discuss any areas where you gained significant growth and your plans
for future learning.
Summarize the entire internship experience. Reiterate how this opportunity helped
you gain real-world skills in Django and Python development, and mention how it
aligns with your career goals. If there are any plans for future development (e.g.,
further learning, contributions to open-source projects, etc.), include them here.
PHOTO GALLERY
SCREENSHOTS
OUTCOMES
The completion of this internship on Python Programming, specialized in the Django
framework, yielded several tangible outcomes that contributed significantly to both my
technical and professional growth.The internship provided me with extensive hands-on
experience in Django. I mastered its MVT (Model-View-Template) architecture and
understood how to efficiently create scalable, secure, and modular web applications. I also
became proficient in essential Django features such as URL routing, views, templates, and
database management through the ORM (Object Relational Mapper).
One of the most significant outcomes was successfully building a complete demo project
using Django. This allowed me to integrate all the knowledge I gained into a functional
web application. I learned how to handle user authentication, CRUD operations, and
connect to databases seamlessly. I also explored project deployment strategies, ensuring
that the demo project could be scaled and maintained effectively.I became skilled in
configuring databases, performing migrations, and optimizing queries using Django's
ORM. This knowledge was crucial in managing the backend of the web applications I
worked on, as well as ensuring data integrity and performance optimization in real-time
applications.
A key feature of Django is its built-in admin interface, and during the internship, I explored
advanced customization techniques for different user roles and use cases. This outcome
demonstrated my ability to create flexible admin panels that are secure and user-friendly.
The structured learning process allowed me to delve deeply into each component of
Django, from its MVT architecture to handling databases and customizing admin
interfaces. The hands-on projects and demo applications I worked on gave me
practical insights into the development lifecycle of web applications, improving my
technical expertise and fostering a problem-solving mindset.
In conclusion, this internship has equipped me with the technical skills and practical
experience needed to pursue a career in web development confidently. I now have a
clear understanding of the Django framework, enabling me to create secure, scalable,
and maintainable web applications. This experience has fueled my passion for
backend development and motivated me to continue learning and contributing to
open-source projects using Django and Python.
Moving forward, I aim to further hone my skills, explore new technologies in web
development, and contribute meaningfully to future projects.