Database Systems Csl3050

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 7

DATABASE SYSTEMS CSL3050

Dr. SUCHETANA CHAKRABORTY

Real-Time Interaction Platform for Students and Professors


mentored by : Kondagurle Sukitha

Team Members
 Yashraj (B22CS075)
 Rohan Lambture (B22CS030)
 Aniket Singh (B22CS009)
Problem Statement
The project focuses on the challenges faced in larger classroom settings where two-way communication
between students and professors is often limited. This system seeks to provide a platform for real-time,
interactive learning, enabling seamless communication anonymously.

DBMS Relevance
The system supports real-time interactions like Q&A sessions and polls, handling concurrent user activities
smoothly. It tracks user interactions and session data, linking users, questions, answers, and poll results. A role-
based login system secures access, ensuring permissions align with user roles.

DBMS Schema
In this project, there are two types of users, room owners and room participants. Room participants can send
messages, vote in polls, reply to others' messages, and share images. Room owners have all the same abilities
as participants, with the additional ability to create polls.
Current Status
Progressive Web Apps (PWAs)
PWAs provide a mobile app-like experience within a web browser, allowing users to interact with websites offline,
receive push notifications, and enjoy faster load times.
Pros: Cons:
Works offline, enhancing accessibility for users without reliable internet. Limited access to native device features compared to
native apps.
Faster performance due to caching, improving user experience. Varying support across different browsers, especially on iOS
devices.
Lower development cost compared to native apps. SEO can be challenging, as content isn’t always as easily crawlable.

Serverless Architecture
Serverless architecture enables developers to build and deploy applications without managing infrastructure. It
allows applications to scale automatically and reduces costs associated with server management.
Pros: Cons:
Cost-effective, as you only pay for the actual usage of resources. Limited control over server environment and configuration.
Simplifies deployment and scaling, allowing developers to focus on code. Can lead to higher costs for long-running tasks.
High flexibility, suitable for a range of web apps and microservices. Vendor lock-in can be a challenge if relies on specific serverless
providers.
Methods Adopted
The project was initially built using the MERN stack to deliver a real-time interactive platform.

 Key components of the original project:


 Authentication using JWT

 Password encryption

 Live polling system

 MongoDB was used as a flexible NoSQL database for scalable storage and session data management.

Transition to Java with Jersey and MySQL:

 Switched backend from MERN stack to Java with Jersey for efficient API request handling.

 Replaced MongoDB with MySQL to leverage:


 Structured query language (SQL) for complex queries.

 Improved performance in certain scenarios.

 Robust database features for complex operations.


Features and Enhancements with MySQL:
 Session token generation and automatic termination after one day.

 Event scheduling for automatic deletion of rooms after a specified period.

 Direct encryption of user passwords and sensitive data in MySQL.

 Stored procedures created to handle user votes and likes with data integrity checks.

 Content moderation implemented by filtering banned words.

 Transaction management with savepoints for maintaining data integrity.

 added constraints to check for invalid inputs

 Created triggers to
o change like counts
o change vote counts
o add owner to room when created
o validate the role dependent calls such as posting , poll creation
FUTURE PLANS:
Threaded Conversations

• Enable threads within rooms so users can have focused sub-discussions without interrupting the main chat.

Voting Analysis and Analytics Page

• Provide room owners with insights into poll results.

• Show detailed voting analytics on a dedicated page.

WebSocket Integration for Real-Time Updates

• Use WebSocket to instantly update messages, votes, and likes.

• Ensure a smooth, experience for all users.

Direct Mentions and Notifications

• Allow users to tag others (e.g., @username) and send notifications for faster attention.
Conclusion
1. Implemented auto-expiring polls using MySQL's CURRENT_TIMESTAMP for automatic time tracking and
vote management
2. Created session-based authentication system with automatic token expiration and validation
3. Developed stored procedures for atomic operations like voting and message liking
4. Used prepared statements throughout for SQL injection prevention
5. Proper error handling with specific HTTP status codes improves API usability
6. Proper indexing significantly improves query performance
7. Using timestamps for data validation improves system security

Contribution
• Aniket Singh – Developed the backend functionality using java , implemented the MySQL database,
designed the databased schema
• Yashraj Anupam – Designed and implemented the frontend , along with testing the entire project
• Rohan Lambture – Implemented the backend development using javascript and MongoDB database

You might also like