Git Product home page Git Product logo

mern-estate_marketplace's Introduction

Real Estate Web Application

This project is a full-stack web application for a real estate platform, developed using React.js, Tailwind CSS, Node.js, Express, and MongoDB. The application includes various features such as user authentication, listing creation, search functionality, and more.

Getting Started

Prerequisites

  • Node.js and npm installed
  • MongoDB installed locally or configured MongoDB Atlas account
  • Code editor (e.g., Visual Studio Code)

Installation

  1. Clone the repository:

bash git clone https://github.com/your-username/real-estate-app.git

  1. Navigate to the project directory:

bash cd real-estate-app

  1. Install dependencies for the frontend and backend:

bash cd client npm install

cd ../server npm install

Usage

Development

  1. Start the frontend development server:

bash cd client npm start

Visit http://localhost:3000 in your browser.

  1. Start the backend development server:

bash cd server npm start

The server runs at http://localhost:5000.

Production

Project Structure

  • client: Frontend React.js application
  • server: Backend Node.js and Express application
  • database: MongoDB database models and connections
  • docs: Documentation and additional resources

Features

  • User Authentication: Sign up, sign in, sign out functionality with Google OAuth.
  • Listing Management: Create, update, delete user listings with image upload functionality.
  • Search: Search listings based on various parameters.
  • Responsive Design: Tailwind CSS used for responsive and modern UI.
  • Deployment: Deployed on Render (https://mern-estate-1-briy.onrender.com/).

Software quality control has been performed on:

  • Production, functional, and non-functional requirements
  • High-level test cases
  • Low-level test cases
  • Automated testing

Development Timeline

For a detailed overview of the development process, refer to https://github.com/users/BosneviNedzma/projects/1/views/4

Contributing

Feel free to contribute to this project. Follow the standard Git branching and pull request procedures.

mern-estate_marketplace's People

Contributors

bosnevinedzma avatar

Watchers

 avatar

mern-estate_marketplace's Issues

Create a test api route

To-Do:

  • create 'routes' folder inside 'api' folder
  • create 'controllers' folder inside 'api' folder
  • create user.controller.js
  • create user.route.js
  • configure these new files

Add delete user functionality

To-Do:

  • delete user's cookie before delete the user
  • create route
  • create and implement DeleteUserStart, DeleteUserSuccess and DeleteUserFailure functions

Complete profile page Ul

To-Do:

  • create need labels for entry information: email, username and password
  • buttons for updating profile, delete account and sign out

Create sign up API route

To-Do:

  • Create a profile on the Insomnia API development platform.
  • Download the Insomnia application.
  • Generate a POST request and conduct testing.
  • Verify in the online database whether the entry exists.
  • Implement password hashing.
  • Conduct comprehensive testing.

Add sign out user functionality

To-Do:

  • delete user's cookie before sign out the user
  • create route
  • implement signOutUserStart, signOutUserSuccess, and signOutUserFailure functions

Add redux toolkit

To-Do:

  • modify client/src/pages/Signin.jsx
  • create and establish redux toolkit

Create pages and routes

To-Do:

  • Create a 'pages' folder
  • Install React Router Dom
  • Establish routes

Process:

Within client\src directory, a 'pages' folder was created. Files such as 'About.jsx', 'Signin.jsx', 'Signout.jsx', 'Profile.jsx' and 'Home.jsx' were generated witihin this folder using 'rfc' command. The react-router-dom package was installed to facilitate route creation with the command npm i react-router-dom.

In 'App.jsx,' the following line was imported at the top: import { BrowserRouter, Routes, Route } from "react-router-dom"; Then, within the return section, the following lines were imported:

return

<Route path="/" element={}/>
<Route path="/sign-in" element={}/>
<Route path="/sign-out" element={}/>
<Route path="/about" element={}/>
<Route path="/profile" element={}/>

It was ensured that elements were imported from their respective modules.

The final result:

Image

Image

Image

Image

Image

Install React js and Tailwind CSS and create the first template

To-Do:

  1. Create a folder named "ModernRealEstateMarketplace."
  2. Open the folder using Visual Studio Code.
  3. Install ReactJS using Vite.

Process:
In the terminal, execute the command npm create vite@latest client. The term "client" refers to the folder where React will be installed. Choose React with JavaScript and SWC. This command generates the "client" folder with all necessary React files and folders. Move into the client folder with the commands cd client and npm i to install development dependencies.

Next, install Tailwind CSS with Vite using the command found at https://tailwindcss.com/docs/guides/vite, which, in this case, is npm install -D tailwindcss postcss autoprefixer. Initialize configuration files with npx tailwindcss init -p. Edit the tailwind.config.js file by replacing its contents with code from the provided link. Remove unnecessary files related to TailwindCSS:

  • client\src\App.css
  • client\public\vite.svg
  • client\src\assets\react.svg.

In client\src\App.jsx, delete the existing code, enter 'rfc', and press Enter. Install the 'ES7 + React/Redux/React-Native snippets' extension for proper suggestion display. Additional extensions installed include 'Auto Rename Tag,' 'Console Ninja,' 'GitHub Copilot,' 'Prettier Code formatter,' and 'GitHub copilot chat.'

To run the application, use npm run dev. Follow the link provided in the terminal to view the code on localhost. Stop the terminal with Control+C. Commit each step to the GitHub repository with the following commands:

  • git init
  • git add .
  • git commit -m "Install React js and Tailwind CSS and create the first template"

Create a GitHub repository, then clone it with:

image

Connect to database

To-Do:

  • create a profile on MongoDB Atlas
  • create a new project on it
  • create a new database
  • set up configuration for database in api/index.js file
  • create environment variable in .env file
  • add .env in .gitignore

Create user model

To-Do:

  • create 'models' folder inside api folder
  • create user schema

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.