A modern, fully-featured eCommerce platform built with MERN.
This project brings together everything you need for a fully-featured, fully custom, eCommerce site: product exploration and searching, product pages, carousels, and pagination, as well as authenticated sign-on and user accounts stored in a managed database, an admin dashboards to manage users/customers, products, and order details. The exportdefault.shop platform also has a product rating and review system, shopping carts, an integrated ordering system that handles marking orders as shipped/delivered, as well as the entire checkout process including shipping selection, payment options (credit/debit card processing, and Paypal integration).
The technologies included in this project include (but not limited to):
- React (with functional components and hooks)
- React router
- React-Bootstrap
- State management via Redux (
actions
,reducers
) - Redux-mananaged componenents (
useDispatch
,useSelector
) - Express back-end server
- Express Async Handler
- Live MongoDB integration, and Mongoose ODM
- JWT authentication
- Fully custom authentication middleware
- Fully custom error handlers
- Paypal API integration
- Project deployment pipeline, via Heroku
- Clone repo to project directory
- Navigate to
./frontend
and install packages via$ npm i
- Navigate to base project directory and install packages via
$ npm i
- Create your development
.env
file, containing:
PORT
for desired port to host development serverNODE_ENV
set toDEVELOPMENT
(orPRODUCTION
)MONGO_URI
or equivalent NoSQL database URIJWT_SECRET
for handling authentication tokensPAYPAL_SANDBOX_XXX
accounts, for testing Paypal integration
- Start the server in development mode by running
npm run dev
in the base project directory. - Wait for React to open the application or naviagate to
localhost:3000
In development mode, this application requires concurrently
and nodemon
for development npm
scripts.
exportdefault.shop
has a RESTful API architecture. The frontend and backend communicate via HTTP methods and JSON data, while the backend communicates with the MongoDB database via Mongoose.
Complete API descriptions, tests, and documentation can be found in
exportdefault.paw
/api
├── orders
│ ├── _id //Perform actions on a single order, by ID
│ └── myorders //Perform actions on a single user's orders
├── products
│ └── _id //Perform actions on a single product, by ID
└── users
├── _id //Perform actions on a single user, by ID
├── login //Login routes
└── profile //User actions
//Please see exportdefault.paw for complete API documentation and API testing
- Please see the API documentation for tests. Currently, API tests are integrated into the documentation.
- This application is deployed via Heroku.
- Please read CONTRIBUTING.md (LINK MISSING) for details on our code of conduct, and the process for submitting pull requests.
- This project uses semantic versioning. Please see SemVer for more information on the SemVer spec.
- Connor Dillon - Developer - connoro7
- See also the list of contributors who participated in this project.
- This project is licensed under the MIT License.