GithubHelp home page GithubHelp logo

dataturks / dataturks Goto Github PK

View Code? Open in Web Editor NEW
257.0 8.0 127.0 4.05 MB

ML data annotations made super easy for teams. Just upload data, add your team and build training/evaluation dataset in hours.

Home Page: https://dataturks.com/

License: Apache License 2.0

JavaScript 53.54% Python 0.06% CSS 2.63% Hack 0.57% PHP 0.23% HTML 5.67% Dockerfile 0.09% Shell 0.05% Java 16.05% Less 15.86% SCSS 5.24%
image-processing image-classification annotation-tool ner java image-captioning image-segmentation document-classification document-annotate

dataturks's Introduction

Features

NER tagging in Documents

Full length document annotations (PDF, Doc, Text etc).

Image Segmentation

    Draw free form polygons and generate image masks.

POS tagging

    A super easy interface to tag for PoS/NER in sentences.

DataTurks

[Note: As on March 2019, please use the branch master_with_dist as the main master branch has some build issues w.r.t dist folder]

Can run as a docker image as well. Here is the docker file specifying all the steps for setting things up:

https://github.com/DataTurks/DataTurks/blob/master/hope/docker/Dockerfile

If you rather have it run as a non-docker service, then see below.

Two main subcomponents:

  1. Hope: Java-mysql based backend.
Build:
Its a maven project, please install maven and then:
# cd hope
# mvn package -DskipTests <-- will build the .jar file.

Run:
The service is based on dropwizard and taken a config file on startup. This config file specifies the MYSQL end-points, 
password and the port to run the service on.

Setup mysql server as in: https://github.com/DataTurks/DataTurks/blob/master/hope/docker/mysqlInit.sql

# java -Djava.net.useSystemProxies=true -server -jar dataturks-1.0-SNAPSHOT.jar server onprem.yml
  1. Bazaar: React based front-end.

Mac Setup :

brew install node@8
brew link node@8
conda create -n bazaar python=2.7 anaconda
conda activate bazaar
xcode-select --install
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
rm -rf node_modules
npm rebuild node-sass
npm install
npm run dev  

Linux Setup: Install Node Js etc.

sudo apt-get -y install build-essential 
curl -sL https://deb.nodesource.com/setup_8.x | bash 	  
apt-get install --yes nodejs 	  
node -v 	  
npm -v  	  
npm i -g nodemon 	  
nodemon -v	  
apt-get clean 	  

Build:

  cd bazaar
  npm install && npm run build-onprem

Run the service:

  npm run start-onprem

dataturks's People

Contributors

dataturks avatar dependabot[bot] avatar fabriceell avatar mtcld avatar yottabytedev 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

dataturks's Issues

Quotes in tag names break reverse search

Hi,

I currently use your tool (DataTurks) to classify a private dataset.
We noticed a small issue with the current state of your tool : quotes in tags are breaking the search by tags.

It could imply that your software is not correctly escaping quotes and so is vulnerable to SQLi. This is just a guess, however.

Questions :

  • Are you already aware of this issue ?
  • Do you have a workaround or a fix on a functional side to make the search work with quotes in tags ?
  • If you are aware or if SQLi are confirmed, are you planning to fix the issue on a security side ?

image
image

Thanks for your involvement and your tool. It saving us a lot time.
Have a very nice day

build fails

Build error of Dockerfile from
docker build -t dataturks .

Step 15/52 : COPY $LOCAL_DOCKER_DIR/onprem-dataturks.com.conf /etc/apache2/sites-available/
getting
COPY failed: stat /var/lib/docker/tmp/docker-builder768921205/hope/docker/onprem-dataturks.com.conf: no such file or directory

Tag randomly change after requeuing

The issue occurred in my Image Bounding Box dataset which has 15 tags. After I requeued the tagged images while evaluating the tagging, one of the tags in the requeued somehow changed to another tag completely. For example, the image previously had ten car bounding boxes but after the re-queued all of those bounding box's tags were changed to tree instead.

This issue happens randomly and I have no idea what's the cause. I am pretty confident that it isn't a human error because this happened to two different annotators and it is the same tag that was changed.

Does anyone also have this problem? How should I try to investigate it?

Got package dependencies issues when install bazaar

Hi guys,
I just followed read me to install DataTurks. I can successfully install and build hope backend. But when I tried to install bazaar by running npm install under bazaar folder. I got a lot of packages dependencies issues. Seems there are conflictions of some packages. Such as some package needs react@15, but some others need [email protected]
/workspace/DataTurks/bazaar$ sudo npm install
npm WARN lifecycle [email protected]~postinstall: cannot run in wd [email protected] npm run build (wd=/home/ubuntu/workspace/DataTurks/bazaar)
npm WARN [email protected] requires a peer of eslint@<2.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15.2.1 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^0.14.8 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15.6.2 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-dom@^16.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^0.14.0 || ^15.0.0-0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-leaflet@^1.1.6 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of leaflet-draw@^0.4.9 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^0.13.3 || ^0.14 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-dom@^0.13.3 || ^0.14 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react-dom@^16 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^0.14.0 || ^15.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^0.14.0 || ^15.0.1 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^0.14.9 || ^15.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of webpack@^2.0.0 || ^3.0.0 || ^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^0.14.8 || ^15.1.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of webpack@^2.0.0 || ^3.0.0 || ^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/gulp-watch/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/gulp-copy/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

audited 22702 packages in 23.674s
found 98 vulnerabilities (22 low, 19 moderate, 56 high, 1 critical)
run npm audit fix to fix them, or npm audit for details

Can't run project bazaar

Hi, I was able to run the bazaar project by using the command npm run build-onprem then npm run start-onprem but I don't know how to run on-prem project to make change to it. The current npm run dev is the online version. Can you please give me a hand on this? Thanks so much!

Some clarifications needed on building with source code

Hello DataTurks team,

I have few doubts on building build.

  1. Which is the stable branch(master or master_with_dist) to build? I'm using master branch.
  2. Which version of mysql-server you are using? I 'm using mysql-server latest
  3. I'm able to build(in master branch) the snapshot.jar finally using mvn package, but running into some database connection issues.
  • First error I got is
    HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

Then I have set dialect in on-prem.yaml file using below

database:
driverClass: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/books
user: root
password: root
properties:
charSet: UTF-8
hibernate.dialect: org.hibernate.dialect.MySQLDialect
hibernate.hbm2ddl.auto: create

  • After specifying above configuration, I'm getting below error
    Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

Docker building failed in npm installing

**npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-pre-gyp install --fallback-to-build --library=static_library
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
**

Impossible to upload Pre-Annotated data

Hello everyone,

No matter how I try to upload the pre-annotated data in an Image Classification Project:

  • Through the web app, uploading a txt file as indicated in the web.
  • Through the web app, uploading a json file like the one you download when you have annotated data.
  • Through the API, uploading a json file like the one you download when you have annotated data.

In all cases it finds no images ( 0 HITS).

How is it possible to upload pre-annotated data?

Thanks in advance.

Docker build fails

I tried to build the Docker image, but it fails at

COPY $LOCAL_HOPE_DIR/target/dataturks-1.0-SNAPSHOT.jar $BASE_DIR/dataturks-1.0-SNAPSHOT.jar
because the file is not in the repository.

Looking at the README at the repository root, I saw that it can be built with mvn package -DskipTests. So I modified the Dockerfile to install maven, copy folder hope to the image and then run the mvn build command. Unfortunately, this fails with:

[ERROR] /home/dataturks/hope/src/main/java/dataturks/DataDownloadHandler.java:[17,27] package netscape.javascript does not exist

I haven't had time to look into this problem so far.

Thanks for making this tool open source and free to use, I'd love to give it a try!

Docerfile is up and runnig and the main page loads successfully but i can'y do anything else

i build the Dockerfile successfully and all backend and frontend components are running successfully inside the container. the main page of the website loads successfully, however when i try to click the login button it routes me to a blank page and when i open the container logs i find that the connection is refused from dataturks.com as below :

org.apache.http.conn.HttpHostConnectException: Connect to dataturks.com:443 [dataturks.com/162.241.121.34] failed: refused (Connection refused)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperato)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
at dataturks.license.LicenseHandler.fetchLicenseFromServer(LicenseHandler.java:133)
at dataturks.license.LicenseHandler.handleAddNewLicense(LicenseHandler.java:62)
at bonsai.dropwizard.resources.DataturksEndpoint.addLicenseInternal(DataturksEndpoint.java:1092)
at bonsai.dropwizard.resources.DataturksEndpoint.addLicense(DataturksEndpoint.java:728)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethonHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourspatcher.java:144)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResouispatcher.java:161)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatcurceMethodDispatcherProvider.java:205)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResdDispatcher.java:99)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
at io.dropwizard.jetty.NonblockingServletHolder.handle(NonblockingServletHolder.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1689)
at io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:34)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
at io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:50)
at io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:44)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
at bonsai.dropwizard.MetricsRequestFilter.doFilter(MetricsRequestFilter.java:36)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:308)
at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:262)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1676)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1174)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1106)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:240)
at io.dropwizard.jetty.RoutingHandler.handle(RoutingHandler.java:51)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:396)
at io.dropwizard.jetty.BiDiGzipHandler.handle(BiDiGzipHandler.java:68)
at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:56)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:169)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.server.Server.handle(Server.java:524)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:319)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:253)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:1
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.execute(ExecuteProduceConsume.java:100)
at org.eclipse.jetty.io.ManagedSelector.run(ManagedSelector.java:147)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.base/java.net.Socket.connect(Socket.java:609)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperato)
... 77 more

any clue why this happens?

JDBC PostgreSQL

Can you tell, as to add JDBC driver for Postgresql.
https://jdbc.postgresql.org/download.html
I want use external db server.
it is my config:

database:
    # the name of the JDBC driver, mysql in our case
    driverClass: org.postgresql.Driver
    # the username
    user: dataturks
    # the password
    password: dataturks
    # the JDBC URL; the database is called DWGettingStarted
    url: jdbc:postgresql://psql.server.local:5432/dataturks

Persistent data

This concerns that docker container of this repo.
It seems that all the data gets erased with the termination of the container, is there an easy way to make the data persistent ?

SSL Cert

I have managed to get an SSL Cert for the domain pointed to the ec2 that is hosting the DataTurks web app but I am getting the error
_" Error : Requst has been terminated. Possible Causes : The network is offline, Origin is not allowed by Access-Control -Allow Origin, the page is being unloaded ,etc."
whenever I try to use the app.

I figure this is to do with the connection now being HTTPS. Is it possible to use DataTurks on-premises with SSL ?

Export Invalid JSON

When downloading a completed Data Annotation Task, with mutliple files included, the JSON file is not valid file because it is not defined as an array and is missing comma's between array entities.

i.e
{ "content" : "blah ..." .... } {"content" : "blah ..." ...}

should be

[ { "content" : "blah ..." .... } , {"content" : "blah ..." ...} ]

It makes it very difficult to ingest the file otherwise because it breaks Valid Json Formats and when working on large Annotation projects the files are large and very difficult to patch.

Dataturks inlog error...

Hello is their an solution for this docker issue?
On the localhost/127.
error: Request has been terminated
Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc

on port 3000 http://127.0.0.1:32770/projects/login
error: Request has been terminated
Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc

on port 80 : 127.0.0.1:32771 http://127.0.0.1/onprem.php redirect problem loading page

Dockerfile build continues to fail

The current Dockerfile fails. Does anyone have a working version? I have used the available one on Docker, but I have made code changes, so I would like to rebuild a new Docker image. Thank you.

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.