Minor Project Synopsis
Minor Project Synopsis
Minor Project
Chat Application
Submitted to
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE & ENGINEERING
By
Vineet Rajput
(BETN1CS22020)
Ansh Shrivastva
(BETN1CS22016)
2. Introduction -:
With the rapid advancement in instant messaging services, chat applications have become
integral to social networking, professional collaboration, and customer service.
Applications like WhatsApp, Slack, Microsoft Teams, and Discord have set industry
standards for real-time communication. However, many businesses require a custom-built
chat application that ensures data privacy, flexibility, and scalability without relying on
third-party services.
This project aims to develop a real-time chat application that offers secure messaging,
multimedia sharing, and group communication while maintaining a self-hosted, scalable
infrastructure. Spring Boot will serve as the backend framework, ensuring robust API
development, security, and database integration, while MySQL will be used for storing
chat history, user data, and group interactions.
1
3. Literature Survey -:
3.1 Existing Work
1. Lack of Privacy -: Many applications store chat data on external servers.
2. Scalability Issues -: High concurrent users cause performance bottlenecks.
3. Limited Customization -: Businesses cannot modify proprietary software.
4. High Costs -: Subscription-based models increase costs over time.
2
4. Existing Gaps -:
Despite advancements in chat applications, several gaps exist:
3
5. Objectives of the Proposed Work -:
The primary objective of this project is to develop a secure, real-time chat application
using Java Spring Boot and MySQL. The proposed system aims to overcome the existing
gaps in security, scalability, customization, and performance that are prevalent in current
chat applications. Below are the key objectives explained in detail:
● Implement JWT (JSON Web Token)-based authentication for secure user login
sessions.
● Integrate OAuth 2.0 to allow users to sign in using Google, Facebook, or
enterprise authentication providers.
● Implement role-based access control (RBAC) to differentiate between users,
admins, and moderators.
● Enable file sharing within chat conversations, supporting formats such as JPEG,
PNG, MP4, PDF, and DOCX.
● Implement cloud storage integration (optional) for large file storage.
● Use metadata indexing to allow quick searching and retrieval of shared files.
5. Implement One-to-One and Group Messaging Features
● Use load balancing techniques to distribute user requests across multiple servers.
● Implement microservices architecture to separate functionalities such as
authentication, messaging, and multimedia management.
● Optimize server performance using Redis caching for frequently accessed
messages.
6. Proposed Methodologies -:
The project will be developed using Java Spring Boot and MySQL, ensuring a modular
and scalable architecture. Below is a breakdown of the development approach:
6.4 Frontend
The proposed chat application using Java Spring Boot and MySQL aims to address the
existing gaps in security, scalability, and customization found in current messaging
platforms. The expected outcomes of this project are outlined below in detail:
● Users can share images, videos, and documents within chat conversations.
● Secure storage of multimedia files with proper access control.
● Efficient file compression to minimize storage space usage.
● A modular and self-hosted chat system that can be customized for various
industries.
● Admin dashboard for monitoring chat activity and managing users.
● Role-based permissions for controlling access to different features.
9. References
1. Spring Boot Documentation - https://spring.io/projects/spring-boot
2. MySQL Official Documentation - https://dev.mysql.com/doc/
3. WebSockets Guide -
https://developer.mozilla.org/en-US/docs/Web/API/WebSockets
4. OAuth 2.0 Authentication - https://oauth.net/2