The Ultimate React Native Project | Apartments.com Clone
Tags: reactnative, javascript, tutorial, beginners
Published: 2023-05-07 07:33:53

[![Check this video out](https://user-images.githubusercontent.com/34422870/236663721-883e273d-29a6-4f79-aed9-f8f3c292e19c.png)](https://www.youtube.com/watch?v=Sr0GjzA9iPc)

**Part 1:** https://www.youtube.com/watch?v=Sr0GjzA9iPc
**Part 2:** https://www.youtube.com/watch?v=E_GvwJ5IOCk

## Background
Prior to creating this project I had worked on a React Native/Expo project and noticed that most, if not all, of the video tutorials online used Firebase in their implementation of things. I found this to be annoying at times, because my team wasn't using Firebase and there was no variety in tutorials for implementing things. Also, finding a genuine implementation for Expo Push Notifications on YouTube was impossible at that time. Luckily the expo documentation had everything that we needed, but at the end of that experience I thought that it would be useful to show that you don't just have to use Firebase when building out your React Native project.

## The Project
The app that I drew inspiration from was Apartments.com's mobile app. Prior to making the project, I had seen that they were able to sell their business for $500 - 600 million in the mid 2010's, yet when you look at their app it is relatively simple. Of course the value of the business probably had more to do with the number of users, revenue generated, and the data they had. But the point still remained that building out an app similar to theirs was very feasible. This video is me going through that process, and showing you how you can do the same.

## What You'll Implement
_The project uses the expo SDK 45, and the current version is 48. Implementations might differ slightly now (idk), but the fundamental concepts should still work. Check out the expo docs if you get stuck https://docs.expo.dev/_

### Client Side
- Implement Push Notifications
- Implement Maps into your project
- Login with Google
- Login with Facebook
- Login with Apple
- Login and Register with an email and password
- Implement Forgot User Password and Reset User Password Screens
- Implement star based reviews
- Use React Query for fetching data
- Implement chat/messaging screens
- Create Detailed Screens to display data
- Create Airbnb like carousel cards for displaying apartment images

### Backend / Database
- Build an API in GO
- Implement and use Postgresql
- Send notifications to users from your server
- Upload and store images to an S3 Bucket
- Implement Chat into your application using Socket.io
- Use nodejs to create a chat server
- Implement redis
- Login with Google
- Login with Facebook
- Login with Apple
- Login and Register with an email and password
- Use JWTs
- Deploy servers using Docker and Dockerhub
- Create a domain for free 
- Use NGINX and Letsencrypt to enable https connections with your server

## Github
- Client: https://github.com/JeremyPersing/apartmentsclone
- Server: https://github.com/JeremyPersing/apartmentscloneserver
- Chat Server: https://github.com/JeremyPersing/apartmentsclonechatserver

_A few of the screens you'll build_
![1](https://user-images.githubusercontent.com/34422870/236635898-118a242f-9973-4b5a-be0c-9b74c90ffb04.png)
![2](https://user-images.githubusercontent.com/34422870/236635894-cdf6b98c-f9c2-4d9e-ab6b-63d3d71ba642.png)