Git Product home page Git Product logo

microsoftgraph / nodejs-connect-rest-sample Goto Github PK

View Code? Open in Web Editor NEW
100.0 42.0 55.0 225 KB

[ARCHIVED] Use Microsoft Graph to access a user’s Microsoft account data from within a Node.js web application. This sample sends REST calls directly to the Microsoft Graph endpoint, and authenticates with the Azure AD v2.0 endpoint to support Microsoft Accounts and work or school accounts.

License: MIT License

JavaScript 83.29% CSS 2.21% HTML 11.41% Batchfile 1.81% Shell 1.28%
devxsample

nodejs-connect-rest-sample's Introduction

[ARCHIVED] Microsoft Graph Connect Sample for Node.js

IMPORTANT

This project is being archived and replaced with the Build Node.js Express apps with Microsoft Graph. As part of the archival process, we're closing all open issues and pull requests.

You can continue to use this sample "as-is", but it won't be maintained moving forward. We apologize for any inconvenience.

Table of contents

Introduction

This sample shows how to connect a Node.js app to a Microsoft work or school (Azure Active Directory) or personal (Microsoft) account using the Microsoft Graph API to send an email. In addition, the sample uses the Office Fabric UI for styling and formatting the user experience.

Microsoft Graph Connect Sample for Node.js screenshot

Prerequisites

To use the Microsoft Graph Connect Sample for Node.js, you need the following:

Register the application

  1. Sign into the App Registration Portal using either your personal or work or school account.

  2. Choose Add an app.

  3. Enter a name for the app, and choose Create application.

    The registration page displays, listing the properties of your app.

  4. Copy the Application Id. This is the unique identifier for your app.

  5. Under Application Secrets, choose Generate New Password. Copy the password from the New password generated dialog.

    You'll use the application ID and secret to configure the sample app in the next section.

  6. Under Platforms, choose Add Platform.

  7. Choose Web.

  8. Enter http://localhost:3000/token as the Redirect URI.

  9. Choose Save.

Build and run the sample

  1. Download or clone the Microsoft Graph Connect Sample for Node.js.

  2. Using your favorite IDE or code editor (we love Visual Studio Code), open utils/config.js.

  3. Replace the client_id and client_secret placeholder values with the Application Id and Application secret that you copied during app registration.

  4. In a command prompt, run the following command in the root directory. This installs the project dependencies.

npm install

  1. Run the following command to start the development server.

npm start

  1. Navigate to http://localhost:3000 in your web browser.

  2. Choose the Connect button.

  3. Sign in with your personal or work or school account and grant the requested permissions.

  4. Optionally edit the recipient's email address, and then choose the Send mail button. When the mail is sent, a Success message is displayed below the button.

Note: To understand the code for calling the Microsoft Graph API in a Node.js app, see Get started with Microsoft Graph in a Node.js app.

Questions and comments

We'd love to get your feedback about the Microsoft Graph Connect Sample for Node.js. You can send your questions and suggestions in the Issues section of this repository.

Questions about Microsoft Graph development in general should be posted to Stack Overflow. Make sure that your questions or comments are tagged with [microsoftgraph].

Contributing

If you'd like to contribute to this sample, see CONTRIBUTING.MD.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Additional resources

Copyright

Copyright (c) 2016 Microsoft. All rights reserved.

nodejs-connect-rest-sample's People

Contributors

andrewjmay avatar chrisdias avatar davidchesnut avatar iambmelt avatar imagentleman avatar jasonjoh avatar martellaj avatar o365devx avatar ricalo avatar tadaomachida avatar tsekityam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nodejs-connect-rest-sample's Issues

Unable to read JSON request payload.

I get the error :
"{
"error": {
"code": "BadRequest",
"message": "Unable to read JSON request payload. Please ensure Content-Type header is set and payload is of valid JSON format.",
"innerError": {
"request-id": "c9608a1e-84c8-4aae-bb2c-09b7dc16ed8c",
"date": "2017-02-04T14:37:28"
}
}
}"

“Insufficient privileges to complete the operation” for Office365 API

This was also posted on Stack Overflow here.

I'm working on this example code found here on github nodejs-connect-rest-sample it starts a server on port 3000. Then redirects to microsoft to login.

enter image description here

And this screen to provide access to the app.

enter image description here

Then this is the page microsoft redirects back to.

enter image description here

Here's the error in text form.

403 Forbidden

{
  "error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation.",
    "innerError": {
      "request-id": "6fca4864-c043-4aa6-b312-39cbe2ae4c41",
      "date": "2017-08-04T17:42:04"
    }
  }
}
Error: Forbidden
    at Request.callback (/Users/thomasreggi/Desktop/nodejs-connect-rest-sample/node_modules/superagent/lib/node/index.js:675:11)
    at /Users/thomasreggi/Desktop/nodejs-connect-rest-sample/node_modules/superagent/lib/node/index.js:883:18
    at IncomingMessage.<anonymous> (/Users/thomasreggi/Desktop/nodejs-connect-rest-sample/node_modules/superagent/lib/node/parsers/json.js:16:7)
    at emitNone (events.js:110:20)
    at IncomingMessage.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1045:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)

I've tried digging through the Office 365 dashboard to provide access to my developer account. I found this screen that says I'm a "Global administrator".

enter image description here

How can I get access?

getting invalid request errors & reply url errors while deploying as azure site

Ive Deployed the Node js web app as .azurewebsites.net , while connecting to the graph getting errors like invalid request with & unable to validate token also error AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application even though the right redirect is configured. Please help or suggest how to deploy the nodejs app to azure site

Mismatched Redirect URL using the MS Graph quick-start page

A sample app generated using the Microsoft Graph quick-start page fails to operate correctly due to a mismatch between the Redirect URL configured for the application. The quick start sets this parameter to http://localhost:3000/login, while the sample code seems to expect it set to http://localhost:300/token

Without modification, the user ends up with an error message page that says:

We're unable to complete your request

Microsoft account is experiencing technical problems. Please try again later.

Unfortunately, this is a misleading and non-actionable error message. The URL for this page actually includes a query string that seems designed to allow for a better error message to be displayed, but this is unfortunately not used.

Sample: Error message URL: https://login.live.com/err.srf?lc=1033#error=invalid_request&error_description=The+provided+value+for+the+input+parameter+'redirect_uri'+is+not+valid.+The+expected+value+is+'https://login.live.com/oauth20_desktop.srf'+or+a+URL+which+matches+the+redirect+URI+registered+for+this+client+application.&state=a9SlXZGisoIQrPQUbDHX732izad7LJzM

Sample totally not working

Everytime saying Bad Request after successful login. Thats always, everywhere and on several machines.

"The user or administrator has not consented to use the application"

I've created an app at https://apps.dev.microsoft.com and configured the example as mentioned at https://graph.microsoft.io/en-us/docs/get-started/nodejs

After clicking the login button the example redirects me to the Microsoft login page where I enter my credentials and accept that the app will be able to User.Read. After successfully logging in Microsoft redirects me back to the example, with an auth code in the query parameter "code" - as it should be.

However, this is where the example code crashes. Console output (unnecessary info redacted):

GET / 302 0.709 ms - 54
GET /login 304 2.611 ms - -
GET /stylesheets/style.css 304 0.727 ms - -
AADSTS65001: The user or administrator has not consented to use the application with ID 'APPLICATIONID'. Send an interactive authorization request for this user and resource.
Trace ID: 4a246de5-9dc9-4a96-9458-a17c894776cd
Correlation ID: a8e10a23-9aa7-40b3-89ad-4f2272742356
Timestamp: 2016-12-06 12:03:38Z
GET /login?code=CODE&session_state=SESSIONSTATE 500 380.747 ms -

I consented to use the app at the Microsoft login page. What am I missing?

Getting the following exception?

Not Found

Error: Not Found
at IncomingMessage. (/home/brian/nodejs-connect-rest-sample-master/requestUtil.js:79:17)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:934:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)

Constant redirect when logging in

Getting generic error "Error: Not Found" nodejs-connect-rest-sample\requestUtil.js:80:17

Error on screen after click "send email"


Error: Not Found
at IncomingMessage. (C:\Workspaces\jsprojects\nodejs-connect-rest-sample\requestUtil.js:80:17)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:921:12)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)


  1. Pulled the project
  2. registered a app in https://apps.dev.microsoft.com with my corporate email id ( 0365)
  3. configured client_id/client_secret
  4. ran npm start
  5. app showed up
  6. logged in microsoft and after success
  7. clicked "send mail" ..got the above error

my aim is to use graph api for our apps to email/post doc into sharepoint2013

Quickstart fails w/ TypeError: Cannot read property 'render' of undefined

Environment
node v6.10.3
npm 3.10.10

Repro

  1. From https://developer.microsoft.com/en-us/graph/graph/quick-start create a new NodeJS project. With copy/paste of application secret.

  2. Download/unzip the generated sample application. At a command prompt in resulting directory:

    npm I
    npm start
    
  3. Start web browser at http://localhost:3000

Results

connect and login work as expected, but when I press the "send mail" button, the node app crashes

C:\try\nodejs-connect-rest-sample-master\routes\index.js:139
res.render('error', {
^

TypeError: Cannot read property 'render' of undefined
at renderError (C:\try\nodejs-connect-rest-sample-master\routes\index.js:139:6)
at graphHelper.getProfilePhoto (C:\try\nodejs-connect-rest-sample-master\routes\index.js:73:19)
at request.get.set.end (C:\try\nodejs-connect-rest-sample-master\utils\graphHelper.js:35:6)
at Request.callback (C:\try\nodejs-connect-rest-sample-master\node_modules\superagent\lib\node\index.js:688:3)
at C:\try\nodejs-connect-rest-sample-master\node_modules\superagent\lib\node\index.js:883:18
at IncomingMessage.<anonymous> (C:\try\nodejs-connect-rest-sample-master\node_modules\superagent\lib\node\parsers\json.js:16:7)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:80:11)

Invalid value for redirectUrl

hello,
I follow all the steps to setup this repo, but I get this error:
TypeError: Invalid value for redirectUrl.The URL must be valid and be https://

My config.js contains redirectUrl: 'https://localhost:3000/'

Any hint?
Thank you

QuickStart README.md references non-existent files.

The README in the zip archive provided by quickstart has incorrect instructions, referencing some non-existent .js configuration files. The repo README is correct and it looks like the quickstart archive just needs updating.

Using http for redirectUrl is not recommended, please consider using https

Hi:
I try to run the JavaScript demo code in nodejs,but it rutern an error page in chrome browser.When i sign into my Account,it give me an error tips in nodejs terminal window:"Using http for redirectUrl is not recommended, please consider using https",It is that http protocol doesn't support any more?

chrome version:62.0.3202.94
nodejs version:6.9.2
redirectUrl:http://localhost:3000/login

--update
I am sorry that I have forgot to change to redirectUrl in my web project ,and it have no errors now.
thanks

Unable to connect to microsoft graph

Hi,
After clicking "Connect to Microsoft Graph" still the page does not load anything. It stops in the main page itself.

Any suggestions how to resolve this issue.

TypeError: Cannot read property '0' of undefined

Cloned the repo, created the app, configured the client id and secret.
The app runs at localhost:3000, authorization recognizes my app and when I allow it, the app goes back to localhost:3000 but throws the following error:

TypeError: Cannot read property '0' of undefined
    at renderSendMail (D:\Desktop\react\nodejs-connect-rest-sample\routes\index.js:60:43)
    at router.get (D:\Desktop\react\nodejs-connect-rest-sample\routes\index.js:29:5)
    at Layer.handle [as handle_request] (D:\Desktop\react\nodejs-connect-rest-sample\node_modules\express\lib\router\layer.js:95:5)
    at next (D:\Desktop\react\nodejs-connect-rest-sample\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (D:\Desktop\react\nodejs-connect-rest-sample\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (D:\Desktop\react\nodejs-connect-rest-sample\node_modules\express\lib\router\layer.js:95:5)
    at D:\Desktop\react\nodejs-connect-rest-sample\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (D:\Desktop\react\nodejs-connect-rest-sample\node_modules\express\lib\router\index.js:335:12)
    at next (D:\Desktop\react\nodejs-connect-rest-sample\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (D:\Desktop\react\nodejs-connect-rest-sample\node_modules\express\lib\router\index.js:174:3)

500 Internal Server Error

I tried the sample on my Windows 10 Pro(ver1803 build 17134.345) PC, but it does not work well.
I started the node sample as described in the tutorial.

>pwd
C:\Users\hogehoge\Desktop\code\nodejs-connect-rest-sample-master\starter-project
>node --version
v8.9.4
>npm start
> [email protected] start C:\Users\hogehoge\Desktop\code\nodejs-connect-rest-sample-master\starter-project
> mocha ./tests/confTest.js && node ./bin/www
  ADAL
    √ Checking clientID and clientSecret in config.js
  1 passing (5ms)

{"name":"AzureAD: OIDC Passport Strategy","hostname":"hoge123","pid":16716,"level":40,"msg":"Production environments should always validate the issuer.","time":"2018-10-27T14:59:19.256Z","v":0}
{"name":"AzureAD: OIDC Passport Strategy","hostname":"hoge123","pid":16716,"level":40,"msg":"Using http for redirectUrl is not recommended, please consider using https","time":"2018-10-27T14:59:19.258Z","v":0}

Listening on port 3000

I executed the SendMail button at http: // localhost: 3000 but Internal Server Error is displayed.
image

500 Internal Server Error
{
  "error": {
    "code": "InternalServerError",
    "message": "Unexpected end when reading token. Path 'Attachments[0]'.",
    "innerError": {
      "request-id": "b16c1817-72bc-4561-af57-8e466b335f27",
      "date": "2018-10-27T15:34:29"
    }
  }
}
Error: Internal Server Error
    at Request.callback (C:\Users\hogehoge\Desktop\code\nodejs-connect-rest-sample-master\starter-project\node_modules\superagent\lib\node\index.js:706:15)
    at parser (C:\Users\hogehoge\Desktop\code\nodejs-connect-rest-sample-master\starter-project\node_modules\superagent\lib\node\index.js:916:18)
    at IncomingMessage.res.on (C:\Users\hogehoge\Desktop\code\nodejs-connect-rest-sample-master\starter-project\node_modules\superagent\lib\node\parsers\json.js:19:7)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1055:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)

Am I something wrong?

Poor handling of undefined profile fields

Running this sample, after resolving the login problem, I get the following exception, which seems to be caused by undefined fields in req.user.profile

TypeError: Cannot read property '0' of undefined
    at renderSendMail (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\routes\index.js:60:43)
    at router.get (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\routes\index.js:29:5)
    at Layer.handle [as handle_request] (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\node_modules\express\lib\router\layer.js:95:5)
    at next (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\node_modules\express\lib\router\layer.js:95:5)
    at c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\node_modules\express\lib\router\index.js:335:12)
    at next (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (c:\try\AppIDEx\nodejs-connect-rest-sample\nodejs-connect-rest-sample-master\node_modules\express\lib\router\index.js:174:3)

sample doesn't render the "emailSender" view

Trying to use this sample.. it prompts for signing in and consent, but afterwards it lands back on the home page (w/ the Connect to Microsoft Graph button).
I see the request to the /token?code=...&state=... endpoint, but it redirects to the passport failure endpoint, which is '/'.
How can I get some additional info on why the authentication failed?

Config Confusion

Within the Configure and run the app portion of the README.md there's a file mentioned authHelper.js which isn't found anywhere in the app.

I've managed to find the config file I believe to be referenced. Except there's two!

  • master/starter-project/utils/config.js
  • master/utils/config.js

Also something that needs to be clarified is that client and application are indeed the same? Because the Azure Dashboard says ApplicationID and ApplicationSecret and this example code uses the words ClientId and ClientSecret.

sendMail Function seem not working

I can login through the first step here it is

Hi, PATHOMPONG CHAISRI (GABLE-NBP-EM)!

You're now connected to Microsoft Graph. Click the button below to send a message from your account using the Microsoft Graph API.

but when I try to send an email it's say

This page isn’t working

localhost didn’t send any data.

screen shot 2560-06-08 at 10 28 35 am

screen shot 2560-06-08 at 10 36 08 am

here is my log

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle [email protected]prestart: [email protected]
6 silly lifecycle [email protected]
prestart: no script for prestart, continuing
7 info lifecycle [email protected]start: [email protected]
8 verbose lifecycle [email protected]
start: unsafe-perm in lifecycle true
9 verbose lifecycle [email protected]start: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/st4rboy/Desktop/Intern/nodejs-connect-rest-sample-master/node_modules/.bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
10 verbose lifecycle [email protected]
start: CWD: /Users/st4rboy/Desktop/Intern/nodejs-connect-rest-sample-master
11 silly lifecycle [email protected]start: Args: [ '-c', 'mocha ./tests/confTest.js && node ./bin/www' ]
12 silly lifecycle [email protected]
start: Returned: code: 1 signal: null
13 info lifecycle [email protected]~start: Failed to exec start script
14 verbose stack Error: [email protected] start: mocha ./tests/confTest.js && node ./bin/www
14 verbose stack Exit status 1
14 verbose stack at EventEmitter. (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
14 verbose stack at emitTwo (events.js:106:13)
14 verbose stack at EventEmitter.emit (events.js:191:7)
14 verbose stack at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack at emitTwo (events.js:106:13)
14 verbose stack at ChildProcess.emit (events.js:191:7)
14 verbose stack at maybeClose (internal/child_process.js:886:16)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid [email protected]
16 verbose cwd /Users/st4rboy/Desktop/Intern/nodejs-connect-rest-sample-master
17 error Darwin 16.6.0
18 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
19 error node v6.10.3
20 error npm v3.10.10
21 error code ELIFECYCLE
22 error [email protected] start: mocha ./tests/confTest.js && node ./bin/www
22 error Exit status 1
23 error Failed at the [email protected] start script 'mocha ./tests/confTest.js && node ./bin/www'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the nodejs-microsoft-graph-connect package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error mocha ./tests/confTest.js && node ./bin/www
23 error You can get information on how to open an issue for this project with:
23 error npm bugs nodejs-microsoft-graph-connect
23 error Or if that isn't available, you can get their info via:
23 error npm owner ls nodejs-microsoft-graph-connect
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]

Questionable URL in CONTRIBUTING.MD

The CONTRIBUTING.MD instructions include instructions to issue the following command:

git remote add upstream https://github.com/OfficeDev/microsoft-graph-docs.git

The OfficeDev URL above seems questionable for this project. Is stale information from another project?

Refresh Token returned is always undefined

The Refresh Token returned from 'getTokenFromCode' is always undefined. Within AuthHelper the oauth nodejs libary is used. Looks like this method 'getOAuthAccessToken' in the library doesn't return the Refresh Token or am I missing something here?

Questionable URL in CONTRIBUTING.MD

The CONTRIBUTING.MD instructions include instructions to issue the following command:

git remote add upstream https://github.com/OfficeDev/microsoft-graph-docs.git

The OfficeDev URL above seems questionable for this porject? Is stale information from another project?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.