Skip to content

Md-Dipu/wagon

Repository files navigation

Wagon: Apartments Sales Website

GitHub release (latest by date) GitHub

Wagon is an apartment seal website made with MERN Stack technologies. Maintaining apartments, booking and users is the main key of the website.

Live Demo

This project is deployed using the firebase hosting service. To visit the demo Click here or manually visit the URL https://wagon-apartments-sales.web.app/.

Demo Accounts

Role Email Password
Admin admin@wagon.com Admin1234#
User demo@wagon.com Demo1234#

Note: The website may be slow because of the free hosting server.

Features

  • Dynamic website
  • Responsive webpages
  • REST API
  • Authentication and authorization
  • Apartments, bookings and reviews management
  • Email and password authentication system
  • User and role management

This website is a fully responsive application. Attempts have been made to implement all basic concepts/services.

Tech

This project uses a number of open-source projects/packages to work properly:

Frontend

  • Axios - Promise based HTTP client for the browser and node.js.
  • Bootstrap - Bootstrap is a powerful, feature-packed frontend toolkit.
  • Firebase - Firebase is an app development platform that helps to build apps and games.
  • Fortawesome - Build and manage icons and typefaces in a single place, then serve them with a single line of code.
  • React - A JavaScript library for building user interfaces.
  • React-bootstrap - The most popular front-end framework.
  • React-hook-form - Performant, flexible and extensible forms with easy-to-use validation.
  • React-rating-stars-component - A simple star rating component for your React projects (now with half stars and custom characters).
  • React-router - React Router is a standard library for routing in React.

Backend

  • Colors - get colors in your node.js console.
  • CORS - Node.js CORS middleware.
  • Dotenv - Loads environment variables from .env for nodejs projects.
  • Express - Fast, unopinionated, minimalist web framework for Node.js.
  • Mongoose - Elegant mongodb object modeling for node.js.
  • Validator - A library of string validators and sanitizers.

Installation and Development

Wagon requires Node.js v10+ to run. It is recommended to use nvm for managing Node.js versions.

Setup

  1. Clone the repository:

    git clone https://github.com/Md-Dipu/wagon.git
    cd wagon
  2. Use nvm to install and use the required Node.js version:

    nvm use
    # If the above command fails, run the following:
    nvm install
    nvm use
  3. Install the dependencies:

    npm install
  4. Start the development server:

    npm run dev

Environment variables

Before starting, the servers must set up some environment variables on both the wagon/client and wagon/server.

Frontend

Enter all variables in the client/.env.local file.

Variables Description
REACT_APP_API_KEY Firebase api key
REACT_APP_AUTH_DOMAIN Firebase auth domain
REACT_APP_PROJECT_ID Firebase project ID
REACT_APP_STORAGE_BUCKET Firebase storage bucket
REACT_APP_MESSAGING_SENDER_ID Firebase messaging sender ID
REACT_APP_APP_ID Firebase APP ID
REACT_APP_SERVER_BACKEND_API_URL Server side URL

Backend

Enter all variables in the server/.env file.

Variables Description
FIREBASE_SERVICE_ACCOUNT Firebase service account private key
MONGODB_URI Mongodb connection string
PORT Port number for local server

We appreciate your interest in Wagon. If you have any questions or need further assistance, please feel free to reach out to us. Happy coding!