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
- 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
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
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
- Install PostgresSQL: See the PostgresSQL download page for instructions on installing it with your OS.
- Install the dependencies: run
npm install
- Set Env Variables: Before running the app don't forget to add a .env file following the sample file
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
To start the server run
npm start
To start the server for development purposes you can use
npm run dev