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.
- Live version
- UI Preview
- Features
- Technologies used
- Installation
- cloudinary setup
- Entity Relationship Diagram(ERD)
- Endpoints
- auth
- users
- apartments
- followings
- reviews
- search
- Author
- Licence
The website is hosted on heroku here => propsuite.
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.
- The application was developed with Ruby on Rails.
- Postgres for database management.
- All apartment, user avatar and coverphoto images are hosted on Cloudinary.
- Sass and pure CSS for styling.
- Stimulus Js for adding functional responsiveness(click events management).
- Webpacker for managing javascript assets.
- Github Actions for CI.
- Rubocop to ensure ruby developer best practices.
- Rspec and Capybara for UI, unit and integration tests.
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 .
- Clone the repository from a terminal
git clone https://github.com/codecell/prop-suite
. - Navigate to the project directory.
cd prop-suite
- Install project Ruby/Rails dependencies.
bundle install
- Install Javascript dependencies.
yarn install
- Run the migrations to setup the tables.
rails db:migrate
- Start the rails server.
rails server
- Visit localhost:3000 and Voila!!!.
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.
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). |
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. |
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. |
EndPoint | Functionality |
---|---|
POST /followings | Allows user to follow another user. |
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. |
EndPoint | Functionality |
---|---|
GET /searches/new | Allows a client enter search fields. |
POST /searches | Allows a client to search for apartments. |
👤 Alfred Ezaka
- Github: @codecell
- Twitter: @the_codecell
- Linkedin: ezaka alfred
Give a ⭐️ if you like this project!
- MIT