Onebnb (13,26,84)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Software Requirements

Specification

For

Onebnb - BOOKING APP

Prepared by Akhilesh Singh, 21bcs013

Ayushman Tripathi, 21bcs026

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.

1.2 PRODUCT SCOPE


Onebnb is a web application developed using MonngoDB, Express, React.js, Node.js
aimed to offer a seamless accommodation booking experience. Key features include
user authentication, accommodation management, booking and reservation, image
upload, review and rating system, location retrieval, and user profiles. Future
enhancements may include additional features to address evolving user requirements
and improve overall performance.

1.3 INTENDED AUDIENCE AND DOCUMENT OVERVIEW


Intended Audience:
This document is intended for various stakeholders involved in the development and
management of the Booking Application. Primary audiences include developers,
testers, project managers, system architects, and clients.
Document Overview:
The document outlines the requirements for the Booking Application, offering a detailed
overview of its functionalities, constraints, and specifications. Key sections include the
product scope, external interface requirements, functional and non-functional
requirements, use case models, and additional details about the system. The
document provides a foundation for project design, development, testing, and
maintenance phases, fostering collaboration among project participants.

1.4 DEFINITIONS, ACRONYMS AND ABBREVIATIONS


• API: Application Programming Interface—a set of rules that allows
one software application to interact with another.
• React: A JavaScript library for building user interfaces, commonly
used for creating single-page applications.
• Axios: A popular JavaScript library used for making HTTP requests. In
this context, it is configured to communicate with the backend API.
• VITE_API_BASE_URL: An environment variable specifying the base
URL for the API, used during development with Vite.
• MongoDB: MongoDB is a source-available, cross-
platform, document-oriented database program.

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.

1.6 REFERENCES AND ACKNOWLEDGMENTS


References:
• React Documentation: https://create-react-app.dev/docs/getting-started/
• Node.js Documentation: Index | Node.js v21.7.1 Documentation (nodejs.org)
• MongoDB Documentation: MongoDB Documentation
• Axios Documentation: https://axios-http.com/docs/intro
• AWS S3 Documentation: Amazon Simple Storage Service Documentation.
Acknowledgments:
We would like to express our gratitude to the open-source communities and
contributors behind the technologies and libraries used in this project. Additionally,
appreciation goes to the documentation authors and developers whose work provided
valuable insights and guidance throughout the development process.

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.

2.2 PRODUCT FUNCTIONALITY


The Booking Application offers a rich set of functionalities to provide users with a
seamless and enjoyable experience:

• 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.

• Booking and Reservation:


Intuitive search functionality for available accommodations based on various
criteria. Simple booking process with the ability to specify dates and the number of
guests.

• Image Upload:
Users can upload images related to their accommodations.

• Review and Rating System:


Users can leave reviews and ratings for booked 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.

2.4 ASSUMPTIONS AND DEPENDENCIES


Assumptions:

• Users have access to modern web browsers for optimal application


functionality.
• AWS S3 services remain available and accessible for image storage.
Dependencies:

• Successful integration with MongoDB, Express.js, React.js, and Node.js (MERN


stack).
• Proper functioning of third-party libraries and tools, including Axios for HTTP
requests and JWT for authentication.
• Ongoing availability and support for the Vite development environment.

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.

3.2 Functional Requirements


User Authentication:
Users can register, log in, and log out securely using a JWT-based authentication
system.
Accommodation Management:
Property owners can add, edit, and manage details of their accommodations.
Booking and Reservation:
Users can search for available accommodations based on various criteria and book
them for specific dates.
Image Upload:
Users can upload images related to their accommodations, which are securely stored
on AWS S3.
Review and Rating System:
Users can submit and view reviews for booked accommodations, contributing to
transparency.
Location Retrieval:
Accommodations are associated with geographical locations, providing users with
accurate location information.
User Profile and Dashboard:
Users have individual profiles displaying personal information and booking history.
Property owners have a dashboard for managing their listed accommodations.

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.

3.3 Use Case Models


3.3.1 Use Case 1: User Authentication
• Actor: User
• Description: Authenticate user credentials to access the application
functionalities.
• Preconditions: User must have registered credentials.
• Main Success Scenario:
1. User navigates to the login page.
2. User enters email and password.
3. System verifies the credentials.
4. If authentication is successful, the user is redirected to the respective
dashboard.
• Exception Scenarios:
If the entered credentials are incorrect:
System displays an error message, prompting the user to retry.
3.3.2 Use Case 2: Accommodation Booking
• Actor: User
• Description: Search for and book accommodations.
• Preconditions: User must be authenticated.
• Main Success Scenario:
1. User navigates to the accommodation search page.
2. User sets search criteria (dates, location, etc.).
3. System retrieves available accommodations based on the criteria.
4. User selects an accommodation and initiates the booking process.
• Exception Scenarios:
If no accommodations match the search criteria:
System notifies the user and suggests modifying the search parameters.
If there is an issue during the booking process:

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

You might also like