Report (Jeevan)
Report (Jeevan)
SUPRIT S H
4RA20CS101
Crystallize Technologies
JK Arcade, Hoysalanagar Main Rd,
Krishnaraja Pura, Hassan, Karnataka 573201
2023-2024
Certified that the Industrial Internship on “PYTHON AI AND ML” is carried out by
Mr. Suprit S H bearing USN: 4RA20CS101 is a bonafide student at RAJEEV
INSTITUTE OF TECHNOLOGY, Hassan in partial fulfillment for the award of
Bachelor of Engineering in Computer Science and Engineering of Visvesvaraya
Technological University, Belagavi during the period of 4 weeks (14th Aug – 9th Sep). The
internship report has been approved as it satisfies the academic requirements in respect of
internship prescribed for the Bachelor of Engineering Degree.
6. Snapshots 23 – 24
Crystallize Technologies
Crystallize Technologies
Crystallize Technologies, located in Hassan, Karnataka, was founded by Bhaskar Rao in February 2021.
This company is a one-stop destination for a wide array of IT services, including software development,
mobile application development, website and web application development, IT consultancy, and digital
marketing. Situated at the prominent JK Arcade on Hoysalanagar Main Road, Crystallize Technologies
has swiftly emerged as a trusted partner for businesses seeking cutting-edge technological solutions.
Bhaskar Rao's visionary leadership has been instrumental in the company's growth, enabling it to adapt
and thrive in the ever-evolving IT landscape. Committed to excellence and innovation, Crystallize
Technologies is dedicated to delivering customized solutions that precisely align with the unique
requirements of its diverse clientele, propelling them towards sustainable success in the digital age.
The company's address at Hoysalanagar Main Rd in Krishnaraja Pura, Hassan, Karnataka, 573201,
provides a strategic base for serving clients both locally and globally. Crystallize Technologies is not
merely a service provider but a trusted collaborator, working closely with its clients to understand their
specific needs and challenges. With a relentless focus on quality, efficiency, and customer satisfaction,
the company consistently exceeds expectations in delivering software solutions that drive productivity
and growth. Their mobile application development services leverage the latest technologies to create user-
friendly and innovative mobile solutions. Additionally, their web development expertise ensures that
clients have a strong online presence, enhancing their brand visibility and customer engagement.
Crystallize Technologies also offers IT consultancy services, providing valuable insights and strategies to
help businesses make informed decisions regarding their technology infrastructure. Their digital
marketing solutions are designed to boost online visibility and market reach, ensuring clients stay
competitive in the digital landscape. Under Bhaskar Rao's astute leadership, Crystallize Technologies is
poised to continue its trajectory of success, staying at the forefront of the IT industry by consistently
delivering cutting-edge solutions tailored to meet the unique demands of a rapidly evolving business
environment.
1. Internship Summary:
Our four-week internship provided a holistic, hands-on learning experience in Python
programming and software development. We progressed from introductory concepts to advanced
topics, gaining proficiency in Python fundamentals, control flow, Object-Oriented Programming
(OOP), error handling, data manipulation, data visualization, and advanced libraries. The project
phase emphasized collaboration, project planning, and execution, preparing us for real-world
software development challenges.
Throughout this immersive journey, we not only honed our technical skills but also developed
critical soft skills such as problem-solving, communication, teamwork, and time management.
This internship equipped us with valuable skills and knowledge, laying a solid foundation for our
future endeavors in the field of software development.
Moreover, it's essential to highlight the growth in our ability to work as part of a team. Whether
during the seminar presentations, where we had to explain complex concepts to our peers, or
during the final project phase, where collaboration was key, we learned how to effectively
communicate and cooperate with others. This skill is invaluable in real-world software
development environments where teamwork is often essential for project success.
Furthermore, our internship was characterized by practicality. The hands-on approach, including
coding exercises, assignments, and projects, allowed us to immediately apply the concepts we
learned. This not only reinforced our understanding but also gave us the confidence to tackle real-
world programming challenges. Each day's lessons built upon the previous ones, creating a
continuous learning curve that mirrored the demands of professional programming.
The final project phase was a highlight of the internship, where we applied our collective
knowledge and creativity to solve real-world problems. These projects ranged from image
processing to data analysis, reflecting the versatility of Python in various domains. Working in
project teams taught us not only technical skills but also project management, time management,
and the art of compromise and collaboration.
Our ability to work as part of a team, communicate effectively, and manage projects also
improved significantly. These soft skills are as crucial in the professional world as our technical
proficiency.
Ultimately, this internship was not just about learning Python but about equipping us with the
skills and mindset required to excel in the field of software development. As we move forward in
our careers, we carry with us the knowledge, experiences, and camaraderie forged during these
four intensive weeks, ready to embrace the challenges and opportunities that lie ahead.
Day 2 delved into the world of Python, where we explored its real-world applications and learned
the basics, laying a solid foundation for the days ahead. Subsequently, on Day 3, we focused on
setting up our coding environment, which involved the installation of tools such as VS Code,
Anaconda, and Notepad. We also learned the importance of efficient file management, creating
folders to organize assignments, practices, projects, and documentation, while getting hands-on
experience with VS Code.
Day 4 took us deeper into Python, where we delved into data types, including numeric types, text
types, boolean types, and sequence types, equipping us with the knowledge needed for handling
various data in Python. Additionally, we explored input functions, essential for reading user-
provided data.
On Day 5, we engaged in a seminar to consolidate our learning from Day 1 to Day 4, with a
particular focus on data types and input functions. This served as a review and reinforcement of
our foundational knowledge.
Day 6 introduced us to control statements in Python, such as conditional statements (if, else, elif),
which are crucial for decision-making logic in Python programs. These control flow statements
empower us to create versatile and responsive code structures.
Continuing our exploration of Python, Day 7 was dedicated to looping statements, specifically the
while and for loops. We not only learned about their syntax but also applied them to real-world
scenarios. While loops enable repetitive execution of code based on specified conditions, and for
loops are indispensable for iterating through sequences.
Day 8 delved into lists and tuples in Python, helping us understand the differences between the
two through practical programming examples. We also learned how to use lists and tuples
effectively in real-world applications.
Day 9 expanded our Python knowledge to include sets and dictionaries. Dictionaries were
introduced, covering keys, values, and their usage in program development, illustrated by creating
a program to display bank details using dictionaries. Sets, as an unordered collection of unique
elements, were also explored.
Day 10 emphasized the importance of functions in Python, not only for enhancing code
readability but also for organizing and modularizing code. We practiced developing Python
programs using functions, with a specific project involving the creation of a "Simple Calculator."
Day 12 shifted our focus to object-oriented programming (OOP) concepts in Python. We delved
into classes, objects, and their real-world applications, setting the stage for understanding
inheritance, its types, and practical examples.
Day 13 further deepened our OOP understanding by covering constructors, including the
init () function, default and parameterized constructors. We also explored polymorphism,
including method overloading and overriding, and how to implement these concepts in Python.
On Day 14, we learned about exception handling in Python, with an emphasis on the try and
except blocks, which help prevent program crashes due to unexpected errors. We practiced writing
a Python program to find the sum of two numbers using try-except blocks and even tackled user-
defined exceptions.
The following day, Day 15, involved another seminar, where we reviewed our learning from Day
12 to Day 14. Additionally, we engaged in a hands-on session, developing a Python program to
calculate the discounted price of a meal based on membership.
Day 16 featured a hands-on session where teams were assigned specific topics to develop
programs related to those topics. This practical experience allowed us to apply our knowledge in
real-world scenarios.
Day 17 saw us participate in a formal seminar, where we elaborated on the methodologies and
outcomes of the programs we had developed based on the assigned topics.
The second half of the internship commenced on Day 18, introducing us to Numpy and Pandas,
essential tools for data analysis and manipulation in Python. We explored Numpy arrays, both 1D
and 2D, using lists, and delved into the world of Pandas for data analysis. Assignments were
assigned to further deepen our understanding of these topics.
Day 19 continued our exploration of Pandas, with a focus on creating and using .csv files in
programs. We also ventured into Matplotlib for data visualization, covering various types of plots
such as line plots, scatter plots, pie charts, and bar charts. An assignment challenged us to create a
Python program to generate graphs for COVID-19 data. Additionally, we coded a program to
count White Blood Cells in an image and received an assignment related to Face Detection and
Tumor Cell Detection.
On Day 20, we learned about Scipy, a library for performing advanced mathematical operations in
Python, and Seaborn, a data visualization library that integrates seamlessly with Pandas. We were
tasked with writing programs utilizing these packages, expanding our skill set.
Day 21 introduced us to Distplots, which are used to visualize the distribution of univariate
datasets, enhancing our data analysis capabilities. We also delved into Tkinter, a Python library
for creating graphical user interfaces (GUI). Topics covered included buttons, entry fields,
listboxes,
On Day 22, we engaged in a hands-on session to further hone our programming skills, followed
by the allocation of topics for our final projects, setting the stage for the culmination of our
internship.
The internship concluded on Day 23 with the submission of our final projects, marking the end of
our immersive journey into Python programming and software development. This comprehensive
curriculum equipped us with a wide range of skills and knowledge to excel in the world of
software development and programming.
The first week of our internship served as the foundation upon which our Python programming
journey was built. We started by understanding the structure of the internship program, which
provided us with clear guidelines on how to effectively work on projects while balancing our
studies during internship classes. This initial orientation was essential in setting the stage for a
productive and organized learning experience.
A substantial part of Week 1 was dedicated to immersing ourselves in the fundamental aspects of
Python. We delved into the practical and real-world applications of Python across a wide range of
domains, including web development and data science. This served as a motivational backdrop,
showcasing the potential and versatility of Python in solving complex problems.
Furthermore, we were introduced to the critical step of setting up our coding environment. The
installation of essential tools such as Visual Studio Code, Anaconda, and Notepad was not only
about configuring our development environment but also about preparing us for hands-on coding
exercises. These tools became our daily companions as we began our practical coding journey,
reinforcing our understanding of Python's basics. The first week thus laid the crucial groundwork
for our Python programming voyage.
The second week saw us progressing from Python's fundamentals to its core programming
constructs. Control flow statements took center stage as we explored the intricacies of "if," "else,"
"elif," "while" loops, and "for" loops. These constructs enabled us to craft dynamic and decision-
driven code structures, granting us the ability to handle diverse situations programmatically. This
transition from theory to practice was vital in solidifying our understanding of Python's control
structures.
The latter part of Week 2 marked our initiation into the world of Object-Oriented Programming
(OOP). This phase was intellectually stimulating as we delved into the fascinating concepts of
classes, objects, inheritance, constructors, and polymorphism. OOP principles provided an
organized framework for code organization, facilitating code reusability and the modeling of
The third week marked a significant shift toward advanced Python topics, beginning with the
crucial aspect of error handling. Our exploration of "try" and "except" blocks empowered us with
the ability to handle unforeseen errors gracefully, ensuring the robustness and reliability of our
programs. Error handling emerged as a critical skill in the world of software development.
Simultaneously, we delved into the realm of advanced libraries, including NumPy and Pandas.
These libraries formed the backbone of data manipulation and analysis in Python. We honed our
skills in working with data structures efficiently and conducting operations on datasets effectively.
Our data visualization prowess was also enhanced through the use of Matplotlib and Seaborn,
enabling us to communicate complex data insights with clarity and precision.
The crowning achievement of this week was the seminar presentations, where we had the
opportunity to share our knowledge and showcase the projects developed during the second week.
These presentations fostered a culture of knowledge sharing and collaboration among interns,
refining our presentation and communication skills and creating a sense of camaraderie among the
participants.
The fourth and final week of our internship was a culmination of our intensive learning journey.
We embarked on a deep dive into advanced Python topics, commencing with Scipy, a library that
equips programmers with the tools to perform complex mathematical operations efficiently. Scipy
expanded our capabilities in tackling mathematical challenges, reinforcing the practicality of
Python in solving intricate problems.
Another highlight of this week was our exploration of OpenCV, a library dedicated to image
processing and computer vision. This was a fascinating journey that revealed the potential of
Python in healthcare and image analysis. We learned to count White Blood Cells in images, traced
program logic for Face Detection, and explored Tumor Cells Detection, demonstrating the
powerful real-world applications of Python in image processing.
Simultaneously, Week 4 marked the initiation of our final projects. We formed project teams,
brainstormed creative ideas, and commenced project planning. Each team was assigned a specific
project topic, carefully curated to challenge our expertise and ignite our creativity. This phase was
characterized by collaboration, critical thinking, and project management skills as we defined
clear project objectives, dissected tasks, allocated responsibilities, and set ambitious project
timelines.
The week reached its pinnacle with project submissions and presentations. We celebrated our
transformation from interns to proficient sharing our experiences. These projects were a testament
to our growth, reflecting the practical application of our newfound skills and knowledge.
Summary:
This typically includes features like adding, retrieving, updating, and deleting student records. Below is a
description of student database management, including its components, error handling, and different
interfaces:
Description:
1. Data Storage:
Student information, including names, roll numbers, and other relevant data, is stored in a data structure
or a database. In this case, the code you provided uses dictionaries to store student and teacher records.
2. User Roles:
Users of the system can have different roles, such as students, teachers, or administrators (the "head").
Each role may have specific permissions and actions they can perform within the system.
3.Error Handling:
Error handling is crucial to ensure the robustness of the system. In your code, error handling could be
implemented for scenarios like incorrect input, authentication failures, or database record retrieval errors.
Using try-except blocks is a common way to handle exceptions and provide informative error messages.
The code you provided includes several interfaces for different user roles:
Head Interface:
-The "head" user has administrative privileges.
Teacher Interface:
-The teacher interface could allow teachers to view and potentially update student information
related to their classes.
- It might include features like grading, attendance, and communication with students.
Student Interface:
- The student interface allows students to search for and view their own information based on their
roll number.
5. Interaction of Interfaces:
Interaction between interfaces in a student database management system might look like this:
A "head" user logs in and has the authority to add new students and teachers or list existing ones.
A "teacher" user might log in to view student information, update grades, or take attendance.
A "student" user logs in to retrieve their own information, such as their name and roll number.
In summary, college database management in Python involves creating a structured system for storing
and managing student and related data. It includes user interfaces tailored to different roles, error handling
to ensure reliability, and interaction between these interfaces to facilitate tasks like data entry, retrieval,
and updates. This type of system can be expanded and customized to meet the specific needs of
educational institutions or organizations.
Summary:
The provided Python program is designed to calculate and display the discounted price of a meal based on
the user's membership status. The program first prompts the user to enter the cost of the meal. If the cost
is greater than $200, the program asks for the user's ID number and validates it against predefined ID lists
for different membership levels (silver, gold, platinum). Depending on the membership level and the
validity of the entered ID, the program calculates and displays the discounted price along with the
corresponding discount percentage. If the cost is not greater than $200, the program informs the user that
no discount is applicable and suggests contacting the service for membership.
Description:
The Python program is a simple command-line application that offers discounts on meal costs based on
the user's membership level. It can be divided into several key components:
1. User Input:
The program begins by prompting the user to enter the cost of the meal. The cost is read as a
floating-point number using the `float (input("Enter the cost of the meal: "))` statement.
2. Discount Calculation:
The program defines a function `discounts(cost)` to calculate and display the discounted price.
The user's input cost is passed as an argument to this function.
3. Membership ID Lists:
Three lists (`sid`, `gid`, and `pid`) are provided to store valid ID numbers for different
membership levels: silver, gold, and platinum.
If the cost of the meal is greater than $200, the program proceeds to ask the user for their ID
number. It extracts the membership level (S for silver, G for gold, P for platinum) from the ID and
validates it against the corresponding membership list. If the ID is valid, the program calculates
the discounted price and displays it along with the applicable discount percentage. If the ID is not
valid, an error message is shown.
5. No Discount Scenario:
If the cost of the meal is not greater than $200, the program informs the user that no discount is
applicable and suggests contacting the service for membership.
6. Program Execution:
Finally, the `discounts(cost)` function is called with the user-provided meal cost to execute the
discount calculation and display the results.
This program provides a simple way to apply discounts to meal costs based on user membership and
serves as a tool for managing discounts in a restaurant or similar setting. The program's logic is structured
to handle different membership levels, but it can be further extended or customized as needed.
Summary:
The Python program is designed to perform various data analysis tasks on a dataset containing
information about movies. It utilizes the pandas library to load, manipulate, and analyse the data and the
matplotlib library to create visualizations. The program's main objectives are as follows:
Description:
The provided Python program is a part of a broader project that focuses on analysing and visualizing
movie data. This program serves as a crucial component for data preprocessing, exploration, and
visualization. Below is a more detailed description of each section of the program:
1. Loading Data:
The program begins by importing the necessary libraries, pandas and matplotlib. It then loads the
movie dataset from a CSV file located at "D:\CT_internship_PK\Assignments\Day 15\movie.csv"
into a Pandas DataFrame named "df." This step ensures that the data is readily available for
analysis.
2. Data Exploration:
After loading the data, the program prints the first few rows of the Data Frame using `df.head()`.
This allows users to quickly inspect the dataset's structure, column names, and the initial data
records.
The program calculates the average rating of all movies in the dataset using the `mean()` function
on the "Rating" column of the Data Frame. The result is printed with two decimal places to
provide a concise summary of the dataset's overall rating distribution.
5. Grouping by Genre:
The program groups the original Data Frame "df" by the "Genre" column and calculates the
average rating for each genre. The results are stored in a Pandas Series called
"genre_avg_ratings." This step helps in understanding how different genres are rated on average.
6. Data Export:
The program exports the filtered data of recent movies (those released in or after 2010) to a new
CSV file named "recent_movies.csv" without including the index column. This allows users to
further analyse or visualize the recent movie data separately.
7. Visualization:
The program creates a bar chart using matplotlib to visualize the average ratings by genre. It sets
labels for the chart title, x-axis, and y-axis to make the visualization informative. This chart can
provide insights into which genres tend to have higher or lower average ratings.
This Python program plays a vital role in the movie data analysis project by loading, exploring, filtering,
and visualizing movie data. It enables users to understand the dataset's characteristics and uncover trends
in movie ratings by genre, particularly focusing on recent releases since 2010.
Program Summary:
The provided program is a Python script designed to analyse and visualize COVID-19 data. It loads
COVID-19 data from a CSV file, processes it to calculate cumulative cases and deaths by date, and then
generates a line plot to visualize the cumulative data over time. The program makes use of popular data
analysis and visualization libraries, including NumPy, Pandas, and Matplotlib.
Program Description:
1. Importing Libraries:
The program prints basic information about the loaded dataset using the `data.info ()`
function. This includes details such as the number of rows, columns, data types, and
memory usage.
The script calculates the total cases and deaths by date by grouping the data based on the
"Date" column and summing the "Cases" and "Deaths" columns, respectively.
A new Data Frame called `cumulative_data` is created to store the calculated cumulative
data. It contains two columns: "Total Cases" and "Total Deaths."
The index of the `cumulative_data` Data Frame is reset to make the "Date" column a regular
column. This step is performed using `cumulative_data.reset_index()`.
The script uses Matplotlib to create a line plot to visualize the cumulative COVID-19 cases
and deaths over time. It sets the figure size, plots two lines for total cases and total deaths,
labels the axes and title, adds a legend, and enables a grid for better visualization.
To improve readability, the x-axis labels (dates) are rotated by 45 degrees using
`plt.xticks(rotation=45) `.
This program is a valuable tool for exploring and visualizing COVID-19 data, helping users gain insights
into how the pandemic has evolved over time. It can be incorporated into a larger project or report to
provide data-driven insights into the progression of the pandemic.
Introduction:
Business analysis is a combination of gaining insight from data using specific
techniques, and performing tasks to identify the needs of a business—then, recommending
changes and providing solutions that produce value for the stakeholders.
Application workflow:
Certainly! Here is a general workflow for business analysis project applications:
7. Follow Up:
After the interview, send a thank-you note or email to express your appreciation for
the opportunity. This gesture can help reinforce your interest in the project and leave a
positive impression.
8. Stay Persistent:
If you do not receive an immediate response, don't get discouraged. Follow up with
the company or organization after a reasonable amount of time to inquire about the
status of your application.
8.Continuous Improvement:
Implement a feedback loop to continuously gather user feedback and improve the
system's error handling capabilities. Regularly review and update the error handling
strategies based on the evolving needs of the users and the project.
Remember, effective error handling and user feedback are iterative processes that
require ongoing attention and improvement. By proactively addressing errors and
incorporating user feedback, you can enhance the overall quality and usability of the
business analysis project.
Project summary:
A business analysis project involves analyzing and understanding the requirements,
goals, and challenges of a business to propose effective solutions. Here is a summary
of the key components and steps involved in a business analysis project:
1. Project Initiation:
This phase involves defining the project scope, objectives, and stakeholders. It
includes conducting a feasibility study to determine if the project is viable and aligns
with the organization's goals.
2. Requirements Gathering:
In this phase, the business analyst works closely with stakeholders to gather and
document their needs, expectations, and requirements. This includes conducting
interviews, workshops, and surveys to elicit the necessary information.
4. Solution Design:
Based on the requirements, the business analyst collaborates with the development
team to design the solution. This may involve creating system architectures,
workflows, wireframes, or prototypes to visualize and validate the proposed solution.
5. Stakeholder Communication:
Throughout the project, the business analyst maintains effective communication with
stakeholders to ensure their expectations are managed, and any changes or updates
are properly communicated and documented.
6.Snapshots:
Snapshot 1
Snapshot 2
Snapshot 3