0% found this document useful (0 votes)
2 views31 pages

Sarika Internship

The internship report by M. Sarika outlines her experience at Elysium Technologies, focusing on Python programming and web development using the Django framework. Key objectives included mastering Django's MVT architecture, database management with Django ORM, and RESTful API development, culminating in practical skills for building scalable web applications. The report also highlights the importance of collaboration, security practices, and project management skills acquired during the internship.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views31 pages

Sarika Internship

The internship report by M. Sarika outlines her experience at Elysium Technologies, focusing on Python programming and web development using the Django framework. Key objectives included mastering Django's MVT architecture, database management with Django ORM, and RESTful API development, culminating in practical skills for building scalable web applications. The report also highlights the importance of collaboration, security practices, and project management skills acquired during the internship.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

INTERNSHIP REPORT

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)

MANNAR THIRUMALAI NAICKER COLLEGE


A Co-educational, Autonomous and Linguistic Minority Institution

Affiliated to Madurai Kamaraj University

Re-accredited with “A” Grade by NAAC

Pasumalai, Madurai – 625 004 Tamil Nadu.

November 2024
MANNAR THIRUMALAI NAICKER COLLEGE
A Co-educational, Autonomous and Linguistic Minority Institution

Affiliated to Madurai Kamaraj University

Re-accredited with “A” Grade by NAAC

CERTIFICATE

This is to certify that the “Internship report” submitted by M. SARIKA


(Reg. No.: 23SPCS002) is work done by her and submitted during 2024-2025
academic year, in partial fulfillment of the requirements for the award of the degree
of MASTER OF SCIENCE in COMPUTER SCIENCE, at Elysium
Technologies pvt. Ltd, Madurai.

Class Incharge Head of the Department


ABSTRACT
During my internship, I had the opportunity to develop deep into Python
programming, with a particular emphasis on web development using the Django
framework. This experience provided me with practical exposure to full-stack
development, allowing me to apply theoretical knowledge in real-world scenarios.
One of the key aspects of the internship was working with Django’s Model-View-
Template (MVT) architecture. This structure allowed me to separate the data
(models), business logic (views), and the user interface (templates) efficiently, which
is one of Django's most powerful features for developing scalable web applications.
Understanding this architecture helped me in organizing and managing the flow of
data between the user interface and the server, ensuring that the web applications
were both functional and maintainable.

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

1. Develop a Strong Foundation in Django Framework


Gain proficiency in the Django framework, including its Model-View-
Template (MVT) architecture, to build robust and scalable web applications.

2. Master Python Programming Techniques


Improve your Python coding skills by working on real-world projects,
focusing on writing clean, efficient, and maintainable code in line with
industry best practices.

3. Hands-on Experience with Databases and Django ORM


Learn how to design and manage database schemas, interact with databases
using Django's ORM, and optimize queries for better application
performance.

4. Understand RESTful API Development


Build RESTful APIs using Django, including creating endpoints, handling
HTTP methods (GET, POST, PUT, DELETE), and integrating back-end
services with front-end clients.

5. Enhance Web Security Knowledge


Familiarize yourself with common web security practices, such as
preventing SQL injection, XSS, and CSRF, and implement Django's built-in
security features to build secure web applications.

6. Collaborate in a Team-Oriented Environment


Work effectively within a development team, participate in code reviews,
manage code versions using Git, and follow agile methodologies to deliver
projects on time.
7. Deploy and Maintain Web Applications
Learn how to deploy Django applications to production environments using
platforms like Heroku or AWS, manage server configurations, and ensure
smooth application performance post-deployment.

8. Improve Problem-Solving and Debugging Skills


Strengthen your ability to identify and resolve technical issues, debug code
efficiently, and implement solutions in both front-end and back-end contexts.

9. Gain Real-World Software Development Experience


Apply academic knowledge to solve practical challenges, work on live
projects, and contribute to the development of user-friendly and high-
performance web applications.

10. Develop Project Management and Communication Skills


Enhance your ability to manage multiple tasks, communicate effectively
with team members and stakeholders, and ensure that project goals are met
within deadlines.
DAILY OVERVIEW OF INTERNSHIP ACTIVITIES

INDEX

DATE DAY NAME OF THE TOPIC/MODULE COMPLETED

14.05.2024 Tuesday Introduction to Python

15.05.2024 Wednesday Introduction to Django

16.05.2024 Thursday
Installation

17.05.2024 Friday
Project creation

18.05.2024
Saturday Models

20.05.2024 Monday Admin panel

21.05.2024 Tuesday Urls Mapping

22.05.2024 Wednesday Template

23.05.2024 Thursday Database connectivity

24.05.2024 Friday Demo project


S. No CONTENTS Page No

1. INTRODUCTION ............................................................................................... 1

2. TECHNOLOGY ................................................................................................. 2

3. ORGANIZATION INFORMATION……………………………………………..3

4. BRIEF REPORT .................................................................................................. 4

5. PHOTO GALLERY ........................................................................................... 5

6. OUTCOMES ……………………………………………………………………6

7. CONCLUSION ………………………………………………………………….7
INTRODUCTION

Django is a high-level web framework designed to streamline the process of building


dynamic web applications using Python. Since its release in 2005, Django has rapidly
grown in popularity due to its simplicity, scalability, and the extensive tools it provides for
developers to create powerful web applications quickly and efficiently.

The framework is based on the Model-View-Template (MVT) architecture, which


promotes clean, maintainable code by separating the data layer from the business logic and
the user interface. With built-in features such as an authentication system, an admin panel,
and support for relational databases, Django makes it easier to develop full-fledged web
applications without having to reinvent the wheel.

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.

Additionally, Django is supported by an active community and a wealth of documentation,


making it an ideal choice for both beginners and experienced developers alike. Whether
you're building a simple blog, an e-commerce site, or a complex, data-driven application,
Django offers the flexibility and power to meet your needs while leveraging Python's clean
syntax and rich ecosystem of libraries.

This internship will provide an in-depth exploration of Django, guiding participants


through the entire development process—from setting up the development environment to
deploying a web application. By the end of the internship, participants will have hands-on
experience with building, managing, and scaling web applications using Django.
TECHNOLOGY

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.

HTML, CSS, and JavaScript

These front-end technologies are essential for creating the user interface.

○ HTML: Defines the structure and content of web pages.


○ CSS: Styles the pages to make them visually appealing.
○ JavaScript: Adds interactivity to the website.

Designing the layout and enhancing the user experience on the front-end side of the
application.

Django ORM (Object-Relational Mapping)

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

interface without needing custom dashboards.

REST Framework (Django Rest Framework - DRF)

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

mobile apps, microservices, etc.


ORGANIZATION INFORMATION

Programs and opportunities :

Elysium Technologies Private Limited offers a range of opportunities and programs


across multiple sectors, particularly in IT, research, education, and skill development. Their
expertise lies in providing cutting-edge solutions like data science consulting, machine
learning, and AI. The company is recognized for offering customized technology solutions
tailored to meet specific business needs, with a client-centric approach that emphasizes long-
term partnerships and quality assurance.

In terms of training and development, Elysium Academy, a branch of Elysium Groups,


delivers industry-relevant training programs. These include certifications in emerging
technologies, helping individuals build career-ready skills. The courses are designed to
keep students up-to-date with the latest trends, offering flexible learning options and expert
mentorship to ensure success.

Additionally, Elysium Technologies LTD in the UK focuses on IT consulting and training


services, offering specialized programs like software testing, business analysis, and IT
support analyst courses. These programs include hands-on experience and real-life industry
simulations, helping individuals transition into the tech industry or improve their existing
skills.

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:

Elysium Technologies provides opportunities to work with the latest technologies in


fields such as Artificial Intelligence, Machine Learning, Cloud Computing, and IoT.
Employees gain hands-on experience with advanced tech solutions, enhancing their skills
and marketability in the fast-evolving tech industry. The company caters to a variety of
sectors, including education, healthcare, and business automation, allowing employees to
work on diverse and challenging projects. This diversity enhances the ability to solve
complex problems and grow in different technical domains.

Elysium Technologies offers continuous learning through training, workshops,


and certifications. The company encourages professional development by providing access
to educational resources. Employees can continuously upgrade their skills, which helps
them stay relevant and advance in their careers. The company promotes a culture of
teamwork and collaboration, with open communication between different teams and
departments. Employees experience a supportive work environment, which fosters
innovation and creativity, leading to better job satisfaction and productivity.Elysium
Technologies has a structured career development plan, offering clear paths for promotion
and growth based on performance.

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:

 Python is a high-level programming language known for its simplicity and


readability, making it a popular choice for beginners and professionals alike.
Created by Guido van Rossum in the early 1990s, Python emphasizes clean
syntax, allowing developers to write code that is easy to understand and
maintain.
 It supports various programming paradigms, including object-oriented and
functional programming, which makes it highly flexible for different types of
projects. Python is also cross-platform, meaning it works on multiple
operating systems like Windows, macOS, and Linux without major
adjustments.
 Its extensive standard library and ecosystem of third-party libraries enable
developers to use Python in a wide range of applications, such as web
development, data science, machine learning, automation, and more.
 Python’s strong community support and rich documentation make it an
accessible and efficient tool for solving complex problems, automating tasks,
and developing modern software solutions.
Core Concepts

 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.

Advanced Python Topics

 Mention advanced topics like decorators, list comprehensions, generators,


and lambda functions.
 Share examples of how you applied these in small exercises or projects
during your internship.

Challenges and Solutions

 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

Introduction to Web Frameworks

 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).

Understanding Django's MVT Architecture

 Dive deep into Django's Model-View-Template (MVT) architecture.


 Explain the purpose of each component: how models manage the database,
views handle logic, and templates manage the front-end display.
 Provide detailed examples of how you worked with each part during your
initial learning.

Django Features and Benefits

 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.

Challenges and Initial Setup Issues (1 page)

 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

System Setup and Prerequisites

 Walk through the installation of Python, pip, and setting up a virtual


environment to isolate project dependencies.
 Explain why using a virtual environment is important in Django development.

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.

Troubleshooting Installation Issues

 Reflect on any issues encountered during the installation process (e.g.,


package dependency problems, version conflicts).
 Describe how you solved these issues by consulting documentation,
StackOverflow, or reaching out to your supervisor.

Project Creation in Django

Creating a New Django Project

 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.

Creating a New App in Django

 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.

Organizing Project Structure

 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

 Mention any difficulties in creating or managing multiple apps.


 Highlight any insights you gained, such as managing dependencies across
different apps or handling complex URL structures.

Models in Django

Understanding Django ORM

 Explain Django’s Object Relational Mapping (ORM) system and how it


simplifies database interactions.
 Compare it with raw SQL queries and explain why Django ORM is more
intuitive for developers.

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.

Migrations and Database Schema Management

 Describe how you used Django’s migration system to propagate changes to


the database.
 Walk through the process of creating migrations (makemigrations) and
applying them (migrate).
 Mention any challenges faced, such as managing changes to existing models
or handling migration conflicts.

Working with the Django ORM for CRUD Operations

 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.

Admin Panel Setup

Introduction to Django Admin

 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.

Setting Up the Admin Panel

 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.

Challenges and Solutions

 Highlight any challenges faced when configuring or customizing the admin


panel.
 For example, talk about how you managed permissions for different users or
troubleshooted UI rendering issues.
 Discuss the solutions you found through documentation, forums, or trial-and-
error.

URL Mapping

Understanding URL Routing in Django

 Provide an overview of how URL routing works in Django. Explain the


concept of URL patterns and how they map to views.
 Mention Django’s urls.py file and the importance of organizing routes for
clarity and maintainability.
Creating URL Patterns

 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.

Using URL Routing with Views and Templates

 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.

Handling Complex Routing

 Reflect on any challenges faced while managing complex routing (e.g.,


handling multiple apps or dynamic URLs).
 Discuss how you organized your URL configurations and ensured a clear,
hierarchical routing structure.
 Mention any advanced features like URL redirection or customizing error
pages (e.g., 404, 500 errors).
Django Templates

Introduction to Django Template System

 Explain Django’s template system and how it separates logic from


presentation.
 Discuss the importance of using templates for rendering dynamic web pages
and maintaining a clean codebase.

Creating and Extending 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.

Working with Template Tags and Filters

 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

Configuring the Database in Django

 Explain how you configured the database settings in settings.py. Provide


details on setting up databases like SQLite, MySQL, or PostgreSQL.
 Discuss the differences between using SQLite (default) and other databases
(e.g., MySQL) in production environments.

Database Migrations

 Walk through the process of creating and applying migrations using


makemigrations and migrate.
 Provide exampsles of how you managed schema changes, added new fields to
existing models, or removed fields.
 Discuss how Django automatically translates Python code into SQL queries
to handle database operations.

Using Django ORM for Database Operations

 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.

Database Management and Optimization

 Reflect on any database management tasks like indexing, optimizing queries,


or handling database integrity.
 Mention how you used database management tools (e.g., pgAdmin for
PostgreSQL) to inspect and manage your data.
 Discuss any optimizations you performed to speed up database queries, such
as limiting the number of queries or optimizing relationships between models.

Demo Project

Overview of the 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.

Project Structure and Key Components

 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.

Challenges, Solutions, and Testing

 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.

Key Learnings and Takeaways

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.

Beyond technical skills, I developed a solid understanding of web development concepts


such as HTTP, request/response cycles, and frontend-backend communication. These
concepts are critical for full-stack development, and I successfully applied them to ensure
smooth interaction between Django’s backend and frontend components.
Conclusion
This internship on Python Programming with a specialization in Django Framework
was a highly rewarding and transformative experience. Over the course of the
internship, I achieved significant milestones that enriched my knowledge of web
development and empowered me to build real-world applications from scratch.

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.

Moreover, I developed essential soft skills such as time management, effective


communication, and collaboration, which are indispensable in any professional
setting. The internship not only helped me solidify my understanding of Python and
Django but also enhanced my ability to approach challenges logically and
systematically.

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.

You might also like