This is the clone of SHOPPERS STOP build using Node js, EJS, Express js, and Mongoose. We started this project as a six member team during the third unit construct week organised at Masai School, Bengaluru, Karnataka.
- Demo
- How to run the app
- Basic inference about the company
- Technology
- Added Functionalities
- Database
- added Features
- Contributors
- Glimpse of our work
The application is deployed to Heroku and can be accessed through the following link: Shoppers Stop
The website resembles a real store and you can login using google authentication or can create new account. You can add products to your wishlist or move to the cart and can virtually pay for them.
To run this application, you have to set your own environmental variables. For security reasons, some variables have been hidden from view and used as environmental variables with the help of dotenv package. Below are the variables that you need to set in order to run the application:
- MONGO_URI: this is the connection string of your MongoDB Atlas database.
- JWT_ACCESS_KEY: This is a key which is used to authencticate user. You can put any strings here.
- JsonWebToken: This is a token created by JWT library used to authenticate user. You can put any strings here.
- GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET: These credentials can be created using Google cloud platform. This helps to authenticate a user using Google OAuth.4
After you've set these environmental variables in the .env file at the root of the project, you need to fill your empty MongoDB Atlas database by creating new products in the Products collection.
Now you can run "npm start" in the terminal and the application should work.
Shoppers Stop is an Indian department store chain, owned by the K Raheja Corp. There are 86 stores across 40 cities in India, with clothing, accessories, handbags, shoes, jewellery, fragrances, cosmetics, health and beauty products, home furnishing, and decor products.
- Node.js version 12.16.3
- Mongoose 6.1.1
- Express version 4.17.1
- Passport: 0.5.0 used for authentication
- Express Validator: used for form validation
- EJS 2.1.6
The application displays a virtual bags store that contains virtual products and contact information. User can do the following:
- Create an account, login or logout
- Browse available products
- Add products to the shopping cart and wishlist
- Delete products from the shopping cart and wishlist
- Display the shopping cart and wishlist.
- To checkout, a user must be logged in
- Search feature with searching suggestions for any available item
- Sort by brand, colour, price, popularity, discount or type
- Sign-in / Sign up authentication
- Pagination
- email (String)
- password (String)
- title (String)
- slug (String)
- Product_Id (String)
- title (String)
- imagePath (Array)
- description (String)
- price (Number)
- discount (Number)
- category (ObjectId - a reference to the category schema)