Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

Jnana Sangama, Belagavi – 590 014

INTERNSHIP REPORT

Submitted in Partial fulfillment of the requirements for the Degree of

BACHELOR OF ENGINEERING
in
COMPUTER SCIENCE & ENGINEERING

Submitted By:
AAQIB KHAN
4MW20CS107

Under the guidance of:

Ms. Savitha A Shenoy Mr. Rupesh Shetty


Assistant Professor Domain Expert
Dept. of CSE, Qliclabs
SMVITM Mangalore

Department of Computer Science and Engineering


SHRI MADHWA VADIRAJA INSTITUTE OF TECHNOLOGY AND MANAGEMENT
Vishwothama Nagar, Bantakal - 574115, Udupi District
2023 – 2024
SHRI MADHWA VADIRAJA INSTITUTE OF TECHNOLOGY AND MANAGEMENT
Vishwothama Nagar, Bantakal – 574 115, Udupi District, Karnataka, INDIA
Department of Computer Science and Engineering.

CERTIFICATE

This is to certify that Aaqib khan bearing USN 4MW20CS107 is a bonafide student of
Shri Madhwa Vadiraja Institute of Technology and Management, Bantakal Udupi, and has
undergone one months internship at Qliclabs, Mangalore from 14 Febraury 2024 to
15 March 2024. This internship report has been approved as it satisfies the academic
requirement in respect of the internship prescribed by the Visvesvaraya Technological
University Belagavi during the year 2023-2024

Ms. Savitha A Shenoy Dr. Soumya Bhat


Internal Guide Professor and Head
Assistant Professor, Dept. of CSE Dept. of CSE
SMVITM, Bantakal SMVITM,Bantakal

External Viva
Name of the Examiner Signature with date
1.

2.
ACKNOWLEDGEMENT
_
It is with great satisfaction and euphoria that I am submitting the Internship Report
on “WEB DEVELOPMENT PROJECT INTERNSHIP ”. I have
Completed it as a part of the curriculum of Visvesvaraya Technological University,
Belagavi in partial fulfillment of the requirements for the VIII Semester of Bachelor
Of Engineering in Computer Science & Engineering.

I am using this opportunity to express my deepest gratitude and special thanks to the Mr.
Rupesh Shetty, who in spite of being extraordinarily busy with his duties, took time out
to hear, guide and keep me on the correct path and allowing me to carry out my project at
their esteemed organization and extending during the training. I would also like to thank Ms.
Savitha A Shenoy , Assistant professor, Department of CSE, for her extended support. Lastly, I
take this opportunity to offer our regards to all of those who have supported us directly or
indirectly in the successful completion of this project work.

I perceive as this opportunity as a big milestone in my career development. I will strive to use
gained skills and knowledge in the best possible way, and I will continue to work on their
improvement, in order to attain desired career objectives.

AAQIB KHAN
4MW20CS107

i
ABSTRACT

This internship report highlights the valuable experience gained during my


Web Development Internship, focusing on essential skills in web development
and project management. Over [Duration], I immersed myself in foundational
and advanced web technologies, enhancing proficiency in front-end design,
back-end development, and API integration.Commencing with HTML, CSS,
and JavaScript, I progressed to advanced frameworks like [Specify], gaining
practical experience in building dynamic and responsive web applications.
The internship culminated in completing [Specify Projects], demonstrating
my ability to apply learned skills to real-world projects.
Throughout the internship, I demonstrated a commitment to learning, adaptability,
and problem-solving, laying a strong foundation for future growth in web development.
and exhibited a dedication to learning, adaptability,
and problemsolving, laying the groundwork for ongoing growth and success
in the realm of software development.

ii
INTERNSHIP CERTIFICATE
lOMoARcPSD|41335687

TABLE OF CONTENTS

CONTENT PAGE NO
Approval i
Abstract ii
Table of content iii
List of figure iv

CHAPTER PAGE NO

CHAPTER 1: INTRODUCTION 1-4


1.1 Introduction 1
1.2 Objectives 1
1.2.1 To save the time and resources 1
1.2.2 To reduce the number of workers 2
1.2.3 To reduce the space being used 2
1.2.4 To reduce the work load 2
1.2.5 To make it easy to search any record 2
1.2.6 To edit records and update the database easily 2
1.2.7 To make the system user friendly 2
1.3Motivation 3
1.4Internship Goals 3
1.5Report Layout 4

V
lOMoARcPSD|41335687

CHAPTER 2: INTERNSHIP ENTERPRISE 5-9


2.1About the Company 5
2.2 IT Services Offered 6
2.2.1 Fixed Price System Develop 6
2.2.2 Software Development Kit 6
2.2.3 Pay Roll Software 6
2.2.4 Managing Site Content 6
2.2.5 Software Marketing 6
2.2.6 Dedicated Support Team 6
2.2.7 Installation & Technical Manuals 6
2.2.8 Website Optimization 6
2.2.9 Web design & Development 7
2.2.10 Website Technical Support 7
2.3 Roles in Job Market 8
2.3.1 Salaries are Average 9
2.3.2 Job Titles Are Vague 9
2.3.3 Jobs are Multi-skilled 9

CHAPTER 3: INTERNSHIP ROLES AND RESPONSIBILITIES 10-18


3.1 Training Attended 10
3.2 Assigned Responsibilities 10
3.3 Work Environment 11
3.3.1 Using Web Development Project Template 11
3.4 Performed Tasks 14

VI
lOMoARcPSD|41335687

LIST OF FIGURES

FIGURES DESCRIPTION PAGE NO


Figure 3.1: Web design templates 12
Figure 3.2: Home page 15
Figure 3.3: Clothing page 15
Figure 3.4: Order Us page 16
Figure 3.5: Contract Us page 16
Figure 3.6: Admin page 17
Figure 3.7: Login page 17
Figure 3.8: Register page 18
Figure 3.9: Payment page 18

VIII
©Daffodil International University

Downloaded by AAQIB KHAN (aaqib.20cs107@sode-edu.in)


Website Application Design and Development

CHAPTER 1
INTRODUCTION
1.1 Introduction
PHP was developed by Ramus Ledford. It is a freeware. It is also a weakly typed, free
from language. PHP has since evolved into a powerful server-side markup language
with syntax that resembles a mix between Perl and C. PHP is a server-side scripting
language designed specifically for the web. Within an HTML page, we can embed PHP
code that will be executed each time the page is visited.HTML generate the web page
with the static text and images. However, the need evolved for dynamic web base usage.
These dynamic usages are facilities by PHP [1].

Other tasks that PHP is especially good at are database access, disk access, networking
and text manipulation. PHP is an excellent alternative to such similar programming
solutions as Microsoft’s proprietary scripting engine ASP and Allayer’s rather
expensive Cold fusion. As mentioned before, PHP is a cross-platform language.

Finally, PHP is easy. If you know C or Perl, learning PHP is a cinch. The language is a
mix between the two, taking the best features from both. Plus, PHP adds features to
solve common problems that programmers often encounter when programming for the
web.

1.2 Objectives
The objective of the web development is to handle the entire activity of a website. The
software keeps track of all the information about the entire website. The system
contains database where all the information will be stored safely.

1.2.1 To save the time and resources


The website system will take less time in entering the data, processing it and getting its
output. Fewer resources will be used as no large registers, files, ledgers, pens; correctors
will be needed or used.
1

1
lOMoARcPSD|41335687

Django-Powered Student Information on Docker

1.2.2 To reduce the number of workers


After the system will be computerized only a single computer operator will be needed
to operate the system while now more than one workers work in the system.

1.2.3 To reduce the space being used


Every data will be stored in the computer memory whereas now it is stored in registers
and files which then stored in bookshelves or cupboards and they need a large space.

1.2.4 To reduce the work load


As the new system will be computerized, the database will be automatically updated at
the time of entry. Everything will be done automatically just by clicking few buttons.
There will be no need to maintain any files or registers.

1.2.5 To make it easy to search any record


It will be much easier to find particular record rather than opening such huge files and
finding a single record from them

1.2.6 To edit records and update the database easily


Records will be easily edited and the database will easily be updated at the time of
entering a record.
1.2.7 To make the system user friendly
The system will be much more easy to use and the operator will feel no difficulty.

1.3 Motivation
In desktop base website creating system is easy to understand. Since I accept Internship
it seems to me I am beginner and primary level to learn web development, so it is easy
and interested to learn and create. Further this project is related of student and I am
introducing to its circumstances so it service technology is under of the understand
mine. Its technology is so interested and charming and easy to build a project by fully
PHP, HTML, CSS, MYSQL.

2
2
Dept. of CSE, SMVITM

Downloaded by AAQIB KHAN (aaqib.20cs107@sode-edu.in)


Website Application Design and Development

1.5 Report Layout


Layout includes such things as the chapter objective details type of paper chosen, the
margins, the line spacing, the pagination, and the incorporation of equation,
illustrations, and references. Table 1 presents general specifications for the page
layouts.
For each report that I create, I can assign a report layout. Via the report layout I define
the layout features of the report, such as the page format of the report and the numeric
format of the report data. When I use the layout functions, I can set parameters for the
report.
When I define a report layout, I define a layout specifically for a report and I can change
the standard layout assigned to a report.
 In Chapter 1 I mention details about web development introduction. Objective.
Objective include some facility about internship as save the time and resource,
reduce the number of workers, reduce the work load, easy to search and record.
Motivation to web development as inheritance, implement, object declare and
so on opportunity. Goals of web development project PHP is more effective and
choice full and ultimate for fruitful programmer. Report layout is the short
overview of full report chapters.

 Chapter 2 describe about internship enterprise like about the company, IT


services offered, roles in job market and responsibilities.

 Chapter 3 contain internship roles and responsibilities like training attended,


assigned responsibilities, work environment, using web development project
temples, performed tasks with figure and mention task.

 Chapter 4 describe about internship outcomes some outcomes of internship is


problems and solutions like OOP understanding, view some component in
frame. And learning outcomes, challenges.

 In the Chapter 5 simply I mention about internship discussion and conclusion.

3
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

to run including libraries, system tools, code, and runtime. Using Docker we can quickly deploy and
scale applications into any environment and know our code will run. Docker revolutionizes the
traditional approach by enabling the encapsulation of applications and their dependencies into
portable, lightweight containers. This facilitates seamless deployment across different environments,
ensuring consistency and reliability.

Fig 2.1 Docker Architecture

Docker’s popularity stems from its ability to streamline development workflows, enhance
collaboration, and accelerate the delivery of software products. As I delved into Docker’s core
concepts and functionalities through hands-on tutorials, I realized its potential to revolutionize the
way modern applications are developed, tested, and deployed. From containerizing projects to
managing multiple services with Docker Compose and optimizing resource utilization, I discovered
the power of Docker in creating scalable, resilient, and agile software solutions .

2.2.2 Introduction to Git

Concurrently, I embarked on a journey into the world of version control with Git, a distributed version
control system that underpins collaborative software development. Git is an orce distributed
version control system. It is designed to handle minor to major projects with high speed and
efficiency. It empowers developers to track changes, manage codebase versions, and coordinate work
effectively within teams. From initializing repositories to branchid

4
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

merging branches, Git provides a robust framework for managing codebase evolution and ensuring
project integrity.

Fig 2.2 Git Workflow

Git is a free and open-source distributed version control system designed to handle projects with
speed and efficiency. Real-life projects generally have multiple developers working in parallel and
the code in Git keeps changing as more code is added by developers.

Git helps us with the following features:

 Maintain history of what changes have happened.

 Ensures no conflicts between developer’s codes.

 Revert or go back to previous versions.

The integration of platforms like GitHub amplifies Git's collaborative capabilities, facilitating
seamless code review, feedback exchange, and collaborative development workflows. Through
guided tutorials and practical exercises, I honed my Git skills, recognizing its pivotal role in modern
software development practices. Git's ability to facilitate parallel development, code sharing, and
version history management underscores its indispensability in agile, iterative software development
environments.

2.2.3 Introduction to PostgreSQL

Complementing my exploration of Docker and Git, I explored relational database management with
PostgreSQL. PostgreSQL stands as a robust, open-source database management system renowned
for its reliability, performance, and extensive feature set. As I navigated through structured tutorials
and hands-on exercises, I gained proficiency in designing, querying, and managing databases using
PostgreSQL.

5
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

Key Features of PostgreSQL:

 Free to download.

 Compatible with Data Integrity.

 Compatible with multiple data types.

 Highly extensible.

 Secure.

 Highly Reliable.

Understanding fundamental concepts such as schema design, data manipulation, and indexing
provided a solid foundation for effective data storage and retrieval strategies. Moreover, integrating
PostgreSQL with Docker environments offered valuable insights into deploying and managing
database services within containerized infrastructures, highlighting its significance in comprehensive
application development and deployment practices. PostgreSQL's support for ACID transactions,
JSONB data type, and extensibility further underscore its suitability for a wide range of use cases,
from small-scale applications to large-scale enterprise systems.

2.3 Second Week

During the second week of my internship, I immersed myself in Django, a potent web framework for
Python. I learned to set up and configure Django projects, laying the groundwork for dynamic web
applications. Updating existing Dockerfiles to accommodate Django Admin was a notable highlight,
enhancing our project management capabilities. Additionally, I understood the importance of
RESTful APIs, understanding their design principles and serialization methods. Creating unit tests
further solidified my understanding, ensuring the reliability and functionality of our Django
applications.

2.3.1 Introduction to Django


Django is a Python framework that makes it easier to create web sites using Python. Django
emphasizes reusability of components and comes with ready-to-use features like login system,
database connection and CRUD operations (Create Read Update Delete).
Django follows the MVT design pattern (Model View Template):

 Model - The data you want to present, usually data from a database

 View - A request handler that returns the relevant template and content - based on the request
from the user

6
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

 Template - A text file (like an HTML file) containing the layout of the web page, with logic
on how to display the data.

URL Routing: Django utilizes URL patterns defined in the urls.py file to map incoming URLs to
corresponding views. This allows for clean and organized URL handling, enhancing the
maintainability of the application.

Fig 2.3 General Workflow of Django

Generic Workflow: The typical workflow in Django involves:

 Processing an incoming URL request.

 Routing the request to the appropriate view function based on URL patterns.

 Retrieving data from models as necessary.

 Rendering templates with the retrieved data.

 Generating HTML content to be sent back to the client's browser.

2.3.2 Introduction to RESTful API:


Beginning with an understanding of APIs, I started learning REST architecture, which forms the basis
for creating flexible web services. I initiated by creating a basic Django model, 'Students', to
encapsulate student details such as name, address, roll number, mobile, and branch. Integrating this
model into Django's admin panel facilitated efficient data management. Database migrations ensured
synchronization between the model and the database schema.

7
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

Implementing class-based views, we crafted methods to handle CRUD operations, allowing for the
retrieval and creation of student records. URL endpoints were then configured to enable access to
these views, facilitating interaction with the API.
Testing the API's functionality was crucial, and we employed CURL commands to validate GET
requests for retrieving student information and POST requests for adding new student entries.

2.3.3 Creating Unit Testing


Unit testing is a critical aspect of software development where the software is divided into
independent units or components, each tested individually to ensure they function correctly. In a
recent project example involving web scraping and database interaction within a Django application,
the software was divided into three parts:

 Data Scraping: Retrieving data from Python blogs.

 Database Interaction: Saving the scraped data into the database.

 Web Display: Displaying the saved data on a Django web application.

2.4 Third Week

During the third week of my internship, I focused on advancing my logic building skills by delving
into web scraping using Python. I successfully developed scripts to scrape data from various sources
and stored it efficiently in a Postgres database. Additionally, I integrated these scripts into Django
views, enabling seamless integration of scraped data into our web application. Furthermore, I
explored different types of extractors to enhance data extraction capabilities, and I honed my
debugging and profiling skills in Python to ensure the robustness and efficiency of our scraping
processes.

2.4.1 Web Scraping Using Python


This week, I focused to extract data from the Python Insider blog. I developed a Python script to
scrape the blog's title, release date, blog time, and author information. Utilizing libraries such as
BeautifulSoup and requests, I successfully extracted the required data and printed it. Additionally, I
updated our Dockerfile to include necessary packages for web scraping, built a new Docker image,
and ran the script inside our Docker container. This allowed us to efficiently scrape the website and
obtain the desired information, enhancing our web development capabilities within our project.

8
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

2.4.2 Storing the scrapped data into PostgresDB


To save the extracted data from the Python Insider blog into a PostgreSQL database, we utilized
Django models to define the structure of the database table and created a new model called Blog.
After updating the models, I ran migrations to create the corresponding database table. Then, I
modified our web scraping script to insert the extracted data into the PostgreSQL database. This
involved establishing a connection to the database using psycopg2 and defining functions to add rows
to the database table and truncate existing entries. Finally, I ran the updated script to populate the
database with the scraped data, ensuring seamless integration between web scraping and database
management within our project.

2.4.3 Creating Django views to integrate the script


I integrated the web scraping script into Django admin by creating a Django model for the scraped
data and registering it in the admin interface. Additionally, I moved the scraping logic to the apps.py
file and created a view in the views.py file to trigger the scraping process. This view can be accessed
through a specific URL pattern, allowing us to run the scraping script from the

Django admin interface. Finally, I verified the functionality by triggering the scraping process
through the created view and checking the extracted data in the admin panel. This integration
streamlines the process of scraping and viewing the data within the Django admin interface,
enhancing the overall usability and management of the application.

2.5 Fourth Week

During the fourth week of my internship, I deepened my understanding of web development by


exploring Celery, RabbitMQ, and Microservice Architecture. I enhanced project management
capabilities by integrating job logs and statistics while implementing periodic task execution.

2.5 Introduction to Celery and RabbitMQ


Celery is an open-source distributed task queue system widely used for building asynchronous and
distributed applications. It enables the execution of tasks asynchronously, making it ideal for handling
time-consuming, computationally intensive, or scheduled tasks.
Here are some key features of Celery:

 Task Scheduling and Execution: Celery allows tasks to be scheduled and executed
asynchronously, improving performance and scalability.
9
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

 Distributed Task Processing: It supports multiple worker nodes for distributed task
processing, enhancing efficiency and throughput.

 Task Prioritization and Retries: Celery provides features for prioritizing tasks and handling
retries in case of failures, ensuring robustness and reliability.

 Scalability: With support for distributed processing and task queues, Celery scales seamlessly
to handle large workloads.

 Monitoring and Management Tools: Celery offers monitoring and management tools for
tracking task progress, debugging, and performance optimization.

To use Celery, a message transport, or broker, is required to handle message creation and
transport. RabbitMQ is a popular choice for this purpose due to its reliability, flexibility, and
scalability. Key features of RabbitMQ include reliability, flexible routing, clustering, highly
available queues, and a management UI.

2.5.2 Introduction to Microservice Architecture


Microservice architecture offers a scalable and efficient approach to building applications by
breaking them down into smaller, independent services. In our project, we're dockerizing a Django
application with RabbitMQ, Celery, and Postgres to handle asynchronous tasks, specifically
automating the scraping process of Python blog sites. Each component serves a distinct purpose:
Django triggers tasks, RabbitMQ manages task queues, Celery processes tasks asynchronously, and
Postgres stores the data. This architecture enables parallel task execution, eliminates the need to wait
for task completion, and enhances project scalability and maintainability. By leveraging
microservices, We can design a robust and flexible system capable of handling complex tasks
effectively.
We need following models to run and track asynchronous task.

 Job: Job is nothing but task which contains meta information required to run task.

 Job stats: This contains stats for each job runs.

 Job Logs: This contains logs which helps us to track asynchronous task.


10
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

Chapter 3

OUTCOMES

Overall, I had a great internship experience at UniCourt India. My mentor and people manager
helped me navigate different workflows and get through challenging circumstances. I got a chance
to develop my interpersonal abilities from one to one meetings and discussion, which are highly
transferable across fields and jobs, in addition to honing my technical talents. I was able to develop
my leadership and teamwork abilities by taking on leadership responsibilities all throughout.

3.1 Learning Outcomes

Enhanced understanding of theoretical concepts: During my internship I have gained



a comprehensive understanding of the theoretical concepts that underlie Docker,
Django, Python and PostgreSQL. All these technical concepts helped in understanding
the projects and team’s requirements in an efficient way.

Practical experience working with tools and technologies: As an intern I have got an

opportunity to gain hands-on experience working with Docker, Containerizing the
project, its Python implementation and data storage in PostgreSQL database. This
experience helped me develop skills in best coding practices and efficient data
retrieval & storage.

Increased problem-solving skills: Every problem is unique and thus required a new

programming logic. Thus being as an intern I got an opportunity to keep on optimizing
my own code until its efficient and understandable enough to tackle with multiple
such problem.

Understanding of industry applications: As an intern I have gained insights on industry



level programming paradigm, coding best practices and industry use case.

11
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

3.2 Project Outcomes


The Django based Dockerized project of web scraping application could be used to efficiently
scrap the content from online websites and store it in PostgreSQL database which helps in removing
the redundancy and unstructured characteristic of web content. Moreover it has got an additional
advantage of Docker container that reduces the overall cost of running an application.

3.2.1 Containerizing the project

Dockerizing a project involves having required base files such as docker-compose and dockerfiles
wherein we specify the configuration of out container. Also we can have our python scripts which
can be executed in the VM environment while a docker project is up.

Fig 3.1 File Structure of Docker Project

Fig 3.2 Running a Docker Project

12
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

3.2.2 Django admin site for Student app

The Django admin site allows us to interact with the database by means of graphical user
interface. The admin site required a super user who can access the site based on the provide
credential. The login page of Django admin site looks similar to the below reference.

Fig 3.3 Django admin site login page

3.2.3 Django admin site details

The admin site displays all the available models in the project, listed at the left navigation section,
during the internship I have worked on student details management system and hence the below
figure shows a Students model list in the navigation section.

Fig 3.4 Django Web App

13
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

The stored data in the models could be viewed by navigating through the model, that shown the
graphical representation of saved details as shown in the below figure.

Fig 3.5 Graphical View of Django Model

14
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

Chapter 4
CONCLUSION

In conclusion, my internship journey at Mangalore Infotech has been an enriching and


transformative experience. Over the course of four weeks, I've had the opportunity to immerse
myself in a diverse array of technologies and methodologies, ranging from foundational tools like
Docker and PostgreSQL to advanced concepts such as Django, RESTful APIs, and Microservice
Architecture.

Through hands-on experience and guided mentorship, I've not only expanded my technical skill set
but also honed my problem-solving abilities, communication skills, and collaborative mindset. The
internship has provided me with a solid foundation to continue my journey in the field of software
development with confidence and enthusiasm.

I'm grateful for the support and guidance provided by the team at Mangalore Infotech, particularly
my mentor, Mr. Sidharth, whose expertise and encouragement have been invaluable throughout
this journey. As I embark on the next phase of my career, I carry with me the lessons learned and
the experiences gained during this internship, confident in my ability to tackle new challenges and
contribute meaningfully to the world of technology.

15
Dept. of CSE, SMVITM
Django-Powered Student Information on Docker

REFERENCES

[1] Introduction to Docker


https://github.com/UniCourt/DataEngineering-Workshop1

[2] Introduction to Django


https://github.com/UniCourt/DataEngineering-Workshop2

[3] Introduction to PostgresDB


https://github.com/UniCourt/DataEngineering-Workshop3

[4] Introduction to Celery and RabbitMQ


https://github.com/UniCourt/DataEngineering-Workshop4

16
Dept. of CSE, SMVITM

You might also like