0% found this document useful (0 votes)
10 views16 pages

JEEVAS's_InternShip_Report1 (1)

Uploaded by

prepkell03
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)
10 views16 pages

JEEVAS's_InternShip_Report1 (1)

Uploaded by

prepkell03
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/ 16

Building a Web Application for Real Time

Chat Application: A Full-Stack


Development Internship Experience.

A SUMMER INTERNSHIP REPORT (CS3711)

Submitted by
JEEVAPRAKASH M (923821104016)

In partial fulfillment for the award

of the degree of

BACHELOR OF ENGINEERING

in

COMPUTER SCIENCE AND ENGINEERING

MANGAYARKARASI COLLEGE OF ENGINEERING,


MADURAI 625 402

ANNA UNIVERSITY::CHENNAI 600 025

NOVEMBER 2024
BONAFIDE CERTIFICATE

Certified that this Summer Internship report is a Bonafide work of

“JEEVAPRAKASH M – 923821104016” who successfully completed his

Internship Trainings at,

1. Phoenix Softech, Madurai 625001

SIGNATURE SIGNATURE

Mr.A.Anna Arasu., M.E., Mrs.S.K. KezialElizabeth ., M.E.,


Head of the Department Assistant Professor,
Assistant Professor, Department of CSE,
Department of CSE, Mangayarkarasi College of Engineering,
Mangayarkarasi College of Engineering, Paravai , Madurai 625 402
Paravai , Madurai 625 402

Submitted for the Internship Viva-Voice held on………………

Internal Examiner External Examiner


ACKNOWLEDGEMENT

We express our gratefulness to our respectable Secretary


Dr.P.Ashokkumar, M.A., M.Ed., BGL. for having offered as the golden
opportunity to do the project work in this prestigious institution.

We express our sincere thanks to our respected Managing Director


Mr.A.Shakti Pranesh, B.E.,MBA. for providing more facilities, to do this
Internship work.

A deep bouquet of thanks to respected Principal Dr.J.Karthikeyan,


M.E.,Ph.D.,MBA, MIE,MISTE,C.Eng. for provided the facilities required for
project.

We sincerely thank Mr.A.Anna Arasu, M.E., Head of the Department,


Department of Computer Science and Engineering who inspired us and gave us
time to make this project to work a grand success.

We also thank our guide Mrs.S.KezialElizabeth, M.E., Assistant


Professor, Department of Computer Science and Engineering for her valuable
guidance for our project and it is great privilege to express our gratitude to her.

We extend our heartfelt thanks and profound gratitude to all the faculty
members of our department for their kind help during our Internship.

Finally we express our sincere thanks to our parents, who have constantly
encouraged us throughout our course.
DETAILS OF INTERNSHIP

FROM
S.NO INDUSTRY ROLE MODE OF DATE TO YEAR /
NAME & INTERNSHIP SEM
END DATE
ADDRESS

18/07/2024
Phoenix Softech,
I Internship OFFLINE To IV/VII
Madurai
17/08/2024
625001
CONTENTS

CHAPTER NO TITLE PG NO

1 Introduction 6

2 Objectives 6

3 Company Profile 7

4 Responsibilities 7

5 Learning outcomes 8

6 Project Overview 9

7 Conclusion 13

5
1. Introduction
During my internship at Phoenix Softech, based in Madurai, I had the opportunity to
dive deep into the field of full-stack web development, with a focus on building a real-time chat application
using Django, Django Channels, and Web-Sockets. This internship provided me with a hands-on learning
experience in designing, developing, and deploying an interactive chat platform where users could exchange
messages in real time. I worked alongside a skilled team of developers, gaining practical experience in both
frontend and backend technologies. In this report, I will outline my responsibilities, key learnings, and
challenges I faced while developing the chat application, and how this experience contributed to my growth
as a developer.

2. Objectives
The primary objectives of my internship were focused on gaining practical experience
in developing a real-time chat application and improving my full-stack development skills. One key goal
was to build a fully functional chat system using Django and Web-Sockets to enable real-time
communication. This involved learning how to implement Django Channels for asynchronous messaging,
which was crucial for enabling smooth communication between users.

Another objective was to enhance my skills in both frontend and backend technologies.
I aimed to strengthen my knowledge of HTML, CSS, and JavaScript for building the frontend, while also
deepening my understanding of Python and Django for backend development. Additionally, I worked on
integrating these technologies to ensure the real-time chat system functioned properly.

User authentication and session management were also central to the project. I
developed a system to handle user logins, manage chat rooms, and store message history, all while ensuring
the process was secure and efficient. Finally, the internship provided an opportunity to collaborate within a
team environment, improving my communication skills and contributing to the development process from
start to finish.

6
3. Company Profile
Phoenix Softech, established in Madurai, is a leading web design and development
company known for delivering innovative IT solutions. Specializing in website design, web application
development, e-commerce solutions, custom software development, and SEO, Phoenix Softech serves a
diverse range of clients across various industries. The company is committed to providing high-quality,
scalable digital solutions that help businesses enhance their online presence and achieve growth. Key
services include end-to-end software development, responsive website design, secure e-commerce
platforms, and ethical SEO practices. Phoenix Softech’s expert team works closely with clients to understand
their unique needs, delivering tailored solutions that drive success. The company prides itself on its
commitment to quality, client satisfaction, and delivering results within budget and timelines. During my
internship at Phoenix Softech, I had the opportunity to collaborate with experienced professionals, gaining
valuable hands-on experience in a fast-paced and innovative environment.

4. Responsibilities
During my internship at Phoenix Softech, I was entrusted with a variety of
responsibilities that significantly contributed to the development of a real-time chat application. One of my key
tasks was designing and implementing the backend using Django. I set up the necessary models for managing
users and messages, and developed API endpoints to handle user authentication and data management. This
involved ensuring the backend was both secure and efficient in handling real-time interactions.

A major aspect of my role was integrating WebSocket communication with


Django Channels to enable real-time messaging. I was responsible for configuring WebSocket consumers to
manage incoming and outgoing messages, ensuring that messages were instantly broadcasted to all connected
clients. This hands-on experience with asynchronous communication allowed me to deepen my understanding
of real-time applications and enhance the scalability of the chat system.

On the frontend, I worked with HTML5, CSS, and JavaScript to design a user-
friendly interface. This included developing responsive layouts, creating interactive message boxes, buttons,
and chat windows, and ensuring the overall design was intuitive and visually appealing across different devices.
I also focused on ensuring seamless interaction between the frontend and backend

7
Additionally, I implemented user authentication features, including secure
registration, login, and session management, integrating these systems with Django’s user model to allow users
to safely access the chat application. I conducted thorough testing and debugging to identify any issues with
message delivery, WebSocket connections, and the database interactions. This process helped me improve the
overall performance, security, and user experience of the application.

Beyond development, I was involved in documenting the codebase and writing


technical documentation to ensure that the project could be easily maintained and scaled in the future. I also
participated in code reviews, where I collaborated with senior developers to ensure high-quality, maintainable
code and continuously improved my coding practices.

These responsibilities allowed me to apply my knowledge of both frontend and


backend technologies, gain hands-on experience in real-time application development, and develop a deeper
understanding of the full-stack development process. The internship significantly strengthened my problem-
solving skills, teamwork abilities, and technical expertise in building secure, scalable, and efficient applications.

5. Learning Outcomes

Throughout my internship at Phoenix Softech, I gained valuable skills and


insights into full-stack development, particularly in building a real-time chat application. One of the most
crucial aspects of my learning was working with Django Channels to implement WebSocket communication. I
learned how to establish and manage WebSocket connections, send and receive real-time messages, and
broadcast messages to multiple clients simultaneously. This hands-on experience deepened my understanding
of asynchronous communication and how it powers real-time web applications.

I also gained practical experience in implementing user authentication with


Django, allowing users to securely create accounts, log in, and access the chat application. By working with
Django’s built-in authentication views and user models, I ensured a seamless and secure user experience,
managing user sessions efficiently. On the frontend, I applied my skills in HTML5, CSS, and JavaScript to
design a user-friendly interface, implementing dynamic message displays, user input forms, and real-time
updates. I focused on creating an interactive, responsive design that worked seamlessly across both mobile and
desktop platforms, ensuring that the UX was consistent across devices.

8
One of the most rewarding challenges was integrating the frontend and
backend components. I learned how to ensure smooth communication between the two by ensuring that user
actions (such as sending a message) were correctly handled by the Django backend, with responses delivered
in real time via Web-Sockets. I also worked on broadcasting messages to multiple users, a crucial feature in
real-time chat applications. This required managing multiple WebSocket connections and ensuring messages
were broadcasted effectively to all connected clients.

Additionally, I was responsible for database design and message storage,


where I created models to store chat messages, user information, and timestamps. Using Django’s ORM, I
performed database queries and handled migrations, which helped me understand the importance of data
structure and management in real-time applications. I also focused on testing and debugging, identifying and
resolving performance issues, WebSocket connection bugs, and ensuring that the application could handle
multiple simultaneous users without significant delays or errors.

Another key aspect of my internship was the deployment of the chat


application. I gained experience using Daphne servers for ASGI, along with Nginx for reverse proxying. I also
configured Redis to handle WebSocket sessions efficiently, which allowed the application to scale and maintain
performance as more users connected.

Overall, this internship was an invaluable learning experience, providing me


with hands-on exposure to both frontend and backend development, and offering me a deep understanding of
the full-stack development process, real-time communication, and the challenges involved in building scalable
web applications.

6. Overview of the Project

The real-time chat application built with Django aims to provide users with a
dynamic and seamless platform for communication. This project uses Django’s robust backend capabilities and
integrates WebSocket-based communication for real-time data exchange.

9
Figure 1: Room Page

Figure 1, refers to the webpage or user interface where a specific chat conversation takes place. It represents a
single chat environment, such as a chat room or a direct messaging space. Users can exchange messages in
real time within this page, and the content dynamically updates as new messages are sent or received. In this
room page user can able to create a unique username and room name to make their chat with the other end
person confidentially.

Figure 2: Super User

Figure 2, Superuser is a special user account with the highest level of administrative privileges. Superusers are
primarily used for managing the application’s backend via the Django admin interface. They can access and
control all aspects of the application without restrictions, making them essential for development, debugging,
and managing production environments.
10
Figure 3: Django Administration and Authentication Page

Figure 3, is a built-in, web-based interface that provides an easy and user-friendly way to manage our
application's data. It is one of Django's most powerful features, enabling developers and administrators to
interact with the database and manage application resources without needing custom tools or direct database
access. In this we are able create and manage user accounts, including superusers and staff.
In our project we have created a name of room as testroom for testing out website working properly or not.
The Snippet to access this Django admin is given below:
The Django Admin interface is typically available at /admin/ in our web application.
After running the development server (python manage.py runserver), navigate to http://127.0.0.1:8000/admin/.
Log in using the superuser credentials created earlier with the createsuperuser command.

Figure 4: Web Socket Connection


11
Figure 4, A WebSocket is a communication protocol that provides full-duplex, persistent communication
between a client and a server over a single TCP connection. Using WebSocket we have connected event
listener for send the messages to the user. The next step for us to verify if the user received the messages yet
or not. If the user get the message we have completed our server side communication.

Figure 5: Communication between Server and Client

Figure 5, This is our project aims to achieve, Once the connection is established, both the client and the server
can send and receive messages in real time. In the Last step we have communicated the server and client
communication through WebSocket.

By using Web Socket in Django, we enable an interactive and seamless user experience, where both the
server and the client are always in sync, making it ideal for real-time applications like chat systems, live
notifications, or collaborative platforms. The asynchronous nature of WebSocket ensures that the application
can handle multiple users simultaneously with minimal delay, ensuring smooth, live communication.

12
7. Conclusion

In conclusion, my internship at Phoenix Softech has been a pivotal experience in my growth


as a full-stack developer, particularly in the development of real-time applications. Through hands-on
involvement in building a real-time chat application using Django, Web-Sockets, and frontend technologies, I
have gained valuable skills in both backend and frontend development. From mastering WebSocket
communication with Django Channels to implementing user authentication and designing interactive UIs, each
task contributed to my understanding of full-stack development. Additionally, the collaborative environment at
Phoenix Softech helped improve my communication and teamwork skills, preparing me for the dynamic
demands of the software industry. I am grateful for the mentorship and opportunities provided during my
internship, and I look forward to applying the knowledge gained to future projects while continuing to grow as
a developer.

13
CERTIFICATE

14
15

You might also like