A non-trivial Node.js application, built on top of PayPal's Kraken.js framework. This app demonstrates a basic shopping cart and CRUD inventory management capability.
[MongoDB](www.mongodb.com) is used to manage the internal inventory system, and payments are simulated using PayPal's REST SDK against their Sandbox API environment, [api.sandbox.paypal.com](api.sandbox.paypal.com).
This example was built from the [Kraken.js Shopping Cart Tutorial](https://github.com/lmarkus/Kraken_Example_Shopping_Cart). ## Known Issues + AppDynamics is not recognizing HTTP calls to PayPal as backend HTTP transactions
Node.js v0.8+ is required.
MongoDB must be installed and running on the localhost using the default port 27017. MongoDB can be quickly started using ${MONGO_ROOT}/bin/mongod.
You can point to a different, or remote, instance of MongoDB by updating ${APP_ROOT}/config/app.json.
The AppDynamics 3.8 Node.js Beta Agent has been installed as part of the application using npm install, it is installed to ${APP_ROOT}/node_modules/appdynamics.
The Agent is enabled, and configured, in ${ROOT_DIR}/index.js. Update the Controller: HostName, Port, Application Name, Tier Name, and Node name as needed.
`require("appdynamics").profile({
controllerHostName: '127.0.0.1',
controllerPort: 8090,
accountName: '', //Required for a controller running in
multi-tenant mode.accountAccessKey: '', //Required for a
controller running in multi-tenant mode.
applicationName: 'Kraken.js Shopping Cart',
tierName: 'Shopping Cart',
nodeName:'osxltsturt', //Prefix to the full node name.
debug: true //Debug is optional; defaults to false.
});`
#Starting the Application From ${APP_ROOT}, running npm start will launch the shopping cart application. By default, you can access the app at: http://127.0.0.1:8000/.
NOTE There is a bug on the product page displaying item price.
#Generating Load with JMeter An Apache JMeter script is included in ${APP_ROOT}/test/KrakenShoppingCart.jmx.
To run the jmeter test, download the latest Apache JMeter and the Extras Set of plugins from jmeter-plugins.org .
##JMeter Plugins Installation Guide The included JMeter script uses the Utlimate Thread Group, and a Transactions / Second display which is not included in the base jmeter installation. To add the Plugins extensions:
- Go to downloads page
- Choose the plugins set according to your tasks (or get all of them if you want to explore all existing plugins)
- Extract archive contents to JMeter installation directory, the plugins should install to ${JMETER_HOME}/lib
- Restart JMeter to load new plugins


