GemHaus

A full-stack web application built for a real estate business to facilitate vacation rentals and property buying and selling. One of the challenges was designing an architecture that reduces dependency on the Hostaway property management system.

GemHaus's cover image

Employer:

Leah Walczak

Contributions:

Frontend developmentBackend developmentBraintree integration

Tools:

TypeScriptNext.jsNode.jsBraintree

Challenges

The primary challenge in developing this application was designing an architecture that reduces dependency on the Hostaway property management system.

Solutions

To address this challenge, I designed an architecture that uses Hostaway APIs only to obtain dynamic pricing and create reservations. Everything else, such as property data, is managed using the custom GemHaus CMS.

Process

Initially, I received a Figma design from the employer and started working on the app by constructing the mobile components. After completing the mobile version, I began working on the responsiveness for desktop screens. Finally, after two major design overhauls, and once both versions were ready, I thoroughly tested the application's responsiveness across various screen sizes. I chose to build the frontend using TypeScript and Next.js, as these are the technologies I am most proficient in.

After developing the user interface and experience, I started working on the backend of the application. I chose to use Express as the Node.js framework. I documented the endpoints we needed and started designing the database schemas. Once the schemas were ready, I began working on the business logic.

Once the endpoints were ready, I integrated them into the frontend application, thoroughly tested the integration, and, once the initial tests passed, I hosted the frontend application on Vercel and the backend application on Heroku.

My employer and I tested the deployed application, found some bugs, and fixed them. We repeated this cycle several times until all the bugs were ironed out.

Finally, I transferred the source code to my employer and helped host the production version of the application on Vercel and Heroku. We found some date-time-related bugs in the production app and quickly fixed them. A few days later, I heard from my client that people had started booking through the website.

Feature highlights

  • Responsiveness for mobile and desktop screens
  • Implementation of the latest security standards
  • A site full of interactivity and dynamic behavior
  • Pixel-perfect user interface and experience development
  • Optimization to load the application in under 1.2 seconds (GTmetrix)

Key functionalities

  • User authentication
  • Dynamic and robust property filters
  • Property reservation and checkout system
  • Ability to change the property view from grid to list
  • Ability to add and update property, article, and agent information

Snapshots

Gemhaus home page

Home page

Gemhaus home page

Home page

Gemhaus home page

Home page

Gemhaus home page

Home page

Gemhaus home page

Home page

Gemhaus blog page

Blog page

Gemhaus blog page

Blog page

Gemhaus article page

Article page

Gemhaus agents page

Agents page

Gemhaus agents page

Agents page

Gemhaus agent page

Agent page

Gemhaus agent page

Agent page

Gemhaus agent page

Agent page

Gemhaus properties page

Properties page

Gemhaus property page

Property page

Gemhaus property page

Property page

Gemhaus checkout page

Checkout page

Gemhaus checkout page

Checkout page

Gemhaus short term rental page

Short term rental page

Gemhaus short term rental page

Short term rental page

Gemhaus short term rental page

Short term rental page

Gemhaus long term rental page

Long term rental page

Gemhaus long term rental page

Long term rental page

Gemhaus long term rental page

Long term rental page

Gemhaus buy and sell page

Buy and sell page

Gemhaus buy and sell page

Buy and sell page

Gemhaus buy and sell page

Buy and sell page

Gemhaus company page

Company page

Gemhaus company page

Company page

Gemhaus company page

Company page

Gemhaus contact page

Contact page

Gemhaus signin page

Signin page

Gemhaus signup page

Signup page

Gemhaus modal

Modal

Gemhaus modal

Modal