Summer Internship Report
on
Title of Project
Submitted by
Name: GAURAV ROHILLA
Roll No:21CSU246
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING,
SCHOOL OF ENGINEERING AND TECHNOLOGY
THE NORTHCAP UNIVERSITY
GURUGRAM-122017
Internship Period: 5/06/2023 TO 28/07/2023
Table of Contents
List of Tables
List of Figures
Abstract
During my internship at MakeMyTrip, a leading online travel platform, I underwent
comprehensive training as a Backend developer Intern. This abstract offers an overview
of the training experience, stressing essential characteristics such as the organizational
structure of the company, training objectives, activities, accomplishments, and personal
take aways.
As a Backend Developer intern, I was immersed in a collaborative environment,
working on cutting-edge projects and gaining hands-on experience in designing,
developing, and maintaining the backend systems that power MakeMyTrip's platform.
This internship offered me a unique chance to learn from experienced professionals,
apply theoretical knowledge to real-world scenarios, and make a meaningful impact on
the travel and technology industry.
The primary objective of the internship was to specialize in Python programming and
SQL database management, with a particular emphasis on their applications within the
travel technology domain. The internship aimed to enhance skills, understand industry
practices, and explore the integration of Python and SQL in travel technology solutions.
The specialized internship in Python and SQL at MakeMyTrip was a transformative
experience that equipped me with essential skills and insights. The integration of these
technologies within the dynamic travel industry underscored their relevance and
potential for innovation.
1. INTRODUCTION
This introduction provides an overview of the internship experience as a
Backend Developer at MakeMyTrip, a prominent online travel platform. The
internship spanned from 05 July 2023 to 28 August 2023, during which I delved
deep into the world of Python programming and its applications within the
dynamic landscape of travel technology.
The report delves into the comprehensive learning, practical exposure, and skill
development gained during the internship period.
MakeMyTrip is a pioneering online travel platform that offers a diverse range of
travel services, including flight and hotel bookings, holiday packages, and more.
With a strong commitment to technological innovation and enhancing user
experiences, MakeMyTrip has established itself as a leader in the travel and
technology sectors.
The primary objective of the internship was to gain hands-on experience and
insights into backend development within the dynamic context of a cutting-edge
travel technology platform. The internship aimed to provide a platform for
practical application of theoretical knowledge, collaboration with experienced
professionals, and contributions to projects that directly impact the user
experience.
2. PROBLEM STATEMENT
The challenge for a Backend Developer at MakeMyTrip is to design, develop,
and maintain robust and scalable backend systems that power the platform's
various services. The developer must tackle complex problems related to data
management, API integrations, performance optimization, and user experience
enhancement. These backend systems must handle a high volume of
transactions, ensure data security, and deliver real-time updates to users while
maintaining a responsive and seamless experience.
Scope of Work:
1. Database Architecture and Optimization
2. API Development
3. Scalability and Performance
4. Data Security
5. Error Handling and Logging
6. Third-party Integrations
7. Agile Development
Expected Outcome:
The Backend Developer is expected to contribute to the development and
enhancement of MakeMyTrip's backend systems, addressing challenges related
to scalability, performance, security, and user experience. By delivering efficient
and reliable backend solutions, the developer will play a crucial role in ensuring
that MakeMyTrip continues to provide exceptional travel services to its users.
3. SOCIAL RELEVANCE OF THE PROJECT
The fusion of Python programming and SQL queries in a backend developing project at
MakeMyTrip holds significant social relevance as it directly impacts the travel
experience of millions of users while contributing to the overall efficiency and
innovation within the travel industry. The project's combination of Python's versatility
and SQL's data management capabilities has far-reaching implications for users, the
industry, and society as a whole.
1. Enhanced User Experience:
The utilization of Python and SQL enables backend developers to create features that
enhance user interactions on the MakeMyTrip platform. Python-driven algorithms can
personalize travel recommendations, while SQL queries optimize search results, making
travel planning more efficient and tailored to individual preferences.
2. Seamless Booking Processes:
The integration of Python and SQL ensures seamless booking experiences for travelers.
Python's automation capabilities can facilitate smoother transitions between booking
stages, while SQL's data retrieval ensures swift access to available flights,
accommodations, and packages.
3. Data-Driven Decision Making:
Python's data analysis capabilities and SQL's efficient data retrieval empower decision-
makers at MakeMyTrip to glean insights from vast datasets. Informed decisions on
pricing, inventory management, and customer preferences not only benefit the business
but also contribute to improved user satisfaction.
4. Real-Time Information Sharing:
The synergy between Python and SQL allows for real-time updates on flight statuses,
hotel availabilities, and travel alerts. This ensures that users receive up-to-the-minute
information, enabling them to adapt to changing circumstances and make informed
travel choices.
5. Support for Sustainable Travel:
Efficient backend processes facilitated by Python and SQL contribute to reduced
processing times and energy consumption. This aligns with sustainable practices, as a
streamlined platform can potentially reduce server loads and minimize the platform's
overall environmental impact.
6. Customer-Centric Support:
The project's capabilities can expedite customer support services. Python-powered
chatbots can offer immediate responses to user queries, while SQL-driven data retrieval
equips support agents with relevant information, leading to quicker issue resolution and
improved user satisfaction.
7. Economic Growth and Innovation:
The project's impact on the user experience translates into customer loyalty, increased
bookings, and higher engagement. This generates revenue for MakeMyTrip, stimulates
economic growth, and fosters innovation within the travel and technology sectors.
In summary, the social relevance of a backend developer project combining Python and
SQL queries at MakeMyTrip is profound. The project's ability to personalize travel
experiences, streamline processes, and support sustainable practices aligns with the
company's commitment to enhancing user satisfaction while positively influencing the
travel industry and society at large.
3. TRAINING DESCRIPTION
# Created a Tic Tac Toe game :
During my training, I undertook a hands-on project focused on developing a
classic game of Tic Tac Toe using the Python programming language. This
endeavor allowed me to strengthen my programming skills, apply essential
algorithms, and gain valuable experience in game development.
The primary objective of the project was to create a functional and interactive
version of the Tic Tac Toe game using Python. I aimed to replicate the
traditional game's rules and mechanics while implementing a user-friendly
interface that allowed two players to compete against each other.
# Created a Login Page using Python :
I embarked on a practical project aimed at designing and developing a user-
friendly login page using the Tkinter library in Python. This undertaking
allowed me to gain hands-on experience in GUI (Graphical User Interface)
programming, enhance my Python skills, and understand the fundamentals of
user authentication and interface design.
The primary objective of this project was to create an interactive login page that
enables users to input their credentials for authentication. I used Python's Tkinter
library to design the graphical interface and incorporated functionality to handle
user inputs, validate credentials, and provide feedback based on authentication
outcomes.
Key Components of the Login Page:
1. User Interface Design: I designed the layout of the login page using Tkinter
widgets, including labels, entry fields, and buttons. The design aimed for a clean
and intuitive user experience.
2. Input Validation: I implemented logic to validate user inputs, ensuring that the
required fields were filled and adhered to specific criteria (e.g., minimum
password length).
3. Authentication Mechanism: I integrated logic to authenticate users by
comparing the provided credentials with stored username-password pairs.
Successful authentication granted access, while unsuccessful attempts triggered
error messages.
4. Error Handling: I incorporated error messages to inform users about incorrect
inputs or failed login attempts, enhancing user-friendliness and clarity.
5. Responsive Interaction: The login page provided real-time feedback to users
as they interacted with the interface, improving the overall usability.
During my training, I embarked on a project that focused on establishing a
seamless connection between SQL databases and Python. This comprehensive
endeavor involved creating multiple databases, designing tables, and executing
SQL queries within a webpage using a combination of Python and web
development tools. Through this project, I gained practical experience in
database management, SQL queries, Python programming, and web integration.
The core objective of this project was to showcase the integration of SQL
databases with Python and web technologies. I designed a dynamic webpage that
allowed users to interact with databases through a user-friendly interface. The
project encompassed the following key components:
1. Database Creation:
I created multiple SQL databases to simulate different scenarios or applications.
Each database represented a specific use case or context, demonstrating the
versatility of database management.
2. Table Design:
Within each database, I designed tables with relevant fields to store and organize
data. The tables were carefully structured to mirror real-world scenarios,
emphasizing proper data normalization.
3. Python Database Interaction:
I utilized Python libraries, such as SQLAlchemy, to establish connections with
the created databases. I incorporated CRUD (Create, Read, Update, Delete)
operations to interact with the tables, allowing for data insertion, retrieval,
modification, and deletion.
4. Webpage Interface:
Using web development tools like HTML, CSS, and JavaScript, I created an
interactive webpage that acted as a frontend for the database interactions. The
webpage featured input forms, buttons, and visualizations to facilitate user
interaction.
5. SQL Query Execution:
The webpage included a user interface for executing SQL queries. Users could
input custom queries, and the system would execute them on the corresponding
database, displaying results in a user-friendly format.
5. EXPERIMENTAL RESULTS (IF ANY)
6. ANALYSIS
Through this Training , I gained several valuable skills and insights:
Python Programming: I honed my Python programming skills by implementing
game logic, data structures, and user input mechanisms.
Algorithmic Thinking: Developing the winning condition checks and ensuring a
fair gameplay experience required algorithmic problem-solving skills.
User Interaction: I learned to manage user input and interaction within the
context of a game, enhancing the overall user experience.
Conditional Logic: Implementing the game's rules and deciding the outcome
based on different conditions improved my understanding of conditional
statements.
GUI Programming: I gained practical experience in GUI programming using the
Tkinter library, learning to create windows, buttons, labels, and entry fields for
interactive user interfaces.
User Input Management: I learned how to capture and manage user inputs
effectively, validating them to ensure data integrity and user satisfaction.
Error Handling: Implementing error handling mechanisms for incorrect inputs
enhanced my understanding of user experience design and troubleshooting.
User Authentication: I gained insight into the implementation of basic user
authentication mechanisms, a fundamental concept in software development.
Database Management: Creating and managing SQL databases, designing tables,
and understanding normalization principles.
SQL Query Execution: Crafting and executing SQL queries to manipulate and
retrieve data from the databases.
Python Integration: Establishing connections between Python and databases,
incorporating libraries for database interaction.
Web Development: Designing a dynamic webpage with HTML, CSS, and
JavaScript to provide an interactive user interface.
Practical Application: Applying theoretical concepts to real-world scenarios,
fostering a deeper understanding of database-driven applications.
6. CONCLUSION
My internship at MakeMyTrip was an invaluable experience that significantly
contributed to my personal and professional growth. The exposure to real-world
projects, the nurturing environment, and the insights gained into the travel technology
sector have equipped me with the skills and knowledge necessary to embark on a
successful career journey.
Creating the Tic Tac Toe game using Python was a rewarding experience that allowed
me to put my programming skills into action. The project not only enhanced my Python
proficiency but also introduced me to the world of game development and problem-
solving. This project forms a solid foundation for future endeavors in programming and
software development.
Creating a login page using Python and Tkinter was a rewarding endeavor that provided
me with valuable exposure to GUI programming, user interaction, and authentication
mechanisms. This project contributed to my practical programming skills and provided
a stepping stone for further exploration in interface design and application development.
The skills acquired in this project are applicable in a wide range of software
development scenarios.
Creating a connection between SQL databases, Python, and web development
showcased my ability to integrate various technologies into a cohesive project. This
project not only enriched my technical skills but also demonstrated the value of data
management, user interaction, and backend development. The project serves as a
foundation for more complex applications that involve data storage, retrieval, and
dynamic user interfaces.
BIBLIOGRAPHY
1. **"Clean Code: A Handbook of Agile Software Craftsmanship"** by Robert C.
Martin
- This book emphasizes writing clean, maintainable, and efficient code, which is
essential for backend development.
2. **"Designing Data-Intensive Applications: The Big Ideas Behind Reliable,
Scalable, and Maintainable Systems"** by Martin Kleppmann
- This comprehensive guide explores the principles behind designing data-
intensive applications, which is crucial for backend developers dealing with large
datasets.
3. **"SQL Performance Explained"** by Markus Winand
- Backend developers frequently interact with databases, making this book
valuable for understanding SQL performance optimization techniques.
4. **"Python Web Scraping Cookbook"** by Michael Heydt**
- Backend developers may need to retrieve data from various sources. This book
provides insights into web scraping techniques using Python.
5. **Online Resources:**
- Platforms like Stack Overflow, GitHub, and online developer communities offer
a wealth of information, discussions, and code samples relevant to backend
development.
APPENDIX
Project Daily Task
Date Day Work
19th may,2016 Monday Project alloted- IT ASSET
MANAGEMENT ; studied about GLPI
and PHP modules
20th may,2016 Tuesday WAMP server installation, GLPI
installation, configurations
21st may,2016 Wednesday PHP and MySQL connectivity; made a
table using phpmyadmin and mysql
22nd may,2016 Thursday backup and recovery of GLPI
helpdesk of POWERGRID
23rd may,2016 Friday Free
26th may,2016 Monday Study of Ticket Management System
in GLPI; creation of new user in GLPI
27th may,2016 Tuesday Editing and study of the php pages of
the GLPI tickets and users and their
forms; php mini website on Video
Conference
28th may,2016-30th may,2016 Wednesday-Friday Free
2nd june,2016 Monday making of mini website in php
(display information in grid form by
selecting region and location)
3rd june,2016 Tuesday php website on VC modified to 4
pages with more linking of pages
dynamically
4th june,2016 Wednesday php website on VC progressed
further more
…………….. …………………….. …………………………………………………………
…………….. …………………….. …………………………………………………………
…………….. …………………….. …………………………………………………………
…………….. …………………….. …………………………………………………………
…………….. …………………….. …………………………………………………………
…………….. …………………….. …………………………………………………………
…………….. …………………….. …………………………………………………………
…………….. …………………….. …………………………………………………………