Skip to content

Habib23me/zillow-clone

Repository files navigation

Zillow-Clone

A clone of Zillow backend made with typescript, GraphQL and ❤️

What is Zillow?

Zillow is an online real estate and rental marketplace. It’s primary customers are people who want to buy and sell houses or rent houses and real estate agents. Based on the PRD located at here and a live app can be found at here

Docs

Codebase

Technologies

  • Backend Typescript: Language
  • GraphQL: API, powered by the entire Apollo toolchain
  • PostgresDB: Data storage
  • knex.js: Knex.js is a "batteries included" SQL query builder for DBs
  • Cloudinary: Image Storage
  • NODEMAILER: A simple smtp email sender
  • Objection.js: An SQL-friendly ORM for Node.js

Folder structure

zillow-clone/
└── src
    ├── database        # Knex configuration and migration files
    ├── directives      # GraphQL directives
    ├── models
    ├── modules
    |   ├── agent       # Real-Estate seller agent module
    |   ├── contact     # Contact form module
    |   ├── form        # Basic form interface module
    |   ├── house       # House module
    |   ├── rent        # Rent form module
    |   ├── search      # Search house and agent module
    |   ├── tour        # Tour form module
    |   ├── upload      # Upload scalar type module
    |   └── user        # User authentication and profile module
    ├── scalars         # GraphQL scalars
    ├── utils           # Different utility functions
    ├── app.ts
    └── index.ts

First time setup

The first step to running Zillow-clone locally is downloading the code by cloning the repository:

git clone https://github.com/fitsumayalew/zillow-clone.git

Installation

  1. Install PostgresSQL: See the PostgresSQL download page for instructions on installing it with your OS.
  2. Install the dependencies: run npm install
  3. Set Env Variables: Before running the app don't forget to add a .env file following the sample file

Migrating the database

When you first download the code and want to run it locally you have to migrate the database.

npm run migrate:latest

You can also drop the database faster using

npm run migrate:rollback

Running the app locally

To start the server run

npm start

Running the app locally for development

To start the server for development purposes you can use

npm run dev

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published