Skip to content

RentalSphere is a versatile platform that addresses the complexities of property management, streamlining operations for landlords while enhancing the rental experience for tenants through innovative features and analytics-driven insights.

Notifications You must be signed in to change notification settings

rajkp10/RentalSphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RentalSphere Logo

RentalSphere is a versatile platform that addresses the complexities of property management, streamlining operations for landlords while enhancing the rental experience for tenants through innovative features and analytics-driven insights.


Build Rentalsphere

  1. In the backend directory, run ./mvnw install.
  2. After successful compilation and build, go to the root directory of the repository and run docker-compose build.
  3. After docker images are built successfully, run docker-compose up.
  4. Ctrl + c to stop the containers.
  5. Please run docker-compose down after stopping the containers.

Feature: Registration/Login

Scenario: User registers on the website

Given a person visits the website for the first time
When the person fills out the registration form with their details
Then the person should submit the registration form
And the person should be successfully registered as a user
And their role on the website should be set as user

Scenario: User logs in with valid credentials

Given a registered user wants to access the website
When the user enters their username and password
Then the user should be able to successfully log in
And should gain access to user-specific features and functionalities

Scenario: Property manager's role gets added after property approval

Given a user has registered and posted a property on the website
And the property has been approved by the admin
When the property manager logs in
Then the user's role should be updated to include the property manager role

Scenario: Tenant's role gets added after tenant request approval

Given a user has registered and applied for a property as a tenant
And the tenant application has been approved by the property manager
When the user logs in
Then the user's role should be updated to include the tenant role

Feature: Property Postings

Scenario: User fills out property posting form

Given a normal user is logged in
When the user fills out the property posting form with relevant details
Then the user should submit the property posting request
And the request should be sent to the admin for review

Scenario: Admin approves property posting request

Given the admin is logged in
And there is a pending property posting request
When the admin reviews and approves the property posting request
Then the property should be successfully posted on the website
And the user's role should be changed to property manager

Scenario: Property manager adds further properties

Given a user has the role of property manager
When the property manager wants to add a new property posting
Then the property manager should be able to add the property without admin approval
And the newly added property should be immediately visible on the website

Feature: Tenant Requests

Scenario: User applies for a property posting

Given a normal user is logged in
And the user is viewing a property posting they are interested in
When the user fills out the tenant application form for that property
Then the user should submit the tenant application request
And the request should be sent to the respective property manager for review

Scenario: Property manager reviews tenant application

Given the property manager is logged in
And there is a pending tenant application request for their property
When the property manager reviews the tenant application
Then the property manager should have the option to approve or decline the request

Scenario: Property manager approves tenant application

Given the property manager approves a tenant application request
Then the user who applied should be granted tenant access to the property
And the user's role on the website should be updated to include both user and tenant roles

Scenario: User views property as a tenant

Given a user has been granted tenant access to a property
When the user views the property listing
Then the user should see the tenant view of the property details
And the user should have access to tenant-specific features and information

Feature: Admin Page

Scenario: Admin views property requests

Given the admin is logged in with admin credentials
When the admin accesses the admin page
Then the admin should be able to view a list of property requests
And each request should display relevant details for review

Scenario: Admin reviews property request

Given the admin is viewing a property request on the admin page
When the admin reviews the details of the property request
Then the admin should have the option to accept or decline the request

Scenario: Admin accepts property request

Given the admin decides to accept a property request
Then the property associated with the request should be approved and posted on the website

Scenario: Admin declines property request

Given the admin decides to decline a property request
Then the property associated with the request should not be approved or posted on the website

Feature: Lease Management

Scenario: Property manager adds a new lease

Given a property manager is logged in
When the property manager adds a new lease for their property with start date, end date, rent, etc.
Then the new lease should be successfully added to the property

Scenario: Property manager updates an existing lease

Given a property manager is logged in
And there exists an existing lease for their property
When the property manager updates the lease with new details such as start date, end date, or rent
Then the lease should be successfully updated with the new information

Scenario: Property manager removes a lease

Given a property manager is logged in
And there exists an existing lease for their property
When the property manager removes the lease
Then the lease should be successfully removed from the property

Scenario: Tenant views property lease

Given a tenant is connected to a property
When the tenant views the property details
Then the tenant should be able to view the lease details for that property

Feature: Announcements

Scenario: Property manager adds a new announcement

Given a property manager is logged in
When the property manager adds a new announcement with a title and description
Then the new announcement should be successfully added for all tenants connected to their properties

Scenario: Property manager updates an existing announcement

Given a property manager is logged in
And there exists an existing announcement
When the property manager updates the announcement with new title and/or description
Then the announcement should be successfully updated for all tenants connected to their properties

Scenario: Property manager deletes an announcement

Given a property manager is logged in
And there exists an existing announcement
When the property manager deletes the announcement
Then the announcement should be successfully removed for all tenants connected to their properties

Scenario: Tenant views property announcements

Given a tenant is connected to a property
When the tenant views the property details
Then the tenant should be able to view the announcements posted by the property manager for that property

Feature: Marketplace

Scenario: Tenant posts an item for sale

Given a tenant with the role of tenant is logged in
When the tenant posts an item for sale in the marketplace with relevant details
Then the item should be successfully posted for other tenants to view

Scenario: Tenant views items for sale in the marketplace

Given a tenant with the role of tenant is logged in
When the tenant accesses the marketplace
Then the tenant should be able to view all items posted for sale by other tenants

Scenario: Tenant expresses interest in buying an item

Given a tenant with the role of tenant is logged in
And the tenant views an item they are interested in buying
When the tenant clicks on the item for more details
Then the tenant should be redirected to their mail application with the receiver set as the posting tenant's email address for further communication

Feature: Violation Log System

Scenario: Property manager logs a violation

Given a property manager is logged in
When the property manager logs a violation on their property with a description, intensity, and any associated monetary cost
Then the violation should be successfully added to the violation log for the property

Scenario: Tenant views violation log

Given a tenant is connected to a property
When the tenant views the property details
Then the tenant should be able to view the violation log for that property, including descriptions, intensity, and any associated monetary costs
<h3>Feature: Dashboard Analytics (Property Manager)</h3>

Feature: Dashboard Analytics (Property Manager)

Scenario: Property manager views dashboard analytics

Given a property manager is logged in
When the property manager accesses their dashboard
Then the property manager should be able to see an overview of all related features, such as lease management, announcements, violation log, etc.
And clicking on each feature should allow the property manager to navigate to that specific feature for further details and actions

Feature: Dashboard Analytics (Tenant)

Scenario: Tenant views dashboard analytics

Given a tenant is logged in
When the tenant accesses their dashboard
Then the tenant should be able to see an overview of all related features, such as property details, marketplace, violation log, etc.
And clicking on each feature should allow the tenant to navigate to that specific feature for further details and actions

Dependency

Dependency Version Usage Link
SpringBoot 3.1.4 Java Framework for REST APIs Link
Spring Security 3.1.4 Authentication and access-control framework Link
Lombok 1.18.30 Autogenerate getter setters in POJO classes. Link
MySQL Connector 8.1.0 Connects application to the MySQL Link
JSON WebToken 0.11.2 Generates JWTs in the application for authorization. Link
Cloudinary 1.34.0 Cloud storage and image/video manipulation service. Link
JUnit5 5.9.2 Unit testing of the modules. Link
Thymeleaf 3.1.4 Templating engine for HTML emails. Link
JSON WebToken (jjwt-jackson) 2.15.3 Generates JWTs in the application for authorization. Link

Code Coverage

Static Badge Static Badge Static Badge Static Badge


Our Contributors

Yash Walia
LinkedIn
GitHub

Raj Patel
LinkedIn
GitHub

Kaushal Sapara
LinkedIn
GitHub

Harsh Maisuri
LinkedIn
GitHub

Yukta Gurnani
LinkedIn
GitHub


About

RentalSphere is a versatile platform that addresses the complexities of property management, streamlining operations for landlords while enhancing the rental experience for tenants through innovative features and analytics-driven insights.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages