Skip to content

ranjit95s/property-expert

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

166 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sell / Buy Property

The 🏡Property-Expert.Com🏡 successfully completing “Property-Expert.Com” and “Project Goal : property portal, deals with every aspect of the consumers’ needs in the real estate industry. It is an online forum where buyers, sellers and brokers/agents can exchange information about real estate properties quickly, effectively and inexpensively. At Property-Expert.Com you can advertise a property, search for a property, browse through properties, build your own property microsite, and keep yourself updated with the latest news and trends making headlines in the realty sector. Took 1 month to structure base of this project like simple UI design and all backend work then afterward took 1 month to design user frindly interface then few week take to counter bugs and clear various "Test Case". budget : free of cost !”. Node site that handles user registration, authentication & authorization with JWT, keep user , Home data in api form as well as user home interest data.

Here is the REPO.

Here is the DEMO.

How it works?

Registered users are stored in mongoDB and their password is hashed by bcrypt. When the user POSTs their credentials to the server, they recieve 1 Json Web Token (access token & that will exprire certain time later!).On the client side user have to re-login if token is exprire. for safety purpose we are using firebase phone auth to verify user and then after proccesed next task.

The 🏡 Property-Expert.Com 🏡 allow user to SELL(post) there Property Details and Property will display on site then user can show there interest in property, after clicking show interest button; user details along with property details save to dbs thats all we have in it. later we contact with user and home owner to deal comfirmation of Property.


Installation

git clone https://github.com/ranjit95s/property-expert.git
cd property-expert
npm i
npm start
npm run dev

Routers

No Method Endpoint Description
#1 POST /signup Creates a new user in MongoDB and returns it with status 201
#2 POST /verify User have to verify his/her phone number then after can Browse through this site
#3 POST /login User login after successfully signup
#4 GET /property All user uploaded property appears here
#5 GET /home?h=home.id Each property full details appear here with home ID,(homeID generate automatically after posting property)
#6 POST /post-property User can post property here
#7 GET /User?_id Registered users information + User can change his/her avatar
#8 POST /logout Registered users can logout and after can login with same registered information
#9 GET /aboutmore About page
#10 POST /contact Only registered user can send message
#11 GET /database/ API DATA
#12 POST /deptlogin/ Department login For stuff only , for deleting , adding , editing infomation and contacting to user that interesting buying or renting homes
No Request Body Response Body
#1 { username, email, password } { username, email, createdAt }
#2 { userphone , OTP verify code } { userphone , Auth userPhone No. }
#3 { email, password } { access_token }
#4 { expaire_token } { User have to login to get { access_token }}
#5 Authorization: Bearer <access_token> User id that is logged in

Configuration

Configuration should made in the .env file, before run. .env.example file is below:

PORT=3000
MONGO_URL=mongodb://localhost:27017/<db_name>

Project Structure

.
├── public
│   ├── css                    // All css styles
│   │   ├── 404.css
│   │   ├── abouts.css
│   │   ├── contact.css
│   │   ├── footer.css
│   │   ├── AdminSetUp.css
│   │   ├── homeInt.css
│   │   ├── mod-home.css
│   │   ├── userdata.css
│   │   ├── home.css
│   │   ├── index-style.css
│   │   ├── login.css
│   │   ├── navbar.css
│   │   ├── postprop.css
│   │   ├── prop-style.css
│   │   ├── style.css
│   │   ├── user.css
│   ├── images                 // All images
│   │   └── ... 
│   ├── js                     // All js scripts
│   │   ├── home.js
│   │   ├── main.js
│   │   ├── mainlog.js
│   │   ├── post-prop.js
│   │   ├── user.js
│   └── └── verifyOtp.js
├── src                       // Source Folder
│   ├── db                    
│   │   └── conn.js           // Database connection
│   ├── middleware
│   │   └── auth.js           // Authentication of user
│   ├── models                // Mongoose schema
│   │   ├── home.js           // Home schema
│   │   ├── homeInterest.js   // home Interest schema
│   │   ├── message.js        // Message schema
│   │   └── user.js           // User schema
│   └── app.js 
├── templates
│   ├── views
│   │   ├── 404.ejs
│   │   ├── PostProperty.ejs
│   │   ├── aboutmore.ejs
│   │   ├── contact.ejs
│   │   ├── footer.ejs
│   │   ├── home.ejs
│   │   ├── index.ejs
│   │   ├── login.ejs
│   │   ├── navbar.ejs
│   │   ├── properties.ejs
│   │   ├── signup.ejs
│   │   ├── user.ejs
│   │   ├── database.ejs
│   │   ├── deptlogin.ejs
│   │   ├── homeData.ejs
│   │   ├── homeInt.ejs
│   │   ├── userDB_Msg.ejs
│   │   ├── usersData.ejs
│   └── └── verifyOtp.ejs
├── .env
├── .gitignore
├── README.md
├── package-lock.json
└── package.json

User Interface

Mini user interface is build landing page home sec

Model

User Model is created with mongoose in user.js. home Model is created with mongoose in home.js. message Model is created with mongoose in message.js. homeinterest Model is created with mongoose in homeinterest.js.

Hash Password

Password is hashed with bcryptjs. For performance see also: bcrypt.

About

Pre-Final Year Project (5th Sem)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors