Onebnb (13,26,84)
Onebnb (13,26,84)
Onebnb (13,26,84)
Specification
For
Shivam Chopra,21bcs084
13-03-2024
1
Contents
1. INTRODUCTION ....................................................................................................................... 3
1.1 DOCUMENT PURPOSE ........................................................................................................ 3
1.2 PRODUCT SCOPE ............................................................................................................... 3
1.3 INTENDED AUDIENCE AND DOCUMENT OVERVIEW ............................................................. 3
1.4 DEFINITIONS, ACRONYMS AND ABBREVIATIONS ................................................................. 3
1.5 DOCUMENT CONVENTIONS ................................................................................................ 4
1.6 REFERENCES AND ACKNOWLEDGMENTS ........................................................................... 4
2. OVERALL DESCRIPTION............................................................................................................ 5
2.1 PRODUCT OVERVIEW.......................................................................................................... 5
2.2 PRODUCT FUNCTIONALITY ................................................................................................. 5
2.3 DESIGN AND IMPLEMENTATION CONSTRAINTS ................................................................... 6
2.4 ASSUMPTIONS AND DEPENDENCIES................................................................................... 6
3.Specific Requirements .............................................................................................................. 7
3.1. External Interface Requirements ......................................................................................... 7
3.1.1 User Interfaces ............................................................................................................. 7
3.1.2 Hardware Interfaces ..................................................................................................... 7
3.1.3 Software Interfaces ....................................................................................................... 8
3.2 Functional Requirements .................................................................................................... 8
3.3 Use Case Model .................................................................................................................. 9
3.3.1 Use Case 1: User Authentication ................................................................................... 9
3.3.2 Use Case 2: Accommodation Booking ........................................................................... 9
3.3.3 Use Case 3: Accommodation Management .................................................................. 10
4. Non-Functional Requirements ................................................................................................ 11
4.1 Performance Requirements: .............................................................................................. 11
4.2 Safety and Security Requirements:..................................................................................... 11
4.3 Software Quality Attributes: ............................................................................................... 11
4.4 Conclusion ....................................................................................................................... 11
5. Other Requirements ............................................................................................................... 12
2
1. INTRODUCTION
1.1 DOCUMENT PURPOSE
The purpose of this Software Requirements Specification (SRS) document is to outline
the requirements and specifications for the web application named "Onebnb" This
document will serve as a guide for the development team to design, develop, and
implement the application according to the client's needs and expectations.
3
1.5 DOCUMENT CONVENTIONS
• Page Titles: Capitalized and bolded (e.g., HOME PAGE).
• Functionality Descriptions: Described in brief paragraphs under respective
page headings.
• User Stories: Outlined with clear roles and actions for both users and admins.
• Technical Specifications: Included where necessary to define specific
requirements.
4
2. OVERALL DESCRIPTION
2.1 PRODUCT OVERVIEW
The Booking Application is a comprehensive web-based platform developed using the
MERN (MongoDB, Express.js, React.js, Node.js) stack. It facilitates the seamless
booking of accommodations with a user-centric focus. Key features include user
authentication, accommodation management, booking and reservation, image upload,
a review and rating system, location retrieval, and user profiles. With a responsive
design and thoughtful user experience, the Booking Application aims to enhance the
user journey in the realm of online accommodation booking.
• User Authentication:
Secure user registration, login, and logout processes. JWT-based authentication
ensures secure access to user-specific features.
• Accommodation Management:
Property owners can effortlessly add, edit, and manage details of their
accommodations. Users can explore detailed information about each listed
accommodation.
• Image Upload:
Users can upload images related to their accommodations.
• Location Retrieval:
Accommodations are associated with geographical locations.
• User Profiles:
Individual user profiles display personal information and booking history.
5
2.3 DESIGN AND IMPLEMENTATION CONSTRAINTS
• Technology Stack:
The project is constrained to the MERN stack (MongoDB, Express.js, React.js, Node.js),
limiting the choice of alternative technologies.
• AWS S3 Integration:
The use of Amazon Simple Storage Service (AWS S3) for image storage imposes a
dependency on AWS infrastructure.
• Client-Side Routing:
The application relies on client-side routing with react-router-dom, which may have
limitations in certain scenarios compared to server-side routing.
• Authentication Dependency:
User authentication heavily depends on JSON Web Tokens (JWT), and any changes to
the authentication mechanism may require careful consideration to maintain security.
• Scalability Considerations:
Scalability may be a concern as the user base grows, requiring ongoing optimizations to
maintain performance.
• Browser Compatibility:
The application may have varying levels of compatibility with different web browsers,
necessitating additional testing and adjustments for optimal user experience.
• Development Environment:
The development environment relies on specific tools such as Vite, and any changes to
this environment may impact the development workflow.
6
3. SPECIFIC REQUIREMENTS
3.1. External Interface Requirements
3.1.1 User Interfaces
The user interfaces are designed to be intuitive and responsive, catering to a seamless
user experience.
Interfaces include:
• User authentication forms (login, registration).
• Accommodation listing and booking interfaces.
• User profile and dashboard views.
• Image upload and review submission forms.
Navigation:
• Navigation is facilitated through client-side routing, providing a smooth transition
between pages.
• Clear and consistent navigation elements include menus, buttons, and links.
Image Upload:
• Users can upload images related to accommodations through a user-friendly and
secure interface.
• Images are processed and stored on AWS S3, with feedback provided to users on
successful uploads.
Review and Rating System:
• The review and rating system allows users to submit feedback on booked
accommodations.
• Reviews are displayed alongside accommodation details for transparency.
User Profile and Dashboard:
• User profiles showcase personal information and booking history.
• Property owners have access to a dashboard for managing listed accommodations.
Location Retrieval:
• Geographical information associated with accommodations is presented in an
easily accessible format.
3.1.2 Hardware Interfaces
The booking application relies on standard hardware components such as computers,
laptops, tablets, and smartphones to access its web-based interface.
No specific hardware dependencies exist beyond devices with modern web browsers
for optimal performance.
7
3.1.3 Software Interfaces
MERN Stack (MongoDB, Express.js, React.js, Node.js):
The application is built on the MERN stack, utilizing MongoDB for database
management, Express.js for server-side logic, React.js for the user interface, and
Node.js for server-side execution.
Axios and JWT:
Axios is employed for HTTP requests, interfacing with the backend API. JSON Web
Tokens (JWT) facilitate secure user authentication and authorization.
AWS S3:
Amazon Simple Storage Service (AWS S3) is integrated for secure and scalable image
storage, enhancing the application's functionality.
Vite:
The development environment relies on Vite for efficient project setup, development,
and bundling of frontend assets.
8
External API Integration:
Integration with external APIs may be required for features like location retrieval or
additional services.
Scalability:
The application is designed to scale as the user base grows, ensuring optimal
performance.
Browser Compatibility:
The application functions seamlessly across various web browsers, providing a
consistent user experience.
9
System displays an error message and prompts the user to try again.
3.3.3 Use Case 3: Accommodation Management
• Actor: Property Owner (Admin)
• Description: Manage details of listed accommodations.
• Preconditions: Property owner must be authenticated.
• Main Success Scenario:
1. Property owner navigates to the accommodation management page.
2. Property owner views the list of their listed accommodations.
3. Property owner edits or adds new details to an accommodation.
4. Changes are saved, updating the accommodation information.
• Exception Scenarios:
If there is an issue saving changes:
System displays an error message and prompts the property owner to try again.
If the property owner attempts to edit an accommodation they don't own:
System notifies the property owner of insufficient privileges.
10
4. Non-Functional Requirements
4.1 Performance Requirements:
The application should provide responsive user interfaces, with quick response times
for search queries and page loading.
4.2 Safety and Security Requirements:
User data, including authentication information, should be securely stored and
transmitted using encryption protocols.
AWS S3 integration should follow best practices for secure image storage.
4.3 Software Quality Attributes:
The application should maintain high code quality, following best practices for
readability, maintainability, and scalability.
4.4 CONCLUSION
The non-functional requirements emphasize the importance of performance, security,
and software quality in delivering a reliable and user-friendly Booking Application.
Regular monitoring, testing, and adherence to best practices are essential to meet
these requirements throughout the project lifecycle.
11
5. Other Requirements
Development Tools:
Developers will use tools like Git for version control, VSCode as the primary code
editor, and project management tools for collaboration.
Documentation:
Comprehensive documentation for code, APIs, and deployment processes will be
maintained for future reference and onboarding.
Testing:
Rigorous testing, including unit tests, integration tests, and user acceptance tests, will
be conducted to ensure the application's functionality and reliability.
Deployment:
The application will be deployed on a reliable hosting service, considering factors like
scalability, uptime, and ease of maintenance.
Accessibility:
The application will adhere to accessibility standards, ensuring it is usable by
individuals with disabilities.
Backup and Recovery:
Regular backups of the database and critical application data will be performed to
facilitate quick recovery in case of data loss or system failures.
Legal Compliance:
The application will comply with relevant data protection and privacy regulations to
ensure legal and ethical usage of user data.
User Support and Training:
Adequate user support channels and documentation will be provided, and training
resources may be offered to assist users.
12