https://github.com/mohamedsamara/mern-ecommerce
:balloon: Fullstack MERN Ecommerce Application
https://github.com/mohamedsamara/mern-ecommerce
express mern mern-ecommerce mern-stack mongoose node react redux redux-thunk
Last synced: about 1 month ago
JSON representation
:balloon: Fullstack MERN Ecommerce Application
- Host: GitHub
- URL: https://github.com/mohamedsamara/mern-ecommerce
- Owner: mohamedsamara
- License: mit
- Created: 2019-06-18T02:38:45.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-31T01:11:47.000Z (9 months ago)
- Last Synced: 2025-04-03T15:07:05.859Z (about 1 month ago)
- Topics: express, mern, mern-ecommerce, mern-stack, mongoose, node, react, redux, redux-thunk
- Language: JavaScript
- Homepage: https://mern-store-gold.vercel.app
- Size: 28.6 MB
- Stars: 1,813
- Watchers: 49
- Forks: 843
- Open Issues: 35
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# MERN Ecommerce
## Description
An ecommerce store built with MERN stack, and utilizes third party API's. This ecommerce store enable three main different flows or implementations:
1. Buyers browse the store categories, products and brands
2. Sellers or Merchants manage their own brand component
3. Admins manage and control the entire store components### Features:
* Node provides the backend environment for this application
* Express middleware is used to handle requests, routes
* Mongoose schemas to model the application data
* React for displaying UI components
* Redux to manage application's state
* Redux Thunk middleware to handle asynchronous redux actions## Demo
This application is deployed on Vercel Please check it out :smile: [here](https://mern-store-gold.vercel.app).
See admin dashboard [demo](https://mernstore-bucket.s3.us-east-2.amazonaws.com/admin.mp4)
## Docker Guide
To run this project locally you can use docker compose provided in the repository. Here is a guide on how to run this project locally using docker compose.
Clone the repository
```
git clone https://github.com/mohamedsamara/mern-ecommerce.git
```Edit the dockercompose.yml file and update the the values for MONGO_URI and JWT_SECRET
Then simply start the docker compose:
```
docker-compose build
docker-compose up
```## Database Seed
* The seed command will create an admin user in the database
* The email and password are passed with the command as arguments
* Like below command, replace brackets with email and password.
* For more information, see code [here](server/utils/seed.js)```
npm run seed:db [email-***@****.com] [password-******] // This is just an example.
```## Install
`npm install` in the project root will install dependencies in both `client` and `server`. [See package.json](package.json)
Some basic Git commands are:
```
git clone https://github.com/mohamedsamara/mern-ecommerce.git
cd project
npm install
```## ENV
Create `.env` file for both client and server. See examples:
[Frontend ENV](client/.env.example)
[Backend ENV](server/.env.example)
## Vercel Deployment
Both frontend and backend are deployed on Vercel from the same repository. When deploying on Vercel, make sure to specifiy the root directory as `client` and `server` when importing the repository. See [client vercel.json](client/vercel.json) and [server vercel.json](server/vercel.json).
## Start development
```
npm run dev
```## Languages & tools
- [Node](https://nodejs.org/en/)
- [Express](https://expressjs.com/)
- [Mongoose](https://mongoosejs.com/)
- [React](https://reactjs.org/)
- [Webpack](https://webpack.js.org/)
### Code Formatter
- Add a `.vscode` directory
- Create a file `settings.json` inside `.vscode`
- Install Prettier - Code formatter in VSCode
- Add the following snippet:```json
{
"editor.formatOnSave": true,
"prettier.singleQuote": true,
"prettier.arrowParens": "avoid",
"prettier.jsxSingleQuote": true,
"prettier.trailingComma": "none",
"javascript.preferences.quoteStyle": "single",
}```