Skip to content

This a property-inclined social media space where clients who want to rent an apartment can follow an agent to see available apartments for rent in an area.

Notifications You must be signed in to change notification settings

codecell/prop-suite

Repository files navigation

Linters

Prop-suite

This is a platform where clients can check for available property(apartment) postings, contact the sellers, then review the sellers after a transaction. The app's original theme both in design and functionality is built to mimic Twitter, so users also have to option to follow other users. The app is mobile-responsive.

Outline

Live version

The website is hosted on heroku here => propsuite.

UI Preview

image image
image image

Features

The app has two levels of authorization;

  • A regular client can

    • view public documents on the website(apartments, agents' reviews, followers).
    • signup for an account to be able to use the service.
    • search for an apartment by address, category, price.
  • A user has all the privileges of a regular client and can also perform the following actions:

    • Log in to use their account.
    • Add a new apartment posting with multiple photos.
    • review a seller after a transaction.
    • follow other users.
    • update their profiles including avatar and coverphoto uploads.
    • Log out of their account.
    • Delete their account.

Technologies

Installation

Follow the steps below to setup a local development environment. First ensure you have postgres installed, and a version of Ruby on Rails equal to or greater than v5.2.3 .

  1. Clone the repository from a terminal git clone https://github.com/codecell/prop-suite.
  2. Navigate to the project directory. cd prop-suite
  3. Install project Ruby/Rails dependencies. bundle install
  4. Install Javascript dependencies. yarn install
  5. Run the migrations to setup the tables. rails db:migrate
  6. Start the rails server. rails server
  7. Visit localhost:3000 and Voila!!!.

Cloudinary setup

All image uploads are hosted on Cloudinary, so ensure to register for an account(registration is free). - After registration copy your cloud-name, api-secret and api-key into config/application.yml, I left a sample in config/application_sample.yml. - Please do not expose your cloudinary credentials to the public so ensure to place the path to the config/application.yml in the .gitignore file.

Entity Relationship Diagram

image

Endpoints

Auth

EndPoint Functionality
POST /users/sign_up Allows a client to create an account.
POST /users/sign_in Signs in a user into their account(session).

Users

EndPoint Functionality
GET /users Allows a user to view who to follow.
GET /users/user_id Allows a user to view another user's page, view followers.
GET /users/user_id/edit Allows a user to view and alter profile fields for update.
PATCH /users/user_id Allows a user update their profiles.

Apartments

EndPoint Functionality
GET /apartments Allows a client to view all apartments.
GET /apartments/:apartment_id Allows a client to view a specific apartment.
POST /apartments Allows a user to create an apartment.

Following

EndPoint Functionality
POST /followings Allows user to follow another user.

Reviews

EndPoint Functionality
GET /users/user_id/reviews Allows an client to view a user's reviews.
POST /users/user_id/reviews Allows user to review another user.

Search

EndPoint Functionality
GET /searches/new Allows a client enter search fields.
POST /searches Allows a client to search for apartments.

Author

👤 Alfred Ezaka

Show your support

Give a ⭐️ if you like this project!

Licence

  • MIT

About

This a property-inclined social media space where clients who want to rent an apartment can follow an agent to see available apartments for rent in an area.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published