hvudeshi / Leasing_Ageny_System

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

README

Leasing Agency System

Objective:

Create a leasing agency system that can handle any transaction between the property, the leasing agent, and the applicant/customer

Software Requirements:

  • Ruby version: ruby-3.0.2
  • Rails Version: 6.1.4.1
  • Database: SQLLite 1.4

Testing application:

Admin credentials:
  • Email address: admin@123.com
  • Password: 12345
VCL Image link: http://152.7.176.24:8080/

Application Status:

  • Applied - Default status when an application is created.
  • Checkin - When an agent/admin assigns the property to an applicant.
  • Rejected - When an agent/admin rejects an application.
  • Checkout - When an applicant moves out of the property.
  • Withdraw - When an applicant withdraws an application.

Features:

1. Agent View Testing:

  • Create a new Agent before login.
  • Signup button on home page can be used to create new Agent.
  • During signup, you need to select user_type as Agent from the drop down.
  • Only unique Email is allowed while sign up.
  • Email,password, name, address are mandatory fields while signup.
  • Leasing Agent can add new property, view the list of applications and properties from his home page.
  • He can only see the list of properties that he has created.
  • He can only see applications for the properties which he has created.
  • He can also create a new application, but for creating a new application he should have the applicant id to whom he is creating an application.
  • He can update the status of an application to Checkin, Rejected
  • If an applicant is Checked in, he can checkout that applicant. Then the property will no longer occupied by that applicant.
2. Applicant View Testing:
  • Create a new applicant before login.
  • Sign up is similar to agent signup, but user_type needs to be selected as Applicant.
  • Once the applicant sign up is done, login using the applicant credentials.
  • He can click on the view properties to see the list of properties which are un-occupied.
  • He can also see the property in which he is staying if he has already checked into one of the properties.
  • At the bottom of properties view there is an option to "Apply Now". He can click on that button to apply to one of the unoccupied properties.
  • While applying to a property, the applicant has to give the property id to which he needs to apply.
  • Also applicant can view the list of properties that he has applied using View Application button.
  • After he applies to a property if he wishes to withdraw the application he can do so on the applications view page.
  • If he is already checked into a property, he can checkout of the property from the applications page. The property can then be to allocated to other applicants.
3. Admin View Testing:
  • Admin signup is pre-configured. There can only be one admin and cannot create a new admin using sign up.
  • Admin can add/edit/delete users, properties.
  • He can view the list of users, applications and properties.
  • Admin will have the access to all the agent and applicant functionalities
  • He can update any information that he wants to, except changing the email address of users.
  • Admin will not have an option to delete his account.
4. Edge case scenarios:
  • When a user tries to sign up as admin, the system will throw an error.
  • Admin can update user details, but cannot update their email address.
  • Leasing agent can only view the properties that he has created. He cannot see the properties that are created by some other agents/admin.
  • Leasing agent can only see applications to the properties which are created by him.
  • If leasing agent tries to check in an applicant to a property that is already occupied then the system throws an error.
  • Leasing agent cannot withdraw the application. Only applicant can do that.
  • Leasing agent cannot reject application after checkin. He can only checkout the applicant.
  • When agent check out an applicant, the property will be available for check in.
  • After check out, reject, withdraw agent or admin cannot update the application any more.
  • New application cannot be created for Admins or Agents.
  • Applicant can't edit property details. He can only view them.
  • Applicant can withdraw the application after he applied to a property. Also he can checkout after he moves in.
  • Applicant can't withdraw the application once he moves in.
  • Applicant can't destroy the application if the applicant already moved in.

About


Languages

Language:Ruby 77.7%Language:HTML 17.3%Language:JavaScript 2.8%Language:SCSS 1.7%Language:CSS 0.5%