Git Product home page Git Product logo

twitter-sentiment-visualisation's Introduction

๐ŸŒ Twitter Sentiment Visualisations

Visualising sentiment trends from real-time social media data
sentiment-sweep.com

Important

As of Feb 2023, X no longer provides free API. This makes it impractical to continue running this app afforably or at scale.

Further to this, now that general purpose AI models are faster, more availible and less expensive than ever before, the static analysis approach (used here) no longer makes sense, given that AI sentiment analysis will yeild much more accurate and insightful results.

For these reasons, the public instance of Sentiment Sweep is no longer availible, and this project will cease to be maintained going forwards.

We had a good run! The Sentiment Sweep website ran for nearly a decade, saw upwards of 1 million sessions, and won 2 awards. It was a great learning experience, and a fun little project. Thank you everybody who used, supported and visited the website! ๐Ÿ’–

Contents

About

What

A project to make large quantities of social media data more understandable.

How

The app that streams live social media data, and runs it through a custom sentiment analysis algorithm, to determine trends which are then visualised with a series of dynamic real-time charts.

Why

The aim of the app is to allow trends to be found between sentiment and other factors such as geographical location, time of day, demographics, similar topics, etc.

It has a range of uses, like analysing the effectiveness of a marketing campaign, comparing competing products, viewing local trends, gauging public opinion by location, determining best time of day to advertise to certain audiences, etc.

Where

A live demo is available at: http://sentiment-sweep.com (archived)

When

This project was initially developed in 2015. Some of the technologies used are a little out-dated now, although the app still works great. A few of the external services that were used to provide additional context (like HP Idol on Demand, and IBM Watson, and certain GCP features) have been discontinued, meaning certain features may now be unavailible on the live instance.


Building

Developing

See the Dev Setup docs for local dev setup.

  1. Prerequisites - You will need Node.js, MongoDB and git installed on your system.
  2. Get the files - git clone https://github.com/Lissy93/twitter-sentiment-visualisation.git tsv then cd tsv
  3. Install dependencies - npm i / yarn will download requirements into node_modules, then automatically kick off a bower install for frontend libraries
  4. Set Config - yarn run config will generate the config\src\keys.coffee file, which you will then need to populate with your API keys and save. 5. Apply Settings - Check that your happy with the general app config in config/src/app-config.coffee
  5. Build Project - yarn build will compile the project from the source, outputting files into dist ready to be published
  6. Start MongoDB - mongod will start a MongoDB instance (run in separate terminal instance, see instructions: Starting a MongoDB instance)
  7. Run the project - yarn dev will build, start the dev server, with live-reload and auto-testing
  8. Open Browser - Navigate to the specified port, to view running app, e.g. http://localhost:8080

Deploying

See the [Prod Deployment(/docs/build-environment.md) docs for more info.

Follow the instructions above, then

  1. Execute Tests - yarn test Ensure all tests pass and everything is working as expected
  2. Build for Prod - yarn build Compile all source files to the dist directory
  3. Start Server - yarn start Spin up HTTP server to start API and serve up compiled files

Testing

See the Test Strategy Docs for more info.
TSV is fully unit tested, and follows a BHD pattern. Unit, integration, coverage and depencency tests can be run using yarn test.

Pass/ Fail Criteria
Test Type Pass Condition
Functional Testing All acceptance criteria must be met, checked and documented
Unit Tests 100% of unit tests must pass. It will be immediately clear when a unit test is failing
Integration Tests 100% pass rate after every commit
Coverage Tests 80% or greater
Code Reviews B grade/ Level 4 or higher. Ideally A grade/ Level 5 if possible.
Dependency Checks Mostly up-to-date dependencies except in justified circumstances.
Testing Tool
  • Framework - Mocha
    • Used in order to store, write and run the tests in a structured way
  • Assertion Library - Chai
    • Provides a structure and syntax in order to actually write the test cases
  • Coverage Testing - Istanbul
    • Measures the proportion of your source code that is covered by your unit tests
  • Stubs, Spies and Mocking - Sinon.js
    • Mocking removes the need to call production APIs while running frontend unit tests
  • Continuous Integration Testing - Travis CI
    • Ensures that all the standalone modules function correctly when put together
  • Dependency Checking - David
    • Checks that each dependency is present, correct, secure and functional
  • Automated Code Review's - Code Climate
    • Scans for best practices, and fails in any part of the code could be improved upon
  • Headless Browser Testing - PhantomJS
    • Runs frontend tests without the need for a GUI browser
  • Testing HTTP services - SuperTest
    • Tests API endpoints and ensures routing is working correctly

Automated Workflows

TSV uses the Gulp streaming build tool to automate the prod and dev workflows. For more info, see the Build Environment docs.

The following tasks are useful for getting started:

  • gulp generate-config - Generates correctly structured default configuration files for settings and API keys
  • gulp build - Builds the project fully, including optimization, compilation, minification and validation
  • gulp nodemon - Runs the application on the default port (probably 8080), with live refresh
  • gulp test - Executes all unit and coverage tests, and generates a report containing the results
  • gulp - Default dev task - check the project is configured correctly, build ALL the files, run the server, watch for changes, recompile relevant files and reload browsers on change, and keep all browsers in sync, when a test condition changes it will also re-run tests - a lot going on!

Modules

The project was developed in a modular approach, made up of several distinct components. Each is published as a fully tested, documented and MIT-licensed NPM module for easy re-use.

  • sentiment-analysis - Useses AFINN-111 approach to calculate overall sentiment of a given sentence
  • fetch-tweets - Fetches tweets from Twitter based on topic, location, timeframe or combination
  • stream-tweets - Streams live Twitter data in real-time, based on location, given term, etc
  • remove-words - Removes all non-key words from a given string
  • place-lookup - Finds the latitude and longitude for any fuzzy place name using the Google Places API
  • hp-haven-sentiment-analysis - A Node.js client library for HP Haven OnDemand Sentiment Analysis module
  • haven-entity-extraction - Node.js client for HP Haven OnDemand Entity Extraction
  • tweet-location - Calculates the location from geo-tagged Tweets using the Twitter Geo API
  • find-region-from-location - Given a latitude and longitude calculates which region that point belongs in

Project Info

Project Planning

A set of User Stories with Acceptance Criteria and Complexity Estimates were drawn up outlining what features the finished solution should have. These were expaned upon further with wireframes in the Methodology section.

Technologies

View full tech stack at: stackshare.io/Lissy93/sentiment-sweep

The backend is primarily written in Node.js, with web-sockets facilitating the real-time communication with the frontend, and a data cache stored in MongoDB. Pages are rendered isomorphically, with data visualizations written using D3.js. Social data is fetched from Twitter, compute happens locally, and a few external APIs were used to provide additional context in the form of AI. Views are written in Pug, styles in Less, scripts in CoffeeScript and everything is compiled via a Gulp script.

The project and app are still functional, however 5 years on, this would not be an ideal tech stack. There are now better technologies available that would enable greater performance, less code, easier project management and improved developer experience. If I was to re-write this project in 2022, a better tech stack would likely be Go for the backend, Svelte + Svelte Kit for the frontend and TypeScript for the code, with Pixi.js for the interactive content, styled-components for styling and Rollup for putting it all together.

Status

Build Status View on Snyk Code Climate Size Website

Demo

A live demo of the application has been deployed to: http://sentiment-sweep.com

View Screenshots of each screen in the docs.

Screenshots

Awards

Alicia Sykes - StartHack Winner Alicia Sykes - Oxford Winner

The first stages of the project were developed at StartHack Switzerland 2014, where it won first-place.

It was then further expanded upon, and used as part of my undergraduate thesis, where it won the Oxford BCS best Dissertation Award.




The University Project recieved 96%, so feel free to use it as an example - here's the Final Report in PDF format (warning - it's 300 pages!). And the deck used for the technical presentation, us available at: presentation.sentiment-sweep.com


Documentation


License

twitter-sentiment-visualisation was developed by Alicia Sykes, licensed under MIT ยฉ 2014 - 2022.

For information, see TLDR Legal > MIT

The MIT License (MIT)
Copyright (c) Alicia Sykes <[email protected]> 

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sub-license, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be
included install copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANT ABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

ยฉ Alicia Sykes 2015 - 2020
Licensed under MIT

Thanks for visiting :)

twitter-sentiment-visualisation's People

Contributors

gitter-badger avatar ianmyles avatar liss-bot avatar lissy93 avatar nguyendviet 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

twitter-sentiment-visualisation's Issues

issue in yarn run config

image

C:\Users\user\twitter-sentiment-visualisation>yarn run config
yarn run v1.22.4
$ gulp generate-config && start notepad 'config\src\keys.coffee'
fs.js:35
} = primordials;
^

ReferenceError: primordials is not defined
at fs.js:35:5
at req_ (C:\Users\user\twitter-sentiment-visualisation\node_modules\natives\index.js:143:24)
at Object.req [as require] (C:\Users\user\twitter-sentiment-visualisation\node_modules\natives\index.js:55:10)
at Object. (C:\Users\user\twitter-sentiment-visualisation\node_modules\vinyl-fs\node_modules\graceful-fs\fs.js:1:37)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Module.require (internal/modules/cjs/loader.js:1044:19)
at require (internal/modules/cjs/helpers.js:77:18)
error Command failed with exit code 1.

Unable to search for a hashtag

Hi,

In the search tab, I am unable to look for a hashtag. The app seems to be handling it since the hashtag is displayed in the URL (e.g. http:///url/search/#hashtag) but the '#' character is not encoded into URL friendly characters (something like http://url/search/%23hashtag). Because of this, I can not access the search results.

My javascript is a little rusty but it does not seem to be a lot a work. If it is OK with you I will try to fix this. As soon as I do I will submit a pull request.

Cheers !

Unable to restart project without port number error.

The project runs fine on the first go. But stopping it with Ctrl+C and restarting it(using npm start) produces

events.js: 161
    throw er; //Unhandled 'error' event

I am able to rectify the error by restarting my system.

Entity API

Hi I seem to have the bulk of the project working locally however I'm getting an error on the following line: twitter-sentiment-visualisation/routes/entity-api.js:21
ref = Object.keys(data);
It looks like my configuration for the API may not be correct. Currently I have:

exports.hp = {
apiKey: 'XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX'
};

Thanks

NPM Run Build Major Error

After setting the config keys and running the npm and bower installers. I got to the NPM run build in the project's dir. I got the following error:

~/twitter-sentiment-visualisation$ npm run build

> [email protected] build /home/ubuntu/twitter-sentiment-visualisation
> gulp build

[22:17:12] Using gulpfile ~/twitter-sentiment-visualisation/gulpfile.js
[22:17:12] Starting 'build'...
[22:17:12] Starting 'clean'...
[22:17:12] Finished 'clean' after 6.96 ms
[22:17:12] Starting 'scripts'...
[22:17:12] Finished 'scripts' after 43 ms
[22:17:12] Starting 'browserify'...
[22:17:12] Starting 'styles'...
[22:17:12] Starting 'images'...
[22:17:12] Finished 'images' after 1.5 ms

loading.coffee
  โœ–  line 18  Line contains a trailing semicolon
  โœ–  line 19  Line contains a trailing semicolon
  โœ–  line 22  Line exceeds maximum allowed length  Length is 81, max is 80

โœ– 3 errors


break-down.coffee
  โœ–  line 57  Line contains inconsistent indentation  Expected 2 got 4
  โœ–  line 79  Line contains inconsistent indentation  Expected 2 got 4

โœ– 2 errors


client-side-source/scripts/analytics.js
  line 1  col 27  ['GoogleAnalyticsObject'] is better written in dot notation.
  line 2  col 36  Missing semicolon.
  line 2  col 56  Expected an assignment or function call and instead saw an expression.
  line 3  col 30  Expected an assignment or function call and instead saw an expression.
  line 3  col 80  Missing semicolon.

  โš   5 warnings

[22:17:12] Size analytics.js : 378 B
[22:17:12] Size loading.js : 872 B
[22:17:13] Size Tweet.js : 533 B
[22:17:13] Size async-tweets.js : 705 B

server-side-source/utils/fetch-sentiment-tweets.js
  line 25  col 20  Did you mean to return a conditional instead of an assignment?

  โš   1 warning

[22:17:13] Size fetch-sentiment-tweets.js : 999 B
[22:17:13] Size app-config.js : 769 B
[22:17:13] Size keys.js : 467 B
[22:17:13] Size about.js : 176 B

server-side-source/routes/break-down.js
  line 39  col 21  Did you mean to return a conditional instead of an assignment?

  โš   1 warning

[22:17:13] Size break-down.js : 2.65 kB
[22:17:13] Size db-api.js : 240 B

server-side-source/api-routes/entity-api.js
  line 15  col 23  Did you mean to return a conditional instead of an assignment?
  line 30  col 21  Did you mean to return a conditional instead of an assignment?

  โš   2 warnings

[22:17:13] Size entity-api.js : 789 B

client-side-source/scripts/visualisations/break-down.js
  line 40  col 36  Use '!==' to compare with 'null'.
  line 80  col 31  Did you mean to return a conditional instead of an assignment?

  โš   2 warnings

[22:17:13] Size break-down.js : 1.78 kB

client-side-source/scripts/visualisations/comparer.js
  line 42  col 29  Did you mean to return a conditional instead of an assignment?

  โš   1 warning

[22:17:13] Size comparer.js : 1.08 kB

page-controls-module.coffee
  โœ–  line 21  Line exceeds maximum allowed length  Length is 81, max is 80

โœ– 1 error


client-side-source/scripts/page-controls-module.js
  line 14  col 31  Did you mean to return a conditional instead of an assignment?
  line 40  col 21  Did you mean to return a conditional instead of an assignment?
  line 42  col 21  Did you mean to return a conditional instead of an assignment?
  line 48  col 22  Did you mean to return a conditional instead of an assignment?

  โš   4 warnings

[22:17:13] Size page-controls-module.js : 859 B
[22:17:13] Size comparison-for-search.js : 679 B

server-side-source/utils/format-for-keyword-vis.js
  line 25  col 20  Use '===' to compare with 'null'.
  line 34  col 30  Don't make functions within a loop.
  line 90  col 26  Did you mean to return a conditional instead of an assignment?

  โš   3 warnings

[22:17:13] Size format-for-keyword-vis.js : 3.17 kB
[22:17:13] Size sample-keys.js : 488 B

server-side-source/routes/comparer.js
  line 18  col 30  Don't make functions within a loop.
  line 22  col 53  Don't make functions within a loop.

  โš   2 warnings

[22:17:13] Size comparer.js : 1.69 kB

server-side-source/api-routes/tone-api.js
  line 32  col 25  Did you mean to return a conditional instead of an assignment?
  line 45  col 30  Use '!==' to compare with 'null'.
  line 57  col 24  Use '===' to compare with 'null'.

  โš   3 warnings

[22:17:13] Size tone-api.js : 1.27 kB

client-side-source/scripts/visualisations/comparison.js
  line 26   col 102  Use '!==' to compare with 'null'.
  line 156  col 59   Did you mean to return a conditional instead of an assignment?

  โš   2 warnings

[22:17:13] Size comparison.js : 4.98 kB

server-side-source/utils/format-tweets-for-map.js
  line 36  col 34  Use '===' to compare with 'null'.
  line 66  col 14  Don't make functions within a loop.
  line 82  col 36  Use '!==' to compare with 'null'.
  line 85  col 43  Use '===' to compare with 'null'.
  line 88  col 43  Use '===' to compare with 'null'.

  โš   5 warnings

[22:17:13] Size format-tweets-for-map.js : 3.25 kB

server-side-source/routes/entity-extraction.js
  line 29  col 21  Did you mean to return a conditional instead of an assignment?

  โš   1 warning

[22:17:13] Size entity-extraction.js : 2.50 kB

server-side-source/api-routes/trending-api.js
  line 49  col 32  Use '===' to compare with 'null'.
  line 92  col 30  Use '===' to compare with 'null'.

  โš   2 warnings

[22:17:13] Size trending-api.js : 2.13 kB

entity-extraction.coffee
  โœ–  line 32  Line contains inconsistent indentation  Expected 2 got 4
  โœ–  line 34  Line contains inconsistent indentation  Expected 2 got 0

โœ– 2 errors

[22:17:13] Finished 'browserify' after 1.73 s

client-side-source/scripts/visualisations/entity-extraction.js
  line 42  col 29  Did you mean to return a conditional instead of an assignment?
  line 76  col 21  Did you mean to return a conditional instead of an assignment?
  line 94  col 31  Did you mean to return a conditional instead of an assignment?

  โš   3 warnings

[22:17:13] Size entity-extraction.js : 2.77 kB
[22:17:13] Size get-complete-tweets.js : 1.75 kB
[22:17:13] Size globe.js : 1.08 kB

entity-summary.coffee
  โœ–  line 8   Line exceeds maximum allowed length  Length is 88, max is 80
  โœ–  line 25  Line exceeds maximum allowed length  Length is 102, max is 80

โœ– 2 errors


make-click-words.coffee
  โœ–  line 12  Line exceeds maximum allowed length  Length is 81, max is 80

โœ– 1 error


client-side-source/scripts/visualisations/entity-summary.js
  line 11  col 15  Use '!==' to compare with 'null'.

  โš   1 warning

[22:17:13] Size entity-summary.js : 1.45 kB
[22:17:13] Size make-click-words.js : 551 B
[22:17:13] Size hexagons.js : 908 B

make-summary-sentences.coffee
  โœ–  line 70  Line exceeds maximum allowed length  Length is 81, max is 80

โœ– 1 error

[22:17:14] Size gauge-module.js : 601 B

server-side-source/utils/make-summary-sentences.js
  line 9    col 36  Use '!==' to compare with 'null'.
  line 102  col 31  Use '!==' to compare with 'null'.

  โš   2 warnings

[22:17:14] Size make-summary-sentences.js : 3.45 kB
[22:17:14] Size index.js : 483 B
(node:22530) DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.

hexagons-module.coffee
  โœ–  line 106  Line contains a trailing semicolon

โœ– 1 error


make-timeline-data.coffee
  โœ–  line 28  Line exceeds maximum allowed length  Length is 81, max is 80
  โœ–  line 30  Line exceeds maximum allowed length  Length is 81, max is 80

โœ– 2 errors


client-side-source/scripts/visualisations/hexagons-module.js
  line 92  col 16  Did you mean to return a conditional instead of an assignment?
  line 96  col 16  Did you mean to return a conditional instead of an assignment?

  โš   2 warnings

[22:17:14] Size hexagons-module.js : 3.54 kB
[22:17:14] Size make-timeline-data.js : 2.62 kB
[22:17:14] Size map.js : 1.07 kB
[22:17:14] Size home-page.js : 1.09 kB

server-side-source/utils/stream-handler.js
  line 38  col 34  Use '!==' to compare with 'null'.
  line 41  col 41  Use '===' to compare with 'null'.
  line 44  col 41  Use '===' to compare with 'null'.

  โš   3 warnings

[22:17:14] Size stream-handler.js : 2.40 kB
[22:17:14] Size now.js : 202 B
[22:17:15] Size all.min.css : 4.61 kB

radar-module.coffee
  โœ–  line 23  Line exceeds maximum allowed length  Length is 81, max is 80

โœ– 1 error


streamer.coffee
  โœ–  line 5  Class name should be UpperCamelCased  class name: streamer

โœ– 1 error

[22:17:15] Size radar-module.js : 2.35 kB

server-side-source/utils/streamer.js
  line 68  col 24  Did you mean to return a conditional instead of an assignment?

  โš   1 warning

[22:17:15] Size streamer.js : 2.12 kB
[22:17:15] Size real-time.js : 207 B
[22:17:15] Finished 'styles' after 3.29 s
[22:17:15] Finished 'build' after 3.35 s

real-time-dash.coffee
  โœ–  line 31  Line exceeds maximum allowed length  Length is 99, max is 80
  โœ–  line 54  Line exceeds maximum allowed length  Length is 85, max is 80
  โœ–  line 69  Line contains a trailing semicolon

โœ– 3 errors


region-map.coffee
  โœ–  line 21  Line exceeds maximum allowed length  Length is 88, max is 80

โœ– 1 error

[22:17:15] Size real-time-dash.js : 2.21 kB
[22:17:15] Size watson-tone-analyzer.js : 929 B

server-side-source/routes/region-map.js
  line 63  col 18  Use '===' to compare with 'null'.
  line 77  col 18  Use '===' to compare with 'null'.
  line 88  col 18  Use '===' to compare with 'null'.

  โš   3 warnings

[22:17:15] Size region-map.js : 2.68 kB
[22:17:15] Size sa-comparison.js : 2.18 kB

render-tone-bars-module.coffee
  โœ–  line 8  Line exceeds maximum allowed length  Length is 109, max is 80

โœ– 1 error

[22:17:15] Size render-tone-bars-module.js : 1.04 kB
[22:17:15] Size search.js : 2.62 kB

text-tweets.coffee
  โœ–  line 20  Line exceeds maximum allowed length  Length is 87, max is 80

โœ– 1 error

[22:17:15] Size text-tweets.js : 1.87 kB
[22:17:17] Size timeline.js : 621 B
[22:17:18] Size word-cloud.bundle.js : 12.52 kB
[22:17:18] Size globe.bundle.js : 16.08 kB
[22:17:18] Size now.bundle.js : 36.21 kB
[22:17:18] Size search-summary.bundle.js : 24.12 kB

text-tweets.coffee
  โœ–  line 8   Line exceeds maximum allowed length  Length is 81, max is 80
  โœ–  line 28  Line contains a trailing semicolon

โœ– 2 errors

[22:17:18] Size regions.bundle.js : 13.11 kB

client-side-source/scripts/visualisations/text-tweets.js
  line 66  col 31  Did you mean to return a conditional instead of an assignment?

  โš   1 warning

[22:17:18] Size text-tweets.js : 1.86 kB
[22:17:18] Size tone-analyzer.js : 347 B
[22:17:19] Size scatter-words.bundle.js : 991.78 kB
[22:17:19] Size tone-analysis.bundle.js : 24.02 kB
[22:17:20] Size trending.js : 414 B
[22:17:20] Size word-cloud.js : 621 B
[22:17:22] Size trending-bubble-chart.js : 0 B
[22:17:22] Size word-plot.js : 640 B

trending.coffee
  โœ–  line 93   Line exceeds maximum allowed length  Length is 82, max is 80
  โœ–  line 102  Line contains a trailing semicolon

โœ– 2 errors


client-side-source/scripts/visualisations/trending.js
  line 94   col 25  Use '===' to compare with 'null'.
  line 126  col 34  Did you mean to return a conditional instead of an assignment?
  line 136  col 34  Did you mean to return a conditional instead of an assignment?

  โš   3 warnings

[22:17:22] Size trending.js : 3.51 kB
[22:17:25] Size timeline.bundle.js : 4.64 MB
[22:17:25] Size map.bundle.js : 84.43 kB

NPM start issue

After starting the mongodb command and running the npm start this is coming up

[email protected] start C:\New folder (2)\Wiki article\twitter-sentiment-visualisation
node ./bin/www

module.js:471
throw err;
^

Error: Cannot find module 'twit'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\utils\streamer.js:4:10)
at Object. (C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\utils\streamer.js:91:4)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\app.js:52:15)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: node ./bin/www
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script 'node ./bin/www'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the twitter-sentiment-visualisation package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs twitter-sentiment-visualisation
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls twitter-sentiment-visualisation
npm ERR! There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\atul dave\AppData\Roaming\npm-cache_logs\2017-04-20T17_33_28_916Z-debug.log

Not sure what 'Twit' module is since it is not in the package.json folder

Issue with routes

@Lissy93

The search term page seems to be working fine with the sentiment summary. However any link from the search page for eg - Word cloud, entity extraction, Raw tweets and even searching again from the same page gives the same exact error

POST /api/db 200 107.876 ms - 3807
C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\routes\entity-api.js:21
ref = Object.keys(data);
^

TypeError: Cannot convert undefined or null to object
at formatData (C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\routes\entity-api.js:21:18)
at C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\routes\entity-api.js:37:23
at Request._callback (C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\node_modules\haven-entity-extraction\index.js:64:16)
at Request.self.callback (C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\node_modules\request\request.js:188:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request. (C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\node_modules\request\request.js:1171:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage. (C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\node_modules\request\request.js:1091:12)
at IncomingMessage.g (events.js:291:16)
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)
at process._tickCallback (internal/process/next_tick.js:104:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: node ./bin/www
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script 'node ./bin/www'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the twitter-sentiment-visualisation package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs twitter-sentiment-visualisation
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls twitter-sentiment-visualisation
npm ERR! There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\atul dave\AppData\Roaming\npm-cache_logs\2017-04-27T16_44_52_078Z-debug.log

#error After running NPM RUN CONFIG

After running NPM RUN CONFIG, I get the following error (note I have the latest nodejs and NPM):

nithin@nithin-VirtualBox:~/twitter-sentiment-visualisation$ sudo npm run config

[email protected] config /home/nithin/twitter-sentiment-visualisation
gulp generate-config && start notepad 'config\src\keys.coffee'

[11:39:20] Using gulpfile ~/twitter-sentiment-visualisation/gulpfile.js
[11:39:20] Starting 'generate-config'...
[11:39:20] Finished 'generate-config' after 354 ฮผs
start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] config: gulp generate-config && start notepad 'config\src\keys.coffee'
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] config script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /home/nithin/.npm/_logs/2018-04-29T06_09_20_518Z-debug.log

Doesn't work so well on mobile devices

twitter-sentiment-visualisation is not fully responsive, when it comes to small (>4") screen sizes.
At least the homepage and search-results page should follow a more mobile-first approach.

Imgur

^^ Very 2011-style

NPM Run Config Error

I fixed my bower missing dependencies issues in another issue thread, but after running NPM RUN CONFIG, I get the following error (note I have the latest nodejs and NPM):

/twitter-sentiment-visualisation$ npm run config

> [email protected] config /home/ubuntu/twitter-sentiment-visualisation
> gulp generate-config && start notepad 'config\src\keys.coffee'

[14:48:52] Using gulpfile ~/twitter-sentiment-visualisation/gulpfile.js
[14:48:52] Starting 'generate-config'...
[14:48:52] Finished 'generate-config' after 476 ฮผs
sh: 1: start: not found

npm ERR! Linux 4.4.0-1013-aws
npm ERR! argv "/home/ubuntu/.nvm/versions/node/v7.9.0/bin/node" "/home/ubuntu/.nvm/versions/node/v7.9.0/bin/npm" "run" "config"
npm ERR! node v7.9.0
npm ERR! npm  v4.2.0
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] config: `gulp generate-config && start notepad 'config\src\keys.coffee'`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] config script 'gulp generate-config && start notepad 'config\src\keys.coffee''.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the twitter-sentiment-visualisation package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gulp generate-config && start notepad 'config\src\keys.coffee'
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs twitter-sentiment-visualisation
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls twitter-sentiment-visualisation
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/ubuntu/.npm/_logs/2017-04-20T14_48_52_913Z-debug.log

Error: Cannot find module '../public/data/all_sentiment_results_edwardsnowdon.json'

npm start

[email protected] start /Users/sathish/ORION/Sentiment/twitter-sentiment-visualisation
node ./bin/www

module.js:557
throw err;
^

Error: Cannot find module '../public/data/all_sentiment_results_edwardsnowdon.json'
at Function.Module._resolveFilename (module.js:555:15)
at Function.Module._load (module.js:482:25)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at Object. (/Users/sathish/ORION/Sentiment/twitter-sentiment-visualisation/routes/sa-comparison.js:8:16)
at Object. (/Users/sathish/ORION/Sentiment/twitter-sentiment-visualisation/routes/sa-comparison.js:86:4)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at Object. (/Users/sathish/ORION/Sentiment/twitter-sentiment-visualisation/app.js:70:33)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: node ./bin/www
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/sathish/.npm/_logs/2018-02-14T07_36_11_410Z-debug.log

FR: Docker-compose + Dockerfile

Hi...

haven't had the chance to run it yet, seems awesome project btw,
it would be cool to have a docker-compose file to run it locally :)

Action required: Greenkeeper could not be activated ๐Ÿšจ

๐Ÿšจ You need to enable Continuous Integration on all branches of this repository. ๐Ÿšจ

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didnโ€™t receive a CI status on the greenkeeper/initial branch, itโ€™s possible that you donโ€™t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how itโ€™s configured. Make sure it is set to run on all new branches. If you donโ€™t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, youโ€™ll need to re-trigger Greenkeeperโ€™s initial pull request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper Appโ€™s white list on Github. You'll find this list on your repo or organizationโ€™s settings page, under Installed GitHub Apps.

Error on start: Bad Twitter streaming request: 401

Hi, once I've built correctly (I think) and I try to start while my MongoDB is running, i got this error:
[DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
events.js:174
throw er; // Unhandled 'error' event
^

Error: Bad Twitter streaming request: 401
at Object.exports.makeTwitError (C:\Users\Pab\twitter-sentiment-visualisation-dev\node_modules\twit\lib\helpers.js:74:13)
at Request. (C:\Users\Pab\twitter-sentiment-visualisation-dev\node_modules\twit\lib\streaming-api-connection.js:96:29)
at Request.emit (events.js:194:15)
at Gunzip. (C:\Users\Pab\twitter-sentiment-visualisation-dev\node_modules\request\request.js:1083:12)
at Object.onceWrapper (events.js:277:13)
at Gunzip.emit (events.js:194:15)
at endReadableNT (_stream_readable.js:1103:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
at Request. (C:\Users\Pab\twitter-sentiment-visualisation-dev\node_modules\twit\lib\streaming-api-connection.js:99:14)
at Request.emit (events.js:194:15)
[... lines matching original stack trace ...]
at process._tickCallback (internal/process/next_tick.js:63:19)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: node ./bin/www
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Pab\AppData\Roaming\npm-cache_logs\2019-03-06T17_38_49_290Z-debug.log

I'm guessing it is from an autorisation issue but I'm not sure neither where it occurs precisly (though I think it comes from the www file) nor how to fix it.
Thanks in advance!

Explain me step 4

Set Config yarn run config will generate the config\src\keys.coffee file, which you will then need to populate with your API keys and save. Also check that your happy with the general app config in config/src/app-config.coffee.

Watson tone analyzer is not working

Hi
Watson tone analyzer is not working , even when I entered new credentials , it is saying invalid credentials.Can you throw me some light on this?
Thanks in advance,
Manohar
also How to proceed further , for the below king of warning
WARNING: This method of instantiating the Watson services has been deprecated beginning with Version 3.0.0 of the Node SDK. Please refer to the Node SDK documentation for information on how t
o instantiate Watson services. This form of service instantiation will be removed in a future release of the SDK.

d3.tip is not a function error

hexagons-module.js:32 Uncaught TypeError: Cannot read property 'attr' of undefined
at renderHexChart (hexagons-module.js:32)
at hexagons-module.js:114
at hexagons-module.js:152

Bower build error

When I run bower build in the project's directory, I get the following error:

:~/twitter-sentiment-visualisation$ bower install
bower not-cached    https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/src/markerclusterer_compiled.js#*
bower resolve       https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/src/markerclusterer_compiled.js#*
bower not-cached    https://raw.githubusercontent.com/socketio/socket.io-client/master/socket.io.js#*
bower resolve       https://raw.githubusercontent.com/socketio/socket.io-client/master/socket.io.js#*
bower not-cached    https://jardindesconnaissances.googlecode.com/svn-history/r82/trunk/public/js/d3.layout.cloud.js#*
bower resolve       https://jardindesconnaissances.googlecode.com/svn-history/r82/trunk/public/js/d3.layout.cloud.js#*
bower download      https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/src/markerclusterer_compiled.js
bower download      https://raw.githubusercontent.com/socketio/socket.io-client/master/socket.io.js
bower download      https://jardindesconnaissances.googlecode.com/svn-history/r82/trunk/public/js/d3.layout.cloud.js
bower cached        https://raw.githubusercontent.com/dataarts/webgl-globe/master/globe/third-party/Detector.js#e-tag:1c074b833
bower validate      e-tag:1c074b833 against https://raw.githubusercontent.com/dataarts/webgl-globe/master/globe/third-party/Detector.js#*
bower cached        https://raw.githubusercontent.com/dataarts/webgl-globe/master/globe/third-party/Tween.js#e-tag:bdf141ad0
bower validate      e-tag:bdf141ad0 against https://raw.githubusercontent.com/dataarts/webgl-globe/master/globe/third-party/Tween.js#*
bower cached        https://raw.githubusercontent.com/dataarts/webgl-globe/master/globe/globe.js#e-tag:806e56971
bower validate      e-tag:806e56971 against https://raw.githubusercontent.com/dataarts/webgl-globe/master/globe/globe.js#*
bower cached        https://raw.githubusercontent.com/dataarts/webgl-globe/master/globe/third-party/three.min.js#e-tag:a88b4afa7
bower validate      e-tag:a88b4afa7 against https://raw.githubusercontent.com/dataarts/webgl-globe/master/globe/third-party/three.min.js#*
bower cached        https://cdnjs.cloudflare.com/ajax/libs/jquery.tipsy/1.0.2/jquery.tipsy.js
bower validate      https://cdnjs.cloudflare.com/ajax/libs/jquery.tipsy/1.0.2/jquery.tipsy.js#*
bower cached        https://raw.githubusercontent.com/d3/d3-plugins/master/sankey/sankey.js#e-tag:abe137b21
bower validate      e-tag:abe137b21 against https://raw.githubusercontent.com/d3/d3-plugins/master/sankey/sankey.js#*
bower cached        http://d3js.org/d3.hexbin.v0.min.js
bower validate      http://d3js.org/d3.hexbin.v0.min.js#*
bower cached        https://github.com/alangrafu/radar-chart-d3.git#1.2.1
bower validate      1.2.1 against https://github.com/alangrafu/radar-chart-d3.git#~1.2.1
bower cached        https://raw.githubusercontent.com/Caged/d3-tip/master/index.js#e-tag:6731005c1
bower validate      e-tag:6731005c1 against https://raw.githubusercontent.com/Caged/d3-tip/master/index.js#*
bower cached        https://gist.githubusercontent.com/mbostock/4061961/raw/6eb742223b9795260ba62150196ed0ae4a461e39/bullet.js#e-tag:3c7e5143d
bower validate      e-tag:3c7e5143d against https://gist.githubusercontent.com/mbostock/4061961/raw/6eb742223b9795260ba62150196ed0ae4a461e39/bullet.js#*
bower cached        https://github.com/GoogleWebComponents/google-chart.git#1.0.6
bower validate      1.0.6 against https://github.com/GoogleWebComponents/google-chart.git#~1.0.4
bower cached        https://github.com/GoogleWebComponents/google-map.git#1.0.6
bower validate      1.0.6 against https://github.com/GoogleWebComponents/google-map.git#~1.0.3
bower cached        https://github.com/mbostock-bower/d3-bower.git#3.5.17
bower validate      3.5.17 against https://github.com/mbostock-bower/d3-bower.git#~3.5.16
bower cached        https://github.com/jquery/jquery-dist.git#2.1.4
bower validate      2.1.4 against https://github.com/jquery/jquery-dist.git#~2.1.4
bower cached        https://github.com/Dogfalo/materialize.git#0.97.8
bower validate      0.97.8 against https://github.com/Dogfalo/materialize.git#~0.97.5
bower cached        https://github.com/masayuki0812/c3.git#0.4.11
bower validate      0.4.11 against https://github.com/masayuki0812/c3.git#~0.4.10
bower cached        https://github.com/Dogfalo/materialize.git#0.97.8
bower validate      0.97.8 against https://github.com/Dogfalo/materialize.git#~0.97.5
bower cached        https://github.com/novus/nvd3.git#1.8.5
bower validate      1.8.5 against https://github.com/novus/nvd3.git#~1.8.2
bower cached        https://github.com/ArtemFitiskin/jquery-autocompleter.git#0.1.9
bower validate      0.1.9 against https://github.com/ArtemFitiskin/jquery-autocompleter.git#~0.1.9
bower EHTTP         Status code of 404

Problem while reading keys

Hi
When I'm performing search I'm getting an error like below. Page is loaded with sentiment hexagons only and process is crashed/down.
/../sentiment/twitter-sentiment-visualisation/routes/entity-api.js:21
ref = Object.keys(data);
^
TypeError: Cannot convert undefined or null to object
at Function.keys ()
at formatData (/../sentiment/twitter-sentiment-visualisation/routes/entity-api.js:21:18)

My keys.js file looks like below:
(function() {
exports.twitter = {
consumer_key: 'CCdQ24zCJFfsdG4vG5tPK9qHWhQ',
consumer_secret: '3tz4HtaXVy6WsfsmtZwyq3i0SonfffFgZ4p4UL1fQCRJ3',
token: '412355982-u0aNeaPTzljreffH0sseORffffff16zpjuwDFH',
token_secret: 'ubqRht1aDQ5cHUffffEuNWNVDYfsmrffffn725Fr'
};
exports.googlePlaces = 'AIzaSyAsfesfOWg2XhA9Uam0Gn3rydpXXffffOyOvQ';
exports.hp = '8fea4345-6d9c-4832-b70f-29d0ac7ffffe4';
exports.watson = { username: '0d747458-27c9-4e26-9461-48ef7bee116c', password:'hj3HEVffff3'};

}).call(this);
(Of course I've masked credentials data :))
Can you suggest some solution ?

Broken Dependencies

Hi ,
I followed the steps given under running locally. But "bower install" in step 3 generates an error. Its because some of the dependencies return "404:Not found" status. They are

**"markerclusterer_compiled": "https://raw.githubusercontent.com/googlemaps/js-marker-clusterer/gh-pages/src/markerclusterer_compiled.js",**
**"socket.io": "https://raw.githubusercontent.com/socketio/socket.io-client/master/socket.io.js",**
**"d3-word-cloud": "https://jardindesconnaissances.googlecode.com/svn-history/r82/trunk/public/js/d3.layout.cloud.js",**

Also when I "npm run build" it generates several errors in the various coffee files.Kindly look into it
P.S : I am working in Ubuntu 14.04

UI issue, need help on this

Hi Alicia ,
I am not getting UI properly , even though its working fine.I am here by getting this error , when I am checking page source.I am attaching the screenshot of the same .Please throw some light .
Thanks in advance,
Manohar

Screenshot (11)

Error on build

Hi i am getting an error when i build/run
npm ERR! Windows_NT 10.0.10586 npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build" npm ERR! node v6.10.2 npm ERR! npm v3.10.10 npm ERR! code ELIFECYCLE npm ERR! [email protected] build: gulp build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script 'gulp build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the twitter-sentiment-visualisation package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! gulp build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs twitter-sentiment-visualisation
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls twitter-sentiment-visualisation
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\npm-debug.log

C:\New folder (2)\Wiki article\twitter-sentiment-visualisation>npm bugs twitter-sentiment-visualisation
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "bugs" "twitter-sentiment-visualisation"
npm ERR! node v6.10.2
npm ERR! npm v3.10.10
npm ERR! code E404

npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/twitter-sentiment-visualisation
npm ERR! 404
npm ERR! 404 'twitter-sentiment-visualisation' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! Please include the following file with any support request:
npm ERR! C:\New folder (2)\Wiki article\twitter-sentiment-visualisation\npm-debug.log
`

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.