Table of Contents
This is a monolitic web application made on an Udemy course of Node.js. It has a lot of features and custom changes that i made as a hamburguer button which toggles a lateral menu for mobile devices and custom color design along with other design modifications on the views.
Said Udemy course is in Spanish, but i coded the project in English so it can be checked out more internationally.
The project has the following features:
- Sign in and sign up
- Recover your password sytem
- Verification through email system
- View, Upload, modify and delete a property
- Upload an image of a property
- Set the address of the property pointing it through a map (leaflet)
- Search of properties through text
- Search of properties by the home view map which includes filters by category and price
- Message the owner of the property
- Desktop and mobile compatibility (responsive)
- CSRF protection
- Encrypted user token through JWT
To get a local copy up and running follow these simple example steps.
- SMTP Server (to handle email confirmation and lost password systems)
- MySQL database
- Node.js
- Git (in case you want to clone the project)
- Clone the repo
git clone https://github.com/EmRodDev/goodhomes-nodejs
- Install NPM packages
npm install
- Create an
.envfile on the project's root folder with the following environment variables:DB_NAME= DB_USER= DB_PASS= DB_HOST= DB_PORT= EMAIL_HOST= EMAIL_PORT= EMAIL_USER= EMAIL_PASS= BACKEND_URL= BACKEND_PORT= JWT_SECRET=
For development, this project needs to run two commands on separate command line clients in order to use it properly:
- The first command is to start the server
npm run server
- The second command is to render all the Tailwind and Webpack styles and scripts
npm run dev
- (Optional) If you only want to see how the project behaves with already existing data, you can use the following command to import some example data on
Categories,PricesandUsertablesnpm run db:import
