Database Systems Csl3050
Database Systems Csl3050
Database Systems Csl3050
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.
Password encryption
MongoDB was used as a flexible NoSQL database for scalable storage and session data management.
Switched backend from MERN stack to Java with Jersey for efficient API request handling.
Stored procedures created to handle user votes and likes with data integrity checks.
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.
• 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