👜 A simple RESTful API for Purchases and Products

Overview

An online marketplace application with buyer accounts, product search and suggestions, shopping cart, order management, and payment processing with PayPal - developed using React, Redux, Node, Express and MongoDB.

Features

Registration Features

Feature Coded? Description
Local ✔ Ability to Register Locally
Google ✔ Ability to Register With Google
Facebook ✔ Ability to Register With Facebook
Confirmation ✔ Ability to Receive Confirmation Email

Users Features

Feature Coded? Description
Register a User ✔ Ability of Register a new User
See Users ✔ Ability to see Registered Users
Block User ✔ Ability of Block a User
Update User ✔ Ability to Update User Info

Products Features

Feature Coded? Description
Add a Product ✔ Ability of Add a Product on the System
List Products ✔ Ability of List Products
Edit a Product ✔ Ability of Edit a Product
Delete a Product ✔ Ability of Delete a Product
Stock ✔ Ability of Update the Stock
Stock History ✔ Ability to see the Stock History

Categories Features

Feature Coded? Description
Add a Category ✔ Ability of Add a Category on the System
List Category ✔ Ability of List Category
Edit a Category ✔ Ability of Edit a Category
Delete a Category ✔ Ability of Delete a Category

Purchase Features

Feature Coded? Description
Create a Cart ✔ Ability of Create a new Cart
See Cart ✔ Ability to see the Cart and it items
Remove a Cart ✔ Ability of Remove a Cart
Add Item ✔ Ability of add a new Item on the Cart
Remove a Item ✔ Ability of Remove a Item from the Cart
Checkout ✔ Ability to Checkout

Checkout Features

Feature Coded? Description
Local ✔ Ability to Pay With Local Balance
PayPal ✔ Ability to Pay With PayPal
History ✔ Ability To See Payment History
Notification ✔ Ability to Receive Payment Details On Email

Contact Features

Feature Coded? Description
Receive ✔ Ability to Receive Messages
Send ✔ Ability to Send Message
History ✔ Ability To See All Messages

Chat Features

Feature Coded? Description
Receive ✔ Ability to Receive Personal Message
Send ✔ Ability to Send Personal Message

Reviews Features

Feature Coded? Description
Comment ✔ Ability to Leave Review
Star ✔ Ability to Leave Rating
Switch ✔ Ability To Hide Review

Technologies & Tools

Front End:

  • React
  • React-facebook-login
  • React-google-login
  • React-paypal-express-checkout
  • Redux
  • Redux-form
  • Redux-thunk
  • Axios

Back End:

  • Node/Express
  • MongoDB/Mongoose
  • Nodemailer
  • Passport
  • Multer
  • JWT
  • Joi

Installation and Usage

Requirements:

  • Node.js installed
  • MongoDB connection

Steps:

  1. Clone repo on your local machine:
$ git clone https://github.com/IrakliIakobishvili/Ecommerce.git
  1. Install server-side dependencies:
$ cd Ecommerce
$ npm install
  1. Install client-side dependencies:
$ cd client
$ npm install
  1. In index.js file (config folder) replace mongoDB, Google, Facebook and Email secret keys with your own.
oauth: {
    google: {
      clientID: "##########",
      clientSecret: "##########"
    },
    facebook: {
      clientID: "##########",
      clientSecret: "##########"
    }
  },
  paypal: {
    clientID: "##########"
  },
  MONGODB_URI: "##########"
  1. Build the app:
$ npm run build
  1. Execute the app:
$ cd ..
$ npm run start-dev
  1. App now running on localhost:5000

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Built With

  • React - JavaScript Library for Building User Interfaces
  • Redux - Predictable State Container for JavaScript Apps
  • Node - JavaScript Runtime Environment
  • MongoDB - Fully Managed Cloud Database

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details