All Projects → mrlynn → meanstore

mrlynn / meanstore

Licence: other
Simple Shopping Cart based on MongoDB ExpressJS AngularJS and NodeJS

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to meanstore

7cart
7cart is a php7 project for building online shops, catalogs or service platforms. 7cart built with simple code and database schema. It is easy to support and fast.
Stars: ✭ 27 (-22.86%)
Mutual labels:  catalog, product-catalog
freshcom-api
Deprecated
Stars: ✭ 43 (+22.86%)
Mutual labels:  ecommerce
Run Aspnetcore Realworld
E-Commerce real world example of run-aspnetcore ASP.NET Core web application. Implemented e-commerce domain with clean architecture for ASP.NET Core reference application, demonstrating a layered application architecture with DDD best practices. Download 100+ page eBook PDF from here ->
Stars: ✭ 208 (+494.29%)
Mutual labels:  ecommerce
E Commerce Db
Database schema for e-commerce (webstores) sites.
Stars: ✭ 245 (+600%)
Mutual labels:  ecommerce
Commerceql
UNMAINTAINED
Stars: ✭ 217 (+520%)
Mutual labels:  ecommerce
Arastta
Solid, Free, Open Source, Community Driven eCommerce
Stars: ✭ 251 (+617.14%)
Mutual labels:  ecommerce
Buefy Shop
A sample shop built with Nuxt, Stripe, Firebase and Serverless Functions
Stars: ✭ 207 (+491.43%)
Mutual labels:  ecommerce
react-pwa-reference-storefront
Reference Storefront Progressive Web Application in React
Stars: ✭ 43 (+22.86%)
Mutual labels:  ecommerce
artifacts
A clone of Etsy, an e-commerce site themed around selling items procured by time travelers.
Stars: ✭ 16 (-54.29%)
Mutual labels:  ecommerce
Eshop
Eshop + Content Management System (CMS) written in Node.js / Total.js.
Stars: ✭ 243 (+594.29%)
Mutual labels:  ecommerce
Retail Demo Store
AWS Retail Demo Store is a sample retail web application and workshop platform demonstrating how AWS infrastructure and services can be used to build compelling customer experiences for eCommerce, retail, and digital marketing use-cases
Stars: ✭ 238 (+580%)
Mutual labels:  ecommerce
Vuemmerce
👉 Responsive ecommerce template 🛒 built with Vue.js and Nuxt.js
Stars: ✭ 223 (+537.14%)
Mutual labels:  ecommerce
Zencart
Zen Cart® is a full-function e-commerce application for your website.
Stars: ✭ 250 (+614.29%)
Mutual labels:  ecommerce
Asky
Asky开源架构:极简、轻量、极致性能《Asky零基础1小时学编程 dnc+vue+tidb+redis+rabbitMQ+ES》QQ群 779699538
Stars: ✭ 213 (+508.57%)
Mutual labels:  ecommerce
Online-Shop-eCommerce-App-Angular-6-Firebase
Online eCommerce Store app in Angular 11.0 & Firebase
Stars: ✭ 96 (+174.29%)
Mutual labels:  ecommerce
Wp E Commerce
WP eCommerce - The most popular independent eCommerce platform for WordPress
Stars: ✭ 209 (+497.14%)
Mutual labels:  ecommerce
Merchello
Merchello is an open source e-commerce package for the Umbraco CMS
Stars: ✭ 233 (+565.71%)
Mutual labels:  ecommerce
Scipio Erp
Your Online Business Kit - Build your own business applications. Create your own online shop. Customize to your own needs.
Stars: ✭ 247 (+605.71%)
Mutual labels:  ecommerce
commercejs-vuejs-boilerplate
Commerce.js boilerplate, built with Vue.js, for fast eCommerce development and design
Stars: ✭ 43 (+22.86%)
Mutual labels:  ecommerce
eCommerce-site-using-Node-Express-js
eCommerce site using Node Express js
Stars: ✭ 53 (+51.43%)
Mutual labels:  ecommerce

MEANStore - MeanMart

MEANStore - MeanMart

An example ecommerce / Retail software solution demonstrating the power and flexibility of MongoDB.

Installation via Vagrant

MEANStore leverages vagrant to deliver a fully functional virtual environment with MEANStore / MEANMart running.

git clone https://github.com/mrlynn/meanstore.git
cd meanstore
vagrant up

At this point, the application should be up and running and can be accessed from your laptop/desktop by opening the url http://localhost:30001

Note: If the application does not come up in your browser, vagrant ssh to your instance, and restart the application. Ensure that MongoDB is running

vagrant ssh # access the vagrant instance
sudo su -   # become super user
cd /home/vagrant/meanmart/meanstore # change to project directory
npm run dev # run the application in developer mode

At this point, the application should be up and running and can be accessed from your laptop/desktop by opening the url http://127.0.0.1:30000 depending on the specific settings in your .env.hackathon configuration file.

Installation via local

git clone https://github.com/mrlynn/meanstore.git
cd meanstore
npm install
# unicode doesn't install nicely first pass - try again
npm install unicode
# install faker to generate data
npm install faker
# Set environment
export MONGODB_URI="mongodb://127.0.0.1:27017/hackathon"
# Generate some data...
node data/fake-refrigerators.js
node data/fake-televisions.js
node data/fake-cameras.js
node data/fake-apparel.js
# Create the categories...
node data/category-seeder.js
# Now run it...
npm run dev

Usage

Once vagrant finishes provisioning, ssh into the instance:

vagrant ssh

You should find that MongoDB has been installed and is running. You should also find that a database and a set of collections with test data has been created.

Obtaining API Keys

To use any of the included APIs or OAuth authentication methods, you will need to obtain appropriate credentials: Client ID, Client Secret, API Key, or Username & Password. You will need to go through each provider to generate new credentials.

MEANStore 1.0 Update: I have included dummy keys and passwords for all API examples to get you up and running even faster. But don't forget to update them with your credentials when you are ready to deploy an app.

- Visit Google Cloud Console - Click on the **Create Project** button - Enter *Project Name*, then click on **Create** button - Then click on *APIs & auth* in the sidebar and select *API* tab - Click on **Google+ API** under *Social APIs*, then click **Enable API** - Next, under *APIs & auth* in the sidebar click on *Credentials* tab - Click on **Create new Client ID** button - Select *Web Application* and click on **Configure Consent Screen** - Fill out the required fields then click on **Save** - In the *Create Client ID* modal dialog: - **Application Type**: Web Application - **Authorized Javascript origins**: http://localhost:3000 - **Authorized redirect URI**: http://localhost:3000/auth/google/callback - Click on **Create Client ID** button - Copy and paste *Client ID* and *Client secret* keys into `.env`

Note: When you ready to deploy to production don't forget to add your new url to Authorized Javascript origins and Authorized redirect URI, e.g. http://my-awesome-app.herokuapp.com and http://my-awesome-app.herokuapp.com/auth/google/callback respectively. The same goes for other providers.


- Visit Facebook Developers - Click **My Apps**, then select **Add a New App* from the dropdown menu - Select **Website** platform and enter a new name for your app - Click on the **Create New Facebook App ID** button - Choose a **Category** that best describes your app - Click on **Create App ID** button - In the upper right corner click on **Skip Quick Star** - Copy and paste *App ID* and *App Secret* keys into `.env` - **Note:** *App ID* is **clientID**, *App Secret* is **clientSecret** - Click on the *Settings* tab in the left nav, then click on **+ Add Platform** - Select **Website** - Enter `http://localhost:3000` under *Site URL*

Note: After a successful sign in with Facebook, a user will be redirected back to home page with appended hash #_=_ in the URL. It is not a bug. See this Stack Overflow discussion for ways to handle it.


API

MEANStore comes complete with an api that enables you to query, and manage the MongoDB database. Should you want to review the internal data structures to discover how one might build a product catalog using MongoDB's document-based data storage methodology, a great way to start is by using Postman. With Postman, you can construct requests quickly, save them for later use and analyze the responses sent by the API. Postman can dramatically cut down the time required to test and develop APIs. Postman adapts itself for individual developers, small teams or big organizations equally well.

To leverage postman, once you've gotten it installed, simply load the url for the API into postman. For example, to review the products collection if you're using the vagrant-based install, use the following url in postman:

http://localhost:30000/api/products

This will expose the entire product catalog collection.

[
  {
    "_id": "584aecaaf580422022aea4fb",
    "code": "ref1099",
    "name": "Generic Plastic Computer Refrigerator",
    "title": "Intelligent IVORY Generic Plastic Computer Refrigerator",
    "description": "Est enim aut.",
    "taxable": true,
    "shipable": true,
    "price": 73300,
    "Product_Group": "Refrigerator",
    "category": "Refrigerator",
    "imagePath": "/img/samsung-refrigerator.jpg",
    "__v": 0,
    "salesYearMonth": [],
    "salesYTD": [],
    "usersBought": [],
    "categories": [],
    "update": "2016-12-09T17:40:58.033Z",
    "created": "2016-12-09T17:40:58.033Z",
    "options": [],
    "Attributes": [],
    "likes": []
  },
  ...

Screenshots

  • Main Catalog
  • Main Catalog
  • Main Catalog

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Credits / Contributors

Next Steps

Notes on Installation

  • I received an error during installation... something about node-gyp or faker...
  • You may safely ignore these errors.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].