{"id":15549628,"url":"https://github.com/mrlynn/meanstore","last_synced_at":"2025-04-13T09:05:12.835Z","repository":{"id":14123035,"uuid":"71740875","full_name":"mrlynn/meanstore","owner":"mrlynn","description":"Simple Shopping Cart based on MongoDB ExpressJS AngularJS and NodeJS","archived":false,"fork":false,"pushed_at":"2024-04-11T23:07:59.000Z","size":41644,"stargazers_count":36,"open_issues_count":110,"forks_count":17,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-14T04:24:27.164Z","etag":null,"topics":["catalog","ecommerce","example","faceted","mongodb","product-catalog","search","tutorial"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrlynn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-10-24T01:24:20.000Z","updated_at":"2024-04-18T19:53:17.505Z","dependencies_parsed_at":"2023-02-16T09:31:38.417Z","dependency_job_id":"1889bf8f-a01e-445e-97c9-8d119b22fc9f","html_url":"https://github.com/mrlynn/meanstore","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrlynn%2Fmeanstore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrlynn%2Fmeanstore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrlynn%2Fmeanstore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrlynn%2Fmeanstore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrlynn","download_url":"https://codeload.github.com/mrlynn/meanstore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248688576,"owners_count":21145766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["catalog","ecommerce","example","faceted","mongodb","product-catalog","search","tutorial"],"created_at":"2024-10-02T13:41:03.072Z","updated_at":"2025-04-13T09:05:12.799Z","avatar_url":"https://github.com/mrlynn.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![MEANStore - MeanMart](https://raw.githubusercontent.com/mrlynn/meanstore/meanmart/public/images/meanmart-banner1.png)\n# MEANStore - MeanMart\n\nAn example ecommerce / Retail software solution demonstrating the power and flexibility of MongoDB.\n\n## Installation via Vagrant\n\nMEANStore leverages vagrant to deliver a fully functional virtual environment with MEANStore / MEANMart running.\n\n```\ngit clone https://github.com/mrlynn/meanstore.git\ncd meanstore\nvagrant up\n```\nAt this point, the application should be up and running and can be accessed from your laptop/desktop by opening the url http://localhost:30001\n\n### 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 ###\n\n```\nvagrant ssh # access the vagrant instance\nsudo su -   # become super user\ncd /home/vagrant/meanmart/meanstore # change to project directory\nnpm run dev # run the application in developer mode\n\n```\n\nAt 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.\n\n\n## Installation via local\n\n```\ngit clone https://github.com/mrlynn/meanstore.git\ncd meanstore\nnpm install\n# unicode doesn't install nicely first pass - try again\nnpm install unicode\n# install faker to generate data\nnpm install faker\n# Set environment\nexport MONGODB_URI=\"mongodb://127.0.0.1:27017/hackathon\"\n# Generate some data...\nnode data/fake-refrigerators.js\nnode data/fake-televisions.js\nnode data/fake-cameras.js\nnode data/fake-apparel.js\n# Create the categories...\nnode data/category-seeder.js\n# Now run it...\nnpm run dev\n```\n\n## Usage\n\nOnce vagrant finishes provisioning, ssh into the instance:\n\n```\nvagrant ssh\n```\n\nYou 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.\n\nObtaining API Keys\n------------------\n\nTo use any of the included APIs or OAuth authentication methods, you will need\nto obtain appropriate credentials: Client ID, Client Secret, API Key, or\nUsername \u0026 Password. You will need to go through each provider to generate new\ncredentials.\n\n**MEANStore 1.0 Update:** I have included dummy keys and passwords for\nall API examples to get you up and running even faster. But don't forget to update\nthem with *your credentials* when you are ready to deploy an app.\n\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/1000px-Google_2015_logo.svg.png\" width=\"200\"\u003e\n- Visit \u003ca href=\"https://cloud.google.com/console/project\" target=\"_blank\"\u003eGoogle Cloud Console\u003c/a\u003e\n- Click on the **Create Project** button\n- Enter *Project Name*, then click on **Create** button\n- Then click on *APIs \u0026 auth* in the sidebar and select *API* tab\n- Click on **Google+ API** under *Social APIs*, then click **Enable API**\n- Next, under *APIs \u0026 auth* in the sidebar click on *Credentials* tab\n- Click on **Create new Client ID** button\n- Select *Web Application* and click on **Configure Consent Screen**\n- Fill out the required fields then click on **Save**\n- In the *Create Client ID* modal dialog:\n - **Application Type**: Web Application\n - **Authorized Javascript origins**: http://localhost:3000\n - **Authorized redirect URI**: http://localhost:3000/auth/google/callback\n- Click on **Create Client ID** button\n- Copy and paste *Client ID* and *Client secret* keys into `.env`\n\n**Note:** When you ready to deploy to production don't forget to\nadd your new url to *Authorized Javascript origins* and *Authorized redirect URI*,\ne.g. `http://my-awesome-app.herokuapp.com` and\n`http://my-awesome-app.herokuapp.com/auth/google/callback` respectively.\nThe same goes for other providers.\n\n\u003chr\u003e\n\n\u003cimg src=\"http://www.doit.ba/img/facebook.jpg\" width=\"200\"\u003e\n- Visit \u003ca href=\"https://developers.facebook.com/\" target=\"_blank\"\u003eFacebook Developers\u003c/a\u003e\n- Click **My Apps**, then select **Add a New App* from the dropdown menu\n- Select **Website** platform and enter a new name for your app\n- Click on the **Create New Facebook App ID** button\n- Choose a **Category** that best describes your app\n- Click on **Create App ID** button\n- In the upper right corner click on **Skip Quick Star**\n- Copy and paste *App ID* and *App Secret* keys into `.env`\n - **Note:** *App ID* is **clientID**, *App Secret* is **clientSecret**\n- Click on the *Settings* tab in the left nav, then click on **+ Add Platform**\n- Select **Website**\n- Enter `http://localhost:3000` under *Site URL*\n\n**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](https://stackoverflow.com/questions/7131909/facebook-callback-appends-to-return-url) discussion for ways to handle it.\n\n\u003chr\u003e\n\n## API\n\nMEANStore 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.\n\nTo 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:\n\n```\nhttp://localhost:30000/api/products\n```\n\nThis will expose the entire product catalog collection.\n\n```\n[\n  {\n    \"_id\": \"584aecaaf580422022aea4fb\",\n    \"code\": \"ref1099\",\n    \"name\": \"Generic Plastic Computer Refrigerator\",\n    \"title\": \"Intelligent IVORY Generic Plastic Computer Refrigerator\",\n    \"description\": \"Est enim aut.\",\n    \"taxable\": true,\n    \"shipable\": true,\n    \"price\": 73300,\n    \"Product_Group\": \"Refrigerator\",\n    \"category\": \"Refrigerator\",\n    \"imagePath\": \"/img/samsung-refrigerator.jpg\",\n    \"__v\": 0,\n    \"salesYearMonth\": [],\n    \"salesYTD\": [],\n    \"usersBought\": [],\n    \"categories\": [],\n    \"update\": \"2016-12-09T17:40:58.033Z\",\n    \"created\": \"2016-12-09T17:40:58.033Z\",\n    \"options\": [],\n    \"Attributes\": [],\n    \"likes\": []\n  },\n  ...\n  ```\n\n## Screenshots\n\n- ![Main Catalog](https://raw.githubusercontent.com/mrlynn/meanstore/meanmart/public/images/example_1.png)\n- ![Main Catalog](https://raw.githubusercontent.com/mrlynn/meanstore/meanmart/public/images/example_2.png)\n- ![Main Catalog](https://raw.githubusercontent.com/mrlynn/meanstore/meanmart/public/images/example_3.png)\n\n## Contributing\n\n1. Fork it!\n2. Create your feature branch: `git checkout -b my-new-feature`\n3. Commit your changes: `git commit -am 'Add some feature'`\n4. Push to the branch: `git push origin my-new-feature`\n5. Submit a pull request :D\n\n## Credits / Contributors\n\n- Michael Lynn \u003cmichael.lynn@mongodb.com\u003e\n\n## Next Steps\n\n * [MongoDB Documentation](http://mongodb.org/)\n * [Star us on GitHub](https://github.com/mrlynn/meanstore)\n * [Tweet me](http://twitter.com/mlynn)\n\n## Notes on Installation\n * I received an error during installation... something about node-gyp or faker...\n - You may safely ignore these errors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrlynn%2Fmeanstore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrlynn%2Fmeanstore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrlynn%2Fmeanstore/lists"}