MongoDB, Expressjs, Reactjs, Redux, Nodejs
Report Bug · Request Extension
https://gokartapp-by-sartaj.herokuapp.com/
- JWT user authetication
- Top products carousel
- Update user profile (username, email, password)
- Full featured shopping cart
- User profile with order details (product description, price, availability status)
- Checkout process (shipping, payment method, etc)
- Track placed order
- PayPal / credit card integration
- Mark orders as delivered option
- Database seeder (products & users)
One-stop solution for all your shopping problems amidst the pandemic, GoKart
In the frontend side, we have used React as the frontend library. We have used Redux for state management. We have also used React Bootstrap library for basic designing of the interface.
For the backend side, we have used the Express library on top of Nodejs. MongoDB is used as the NoSQL database to store our data as documents in JSON format. and mongoose to connect to our MongoDB database.
We have created REST APIs with Express and used these endpoints in the React frontend to interact with our backend part.
-We have used ECMAScript Modules in the backend in this project. Be sure to have at least Node v14.6+ or you will need to add the "--experimental-modules" flag. -Also, when importing a file (not a package), be sure to add .js at the end or you will get a "module not found" error -You can also install and setup Babel if you would like
Create a .env file in then root and add the following
NODE_ENV = development
PORT = 5000
MONGO_URI = your mongodb uri
JWT_SECRET = 'abc123'
PAYPAL_CLIENT_ID = your paypal client id
npm install
cd frontend
npm install
# Run frontend (:3000) & backend (:5000)
npm run dev
# Run backend only
npm run server
# Create frontend prod build
cd frontend
npm run build
There is a Heroku postbuild script, so if you push to Heroku, no need to build manually for deployment to Heroku
You can use the following commands to seed the database with some sample users and products as well as destroy all data
# Import data
npm run data:import
# Destroy data
npm run data:destroy
Sample User Logins
sartaj@gmail.com (Admin)
123456
riyaz@gmail.com (Customer)
123456
saran@gmail.com (Customer)
123456
If you have any feedback or suggestions please reach out.
Or you can create an issue and mention there , which new features can make this Project more good.