PCInstance is responsive web shop application based on MEAN 2 stack with offline-storage. This project is made to serve as example how to manage client and server as separate applications, usage of web API and local nosql database, given that following features are implemented in this project:
- User registration & login
- Login validation
- Ability to search and filter products
- Users can add products to cart and remove them
- Admin panel
- Route guarding (only accessible as admin user)
- Create / Read / Update / Delete users and products
PCInstance uses a number of open source projects to work properly:
- AngularJS - structural framework for dynamic web apps
- Materializecss - a modern responsive front-end framework based on Material Design
- node.js - evented I/O for the backend
- Express - fast, unopinionated, minimalist web framework for node.js
- Bluebird - full featured promise library with unmatched performance
- Mongodb - open-source cross-platform document-oriented database
- mongoosejs - elegant mongodb object modeling for node.js
And of course PCInstance itself is open source with a MIT license
Install and configure mongodb, change uri variable at cart/products/users (located at server/routes) to match your local database mongodb://ip:port/db
var uri = 'mongodb://127.0.0.1:27017/pcinstance_db';
Install and run application:
$ cd client
$ npm install
$ npm start
$ open new terminal tab
$ cd server
$ npm install
$ npm start
$ Visit http://localhost:8080