Comments (10)
I've tried to reproduce the error, but couldn't. Try running bower install --save stormpath-sdk-angularjs
again. There might have been an issue when you were downloading from bower. Also, there might be more to the stack trace than what you are finding, and adding files manually won't solve the issue. Since you're not too far head in the tutorial, I'd simply try to go through the instructions and install the dependencies again.
from stormpath-sdk-angularjs.
I started the tutorial from scratch, and followed the steps carefully. After performing the step: Add Stormpath to the Angular Application,
the client tests still fail when executed from the command line (grunt test:client) .
Here is the error with the full stack trace:
PhantomJS 1.9.8 (Mac OS X 0.0.0) Controller: MainCtrl should attach a list of things to the scope FAILED
Error: [$injector:modulerr] Failed to instantiate module dashboardApp due to:
Error: [$injector:modulerr] Failed to instantiate module stormpath due to:
Error: [$injector:nomod] Module 'stormpath' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.4.0/$injector/nomod?p0=stormpath
at /Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:1955
at ensure (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:1877)
at module (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:2192)
at /Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4338
at forEach (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:336)
at loadModules (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4364)
at /Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4339
at forEach (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:336)
at loadModules (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4364)
at createInjector (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4248)
at workFn (/Users/aaron/Development/my-angular-project/client/bower_components/angular-mocks/angular-mocks.js:2409)
http://errors.angularjs.org/1.4.0/$injector/modulerr?p0=stormpath&p1=Error%3A%20%5B%24injector%3Anomod%5D%20Module%20'stormpath'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.4.0%2F%24injector%2Fnomod%3Fp0%3Dstormpath%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A1955%0A%20%20%20%20at%20ensure%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A1877)%0A%20%20%20%20at%20module%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A2192)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4338%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A336)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4364)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4339%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A336)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4364)%0A%20%20%20%20at%20createInjector%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4248)%0A%20%20%20%20at%20workFn%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular-mocks%2Fangular-mocks.js%3F88564a421ab0312bc0e077aecc890729894fa256%3A2409)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A1145%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A2177%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A2167
at /Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4362
at forEach (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:336)
at loadModules (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4364)
at /Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4339
at forEach (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:336)
at loadModules (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4364)
at createInjector (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4248)
at workFn (/Users/aaron/Development/my-angular-project/client/bower_components/angular-mocks/angular-mocks.js:2409)
http://errors.angularjs.org/1.4.0/$injector/modulerr?p0=dashboardApp&p1=Error%3A%20%5B%24injector%3Amodulerr%5D%20Failed%20to%20instantiate%20module%20stormpath%20due%20to%3A%0AError%3A%20%5B%24injector%3Anomod%5D%20Module%20'stormpath'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.4.0%2F%24injector%2Fnomod%3Fp0%3Dstormpath%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A1955%0A%20%20%20%20at%20ensure%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A1877)%0A%20%20%20%20at%20module%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A2192)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4338%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A336)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4364)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4339%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A336)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4364)%0A%20%20%20%20at%20createInjector%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4248)%0A%20%20%20%20at%20workFn%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular-mocks%2Fangular-mocks.js%3F88564a421ab0312bc0e077aecc890729894fa256%3A2409)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A1145%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A2177%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A2167%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.4.0%2F%24injector%2Fmodulerr%3Fp0%3Dstormpath%26p1%3DError%253A%2520%255B%2524injector%253Anomod%255D%2520Module%2520'stormpath'%2520is%2520not%2520available!%2520You%2520either%2520misspelled%2520the%2520module%2520name%2520or%2520forgot%2520to%2520load%2520it.%2520If%2520registering%2520a%2520module%2520ensure%2520that%2520you%2520specify%2520the%2520dependencies%2520as%2520the%2520second%2520argument.%250Ahttp%253A%252F%252Ferrors.angularjs.org%252F1.4.0%252F%2524injector%252Fnomod%253Fp0%253Dstormpath%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A1955%250A%2520%2520%2520%2520at%2520ensure%2520(http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A1877)%250A%2520%2520%2520%2520at%2520module%2520(http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A2192)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A4338%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A336)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A4364)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A4339%250A%2520%2520%2520%2520at%2520forEach%2520(http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A336)%250A%2520%2520%2520%2520at%2520loadModules%2520(http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A4364)%250A%2520%2520%2520%2520at%2520createInjector%2520(http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular%252Fangular.js%253Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%253A4248)%250A%2520%2520%2520%2520at%2520workFn%2520(http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fclient%252Fbower_components%252Fangular-mocks%252Fangular-mocks.js%253F88564a421ab0312bc0e077aecc890729894fa256%253A2409)%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fnode_modules%252Fkarma-jasmine%252Flib%252Fjasmine.js%253F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%253A1145%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fnode_modules%252Fkarma-jasmine%252Flib%252Fjasmine.js%253F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%253A2177%250A%2520%2520%2520%2520at%2520http%253A%252F%252Flocalhost%253A8080%252Fbase%252Fnode_modules%252Fkarma-jasmine%252Flib%252Fjasmine.js%253F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%253A2167%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4362%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A336)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4364)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4339%0A%20%20%20%20at%20forEach%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A336)%0A%20%20%20%20at%20loadModules%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4364)%0A%20%20%20%20at%20createInjector%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular%2Fangular.js%3Fa8801ba98c78d07cf4bb6282c977b19635e11eb6%3A4248)%0A%20%20%20%20at%20workFn%20(http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fclient%2Fbower_components%2Fangular-mocks%2Fangular-mocks.js%3F88564a421ab0312bc0e077aecc890729894fa256%3A2409)%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A1145%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A2177%0A%20%20%20%20at%20http%3A%2F%2Flocalhost%3A8080%2Fbase%2Fnode_modules%2Fkarma-jasmine%2Flib%2Fjasmine.js%3F437512c57124d57f5ec77e2e82bfb4e3cdd15cce%3A2167
at /Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4362
at forEach (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:336)
at loadModules (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4364)
at createInjector (/Users/aaron/Development/my-angular-project/client/bower_components/angular/angular.js:4248)
at workFn (/Users/aaron/Development/my-angular-project/client/bower_components/angular-mocks/angular-mocks.js:2409)
TypeError: 'undefined' is not an object (evaluating '$httpBackend.flush')
at /Users/aaron/Development/my-angular-project/client/app/main/main.controller.spec.js:25
PhantomJS 1.9.8 (Mac OS X 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.108 secs / 0.022 secs)
from stormpath-sdk-angularjs.
Yes, I got the same error running grunt test:client
, but I think this error has to do with Angular-Fullstack and not Stormpath. Have you tried simply running grunt serve
? That should work.
from stormpath-sdk-angularjs.
Yes, grunt serve
works fine. The point is I'm evaluating using Stormpath for a production app and I need to write testable code. I would think this would be important for you all as well.
I've played around with this some more and found that the following steps seem to fix the issue:
-
add
'client/bower_components/stormpath-sdk-angularjs/dist/stormpath-sdk-angularjs.js',
'client/bower_components/stormpath-sdk-angularjs/dist/stormpath-sdk-angularjs.tpls.min.js',
to thefiles
in karma.conf.js -
Use Chrome instead of PhantomJS for the browser:
browsers: ['Chrome'],
in karma.conf.js
Then you get a more reasonable test failure:
Error: Unexpected request: GET /api/users/current
Expected GET /api/things
The stormpath-sdk-angular.js uses ES5.1 Function.prototype.bind which doesn't seem to be implemented in PhantomJS. (This is unfortunate when you recommend angular-fullstack and it is the default test browser).
from stormpath-sdk-angularjs.
Disclaimer: I don't work for Stormpath and I am a pretty new developer.
Anyway, what you stated about including all the libraries into Karma, is apparently what you need to do to get the tests working initially.
For the second issue, the error seems to be coming from trying to get the route /api/things
, but /api/users/current
(from stormpath-sdk-express) is getting in the way. Both are called when you get to the front page, and both are called when you log in. Anyway, I think that there might be an issue with the test itself, and looking at the tests for the other controllers, you'll see that they are very generic.
from stormpath-sdk-angularjs.
Hi @schinkowitch , thank you for reporting this. At the moment we don't have a recommendation for a testing framework, so take anything you see created by Angular-Fullstack is merely an example. Please note that this module is still beta.
Perhaps you could use the ES5 shim with Phantom?
Regarding the 'Unexpected request' error, I believe that is coming from Angular's mock $http service
Hopefully these comments help, In lieu of formal instructions for testing.
from stormpath-sdk-angularjs.
Ok, thanks. Using the ES5 shim with PhantomJS will probably work. I got the test to run on PhantomJS by using Mozilla's Polyfill here.
The "Error: Unexpected request: GET /api/users/current" test failure is reasonable as the sdk is checking to see if the user is logged in. It's a one line fix in the test.
from stormpath-sdk-angularjs.
Hi @schinkowitch, what was the "one line fix..." that resolved this issue for you?
As soon as I add stormpath and stormpath.templates as application dependencies, all but a few of my tests fail with that same error: "Error: Unexpected request:".... and it is because SP is checking to see if the user is loogged-in. But my tests are not expecting these calls.
Can you share the one-line fix that worked for you in your tests?
from stormpath-sdk-angularjs.
Actually, I was able to figure it out:
$httpBackend.expectGET(CURRENT_USER_URI).respond(200, {});
from stormpath-sdk-angularjs.
Note: the angular fullstack generator has dropped support for vanilla JS in 3.x, so when following the guide, you need to install the generator with:
npm install -g [email protected]
from stormpath-sdk-angularjs.
Related Issues (20)
- Add user management example
- Request for npm support HOT 3
- Add focus to fields in login, registration and forgot password forms HOT 1
- Release 1.1.0 not available on GitHub or Bower HOT 1
- sp-social-login directive expects itself to be in an ng-repeat scope within sp-login-form
- Update TROUBLESHOOTING.md
- Add support for data.authorities as alternative to sp.authorize.group
- Support for multi-group access control? HOT 2
- Detecting groups through a service HOT 1
- defaultPostLoginState not always first call after login HOT 3
- Is $auth.endSession() compatible with ID Site?
- Dependency issue when using UI-Router 0.3 HOT 5
- Please add docs for how to use Social Login V2
- Please add docs for how to do email verification in the getting started
- Please provide status on Angular 2 integration HOT 3
- Mention and link to Angular SDK in README
- Npm module not installing - Sinopia has been shut down HOT 1
- UI-Router ^1.0.0 deprecates state change events and breaks state config 'authenticate' property handling. HOT 1
- IE11: $isCurrentDomain returns false for https domains
- Problem with refresh_token request
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stormpath-sdk-angularjs.