Placement Dost

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

CHN:499 Training Seminar

Internship Report

A report submitted
in partial fulfillment of the requirements
for the degree of
BACHELOR OF TECHNOLOGY

By
Aryan Mandya
21112034

Department of Chemical Engineering

INDIAN INSTITUTE OF TECHNOLOGY ROORKEE

Roorkee 247667, INDIA

November 2023
Abstract

This report provides a comprehensive overview of my 8-week internship experience as a

Web Development Intern at PlacementDost, a prominent platform dedicated to enhancing

employability through innovative digital solutions. The internship, spanning from 16th May

2024 to 12th July 2024, offered a unique opportunity to engage in real-world web

development projects, including the enhancement of the PlacementDost platform and the

development of new features aimed at improving user experience and engagement. Key

responsibilities included front-end development, back-end integration, debugging, and

performance optimization. The experience significantly enhanced my technical skills in

HTML, CSS, JavaScript, and other web technologies, deepened my understanding of full

-stack development, and provided valuable insights into the practical challenges of working

in a dynamic, agile environment. The report also highlights the impact of the internship on

my professional growth and emphasizes the importance of collaboration, effective

communication, and problem-solving in the successful execution of development projects.

---
.
Acknowledgement

I am writing to express my profound gratitude and appreciation to PlacementDost for the

opportunity to complete my internship as a Web Development Intern from 16th May 2024 to

12th July 2024. This internship has been an incredibly rewarding experience that has

significantly contributed to my personal and professional growth.

Over the past 8 weeks, I had the privilege of working closely with the talented and dedicated

Web Development Team at PlacementDost. The exposure to real-world projects and challenges

in web development has provided me with invaluable hands-on experience, deepening my

understanding of front-end and back-end technologies, as well as full-stack development. I am

particularly thankful for the opportunity to contribute to the enhancement of the PlacementDost

platform, which not only honed my technical skills but also taught me the importance of

teamwork, effective communication, and problem-solving in a fast-paced, agile environment.

Finally, I would like to thank the Placement and Internship Cell, IIT Roorkee, for facilitating

this opportunity. Their support enabled me to apply, get shortlisted, and successfully complete

this enriching internship.


Company: PlacementDost

PlacementDost is a forward-thinking platform committed to enhancing employability and


bridging the gap between education and the job market through innovative digital solutions.
Founded with a vision to democratize access to high-quality placement preparation resources,
PlacementDost specializes in developing comprehensive tools and platforms that empower
students and job seekers to navigate the competitive landscape of campus placements and job
interviews.

At the core of our mission is the belief that every individual deserves the opportunity to succeed
in their career aspirations. Our flagship products and services are designed to support users in
building essential skills, gaining confidence, and excelling in their professional journeys. By
leveraging cutting-edge technologies such as data analytics, personalized learning, and real-time
feedback, we strive to create experiences that are not only effective and accessible but also
deeply impactful.

With a strong commitment to user-centric development and continuous innovation,


PlacementDost is dedicated to pushing the boundaries of what is possible in the field of career
preparation. Our team of passionate professionals works tirelessly to deliver solutions that
resonate with our users, helping them achieve their career goals.

Since our inception, PlacementDost has grown to become a trusted name in the industry,
recognized for our focus on user satisfaction, innovation, and excellence. As we look to the
future, we remain committed to our mission of empowering careers and are excited to continue
leading the way in the digital education and placement preparation space.
Internship Position

The Web Development Internship at PlacementDost offers a unique and immersive experience
for aspiring developers who are passionate about building dynamic and user-friendly digital
platforms. As a Web Development Intern, I was an integral part of our development team,
working closely with experienced developers, product managers, and designers to bring
innovative solutions to life.

During this internship, I had the opportunity to contribute to real-world projects that directly
impact the platform’s users. My role involved a wide range of responsibilities, including:

● Front-End Development: Developed and maintained the user interface of the PlacementDost
platform. I worked on creating responsive, visually appealing chat app using HTML, CSS, and
JavaScript, ensuring a seamless user experience across devices.

● Back-End Integration: Collaborated on the integration of front-end designs with back-end


systems. I worked with APIs, databases, and server-side technologies to ensure that the
platform's features function smoothly and efficiently.

● Code Optimization: Participated in optimizing the website’s performance by refining code,


minimizing load times, and improving overall efficiency. I was involved in debugging and
troubleshooting issues to enhance the platform’s reliability.

● Feature Development: Contributed to the development of new features on the


PlacementDost platform. This included designing and implementing interactive components
that enhance user engagement and functionality.

● Version Control: Used Git for version control, collaborating with the team to manage and
track code changes. This allowed for smooth coordination and ensured that the development
process was organized and efficient.

● Collaboration: Worked closely with cross-functional teams, including designers, product


managers, and other developers, to ensure that the web development solutions were technically
feasible and aligned with the project’s objectives.

● User Feedback Integration: Participated in the process of gathering and analyzing user
feedback to iterate on the platform’s features. I helped implement changes based on user needs
and feedback, ensuring that the platform continuously improves and meets user expectations.

Technologies Used

 Frontend: The frontend of the application was developed using HTML, CSS, and
JavaScript. React.js was used as the primary JavaScript framework due to its
efficiency in building dynamic user interfaces. The design was made responsive to
ensure that the application is accessible across various devices, including desktops,
tablets, and smartphones.

 Backend: The backend was developed using Node.js, which provided a robust
platform for handling server-side operations. Express.js was used as the web
application framework, simplifying the process of building APIs and managing
routes.

 Database: MongoDB was chosen as the database for its flexibility and scalability.
The database was used to store user information, chat histories, and other related
data.

 Real-time Communication: WebSocket technology was employed to implement


real-time communication, ensuring that messages are delivered instantly to users.

 Authentication: For user authentication, JWT (JSON Web Tokens) was used. This
ensured secure and reliable user authentication, preventing unauthorized access to
the application.

 File Storage: AWS S3 was used for file storage, allowing users to upload and share
files within the chat application securely.

Project Phases

 Phase 1: Planning and Requirement Analysis

 The first phase of the project involved understanding the scope and requirements of
the chat application. I collaborated with my mentor to define the features and
functionalities that the application would include. We conducted a thorough analysis of
existing chat applications to identify key features and best practices. This phase also
involved creating a project plan, outlining the timeline, and setting milestones for each
development stage.

 Phase 2: Designing the Application

 The design phase focused on creating a user-friendly and intuitive interface. I started
by sketching wireframes and designing the layout using Figma. The goal was to create a
clean and responsive design that would work seamlessly across different devices. The
design process also involved choosing the right color schemes, typography, and icons
to ensure a cohesive and visually appealing user experience.

 Phase 3: Development

 The development phase focused on integrating the various features of the chat
application using the Stream Chat API, a powerful tool that simplifies the
implementation of chat functionalities. Stream Chat provided pre-built libraries and
components that allowed for a more efficient and streamlined development process.
Here’s how each feature was integrated using Stream Chat

User Authentication and Registration:

 Stream Chat Authentication: User authentication was managed through Stream


Chat's built-in authentication system. The SDK supports secure authentication
methods, allowing users to register and log in seamlessly. Stream Chat handles token
generation and validation, ensuring that user sessions are secure. The integration with
existing user management systems was straightforward, allowing me to focus on
customizing the user experience rather than building authentication from scratch.
This above picture is the registration page. After register an account we can use
this application. We can make different-different accounts using different phone
numbers.
 Real-time Chat Functionality:

 Stream Chat SDK: The real-time chat feature was implemented using the
Stream Chat SDK, which provides robust real-time messaging capabilities.
The SDK handles the establishment of WebSocket connections, allowing
messages to be sent and received instantly. With minimal configuration,
the SDK ensured that the application could scale and handle multiple
concurrent users, providing a smooth and responsive chat experience .

Key Aspects of Real-Time Chat Functionality:


1. Instant Message Delivery: Messages are transmitted instantly
between users, with no noticeable delay.

2. Live Updates: Chat interfaces update in real-time, reflecting new


messages, edits, or deletions immediately.
 Emoji Support:

 Stream Chat Message Formatting:

Emoji support was integrated using the message formatting capabilities of


the Stream Chat SDK. Users could easily insert emojis into their messages
using Stream's built-in emoji picker, which is fully compatible with modern
messaging standards. The SDK ensures that emojis are displayed
consistently across different platforms and devices, enhancing the user
experience.

Group Chat Support:

 Stream Chat Channel Management: Group chat functionality was


implemented using Stream Chat’s channel management system. The SDK
allows for the creation and management of multiple channels, each
representing a group chat. Users could create new group chats, invite
members, and manage permissions directly through the SDK’s interface.
The channels were easily organized and displayed within the application,
providing a clear and user-friendly way to navigate between group
conversations.

Individual Chat Support:

 Direct Messaging with Stream Chat: Individual chat, or direct messaging,


was also handled via Stream Chat’s channel system. The SDK allows for
the creation of direct message channels, where two users can engage in
private conversations. Stream Chat’s backend efficiently manages these
channels, storing conversation history and ensuring that messages are
delivered securely and promptly.
This above image shows that we can create channels for group chat and
we can also make individual chat and it contains one-to-one chat
functionality.

 File Sharing:

 Stream Chat File Uploads: File sharing was enabled using Stream
Chat’s file upload functionality. Users could upload files directly within the
chat interface, and these files were stored and managed by Stream’s
backend. The SDK automatically handles file uploads, generates URLs for
shared files, and ensures that files are accessible to all participants in the
chat. This feature was particularly useful for sharing documents, images,
and other media within both group and individual chats.
This above picture shows that this chat app contains file sharing option
in right end of chat bar after clicking that icon we will be able to shar
the file.

 Thread Feature:

 Threaded Conversations with Stream Chat:

The threaded conversation feature was implemented using Stream Chat’s


threading capabilities. The SDK allows users to reply to specific messages,
creating a separate thread within the main conversation. These threads were
displayed in an organized manner, making it easy for users to follow and
participate in discussions without cluttering the main chat. The real-time
updates ensured that replies were visible to all participants immediately.
 Pin Message, Delete Message, and Edit Message:

 Message Management via Stream Chat:

 Pinning Messages: Stream Chat provides built-in


functionality for pinning messages, allowing users to highlight
important messages within a chat. The pinned messages were
displayed prominently, ensuring that they remained easily
accessible to users.

 Deleting Messages: The SDK also supports message


deletion, enabling users to remove their messages from the
chat. This action is managed through Stream’s API, which
updates the chat history in real-time, reflecting the deletion
across all connected clients.

 Editing Messages: Message editing was straightforward


using Stream Chat’s API, which allows users to edit previously
sent messages. The edited messages were updated instantly
across the chat interface, with an “edited” label for
transparency.

The above picture shows that by clicking on any message you will get
four options reply, pin, edit message, delete and from here you can also
reply for particular message.

 Phase 4: Testing

 Testing was a critical part of the development process. I performed unit


testing to ensure that individual components of the application worked as
expected. Integration testing was conducted to verify that all components
interacted seamlessly. I also performed user acceptance testing (UAT) by
inviting a small group of users to test the application and provide feedback.
Bugs and issues identified during testing were promptly addressed and
resolved.
Challenge Faced

 Technical Challenges: One of the primary challenges was


implementing real-time communication using WebSocket.
Ensuring that messages were delivered instantly and reliably
across multiple devices required careful optimization and
testing. Another challenge was managing file uploads and
ensuring that large files were handled efficiently without
affecting application performance.

 Time Management: Completing the project within the 8-


week timeframe was challenging, especially when dealing
with unexpected technical issues. I had to prioritize tasks
effectively and manage my time to ensure that all features
were implemented and tested thoroughly.

 Security: Ensuring the security of user data, especially


during authentication and file sharing, was a significant
concern. Implementing secure authentication and encrypting
data transfers were critical to protecting user privacy and
preventing unauthorized access.
Learning Outcomes

 Technical Skills: This internship allowed me to deepen my


understanding of web development technologies, particularly in
areas such as real-time communication, user authentication, and
database management. I gained hands-on experience with
React.js, Node.js, and MongoDB, and learned how to integrate
various technologies to build a cohesive application.

 Problem-Solving: The challenges faced during the project


enhanced my problem-solving skills. I learned how to approach
complex issues systematically, break them down into manageable
tasks, and implement effective solutions.

 Project Management: Managing the project from start to finish


provided valuable experience in project management. I learned
how to plan, execute, and monitor a project effectively, ensuring
that it met the required standards and was completed on time.

 Results

 The chat application successfully met all the objectives outlined at


the beginning of the project. The app's performance was evaluated
based on user feedback and testing metrics. Users appreciated the
intuitive interface, the responsiveness of the chat functionality,
and the convenience of features such as file sharing and message
editing. The application was stable and performed well under
various conditions, handling multiple concurrent users without
significant performance degradation. The app was also secure,
with user data being protected through robust authentication and
encryption mechanisms.
Internship Completion Certificate
Letter of Recommendation
Conclusion

In conclusion, my internship at PlacementDost as a Web Development Intern has


been an invaluable and transformative experience. Over the course of 8 weeks, I
had the opportunity to work on significant projects, most notably the development
of a feature-rich chat application. This project not only honed my technical skills
but also deepened my understanding of the complex interplay between
development, user experience, and real-time communication technologies.

Working closely with a team of skilled professionals, I was able to apply my


theoretical knowledge in a practical setting, tackling real-world challenges in web
development. From integrating real-time chat functionality and user authentication
to implementing features like emoji support, group and individual chats, file
sharing, and threaded conversations, every task was a learning experience that
contributed to my growth as a developer.

I am immensely grateful for the mentorship and guidance provided by my


colleagues at PlacementDost, which played a crucial role in my professional
development. This internship not only enhanced my technical abilities but also
taught me the importance of teamwork, effective communication, and continuous
learning. As I look forward to the next steps in my career, I carry with me the
valuable lessons and experiences from this internship, eager to apply them in
future projects and endeavors.

You might also like