Git Product home page Git Product logo

zotprime's Introduction

ZotPrime - On-premise Zotero platform

ZotPrime is a full packaged repository aimed to make on-premise Zotero deployment easier with the last versions of both Zotero client and server. This is the result of sleepness nights spent to deploy Zotero within my organization on a disconnected network. Feel free to open issues or pull requests if you did not manage to use it.

Server installation

Dependencies and source code

Install dependencies for client build:

$ sudo apt install npm

Clone the repository (with --recursive):

$ mkdir /path/to/your/app && cd /path/to/your/app
$ git clone --recursive https://github.com/SamuelHassine/zotero-prime.git
$ cd zotero-prime

Configure and run:

$ cd docker
$ sudo docker-compose up -d

Initialize databases

Initialize databases:

$ ./bin/init.sh
$ cd ..

Available endpoints:

Name URL
Zotero API http://localhost:8080
S3 Web UI http://localhost:8082
PHPMyAdmin http://localhost:8083

Default login/password:

Name Login Password
Zotero API admin admin
S3 Web UI zotero zoterodocker
PHPMyAdmin root zotero

Client installation

Dependencies and source code

For [m|l|w]: m=Mac, w=Windows, l=Linux

Run:

$ cd client
$ ./config.sh
$ cd zotero-client
$ npm install
$ npm run build
$ cd ../zotero-standalone-build
$ ./fetch_xulrunner.sh -p [m|l|w]
$ ./fetch_pdftools
$ ./scripts/dir_build -p [m|l|w]

First usage

Run:

$ ./staging/Zotero_VERSION/zotero(.exe)

Connect with the default user and password:

Name Login Password
Zotero admin admin

Sync

zotprime's People

Contributors

dstillman avatar grumbelbart avatar mrtcode avatar sualk 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

zotprime's Issues

Still maintained?

Is this project still maintained. I checked docker-compose.yml file and the entire software suite is using old version (tags).

pkg-config is missing in Dockerfile

Hi,
the Dockerfile tries to compile memcached. This failes, because pkg-config is not installed. If you add pkg-config to any apt-get command, it builds.

additional package requirements

In addition to #5
I ran into the following errors:
debconf: delaying package configuration, since apt-utils is not installed
So I suggest adding apt-utils. However, the warning is non-blocking according to: phusion/baseimage-docker#319

Also:

configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for pkg-config... no
pkg-config not found
configure: error: Please reinstall the pkg-config distribution
ERROR: Service 'app-zotero' failed to build:
Step 17/39 : RUN DEBIAN_FRONTEND=noninteractive pecl download memcached-3.0.4 && tar xvzf memcached-3.0.4.tgz && cd memcached-3.0.4 && phpize && ./configure --enable-memcached-igbinary && make && make install
 ---> Running in 37ecab268d95
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update

build service app-zotero failed

Amazing work Samuel

However, I have a little issue building the app-zotero service from docker-compose command line:

Service 'app-zotero' failed to build: The command '/bin/sh -c DEBIAN_FRONTEND=noninteractive pecl download memcached-3.0.4 && tar xvzf memcached-3.0.4.tgz && cd memcached-3.0.4 && phpize && ./configure --enable-memcached-igbinary && make && make install' returned a non-zero code: 1

Do you have an idea?

Thanks

Cyrille

Run service in a local network

Hi, thanks for this!
Since I am not a developer and just want to use your zotero-prime solution: I managed to install everything on a VM and can sync with the Zotero client from that VM. So far, I was not able to figure out, which configuration files I have to change to make the service available within our network using the IP of the corresponding VM.
Could you provide a hint which files (and maybe also which parameters) I have to change?
Thanks and best regards!

arm64 and armv7 support

Please consider adding support for arm64 and armv7. I would like to use a Home Assistant add-on built off of this repository, but being limited to amd64 is inconvenient for Home Assistant as many users are on arm-based systems.

This change would allow for the creation of a broadly usable Home Assistant add-on, which would in turn make running zotprime significantly more accessible.

Please see this discussion for further details: alexbelgium/hassio-addons#1227

How to create users?

When I try to register a new user in the zotero client, I get redirected to the zotero.org website. When I create an account on this site, this account is not available in the zotero client (username and password not found).
How can I not redirect to the zotero.org website but to my own registration site instead (in case there is a registration page included in this repo)?

localhost:8080 after installation unavailable

Hello,
I tried several times to build up a docker installation on a linux ubuntu 18.04, later on an antix 19.2 (debian buster derivate).
Every time I have the same problem. While the localhost:8082 and localhost:8083 work,
the localhost:8080 shows nothing.

Attached is the log of the the execution of run.sh
zotero-prime.log

system requirements

First of all thank you for your efforts and congratulations for succeeding with a successfully running installation.

To ease deployment, I wonder which linux system / version you used or recommend for deploying zotero-prime? Do you have some insights about the required hardware specifications?

Thanks a lot again.
Patrick

Unknown database 'zotero_www'

I followed the very simple instructions of the readme (thanks for that) and also did what was recommended in issue #3 to make the server available for my whole local network.

Everything seemed to work fine so far, I can reach all Ports from everywhere in my network and the zotero client establishes a connection to the websocket on port 8081 without any errors.
But then it tries to connect to the API on Port 8080 (which I modified to listen on port 8084 instead, but that is not where the following error comes from) and the server returns a message with error code 500 (internal server error).

I did then look for error logs and found the apache 'error.log' in the zotero_app container.
This log file showed me the following error:

WARNING: Exception: Unknown database 'zotero_www'. What can I do now?

Excluding S3

Can we exclude s3 web ui and choose as our local storage

"_libraryStorageVersion cannot decrease."

Hey,
I am not able to sync due to the following error:

[JavaScript Error: "_libraryStorageVersion cannot decrease" {file: "chrome://zotero/content/xpcom/data/library.js" line: 291}]

version => 5.0.57.SOURCE.91bac0e05, platform => Linux x86_64, oscpu => Linux x86_64, locale => en-US, appName => Zotero, appVersion => 5.0.57.SOURCE.91bac0e05, extensions => Zotero LibreOffice Integration (5.0.14.SA.5.0.57.SOURCE.91bac0e05, extension), Shockwave Flash (32.0.0.223, plugin)

Data base integrity is ok.
Any hints?

Thanks and best regards

ZoteroObjectUploadError

Hello. I've been having trouble when it comes to exporting a mendeley library to Zotero, especially when it comes with attached files. I get errors similar to this when I try to sync up.

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item ZSMGERPK in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item FFBCGEIQ in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item SPG3A86J in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item RYNPU2UR in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item L7P4E9DG in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item TBVT6JCU in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item FLV4FKXR in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item F7FF5Z78 in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item U3IADDHQ in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item LU462JHH in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Error 500 for item 8Q4RWGRY in Shared:

ZoteroObjectUploadError: An error occurred"]

[JavaScript Error: "An error occurred" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1314}]

[JavaScript Error: "Made no progress during upload -- stopping" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1373}]

[JavaScript Error: "Made no progress during upload -- stopping" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1373}]

version => 5.0.57.SOURCE.91bac0e05, platform => Win32, oscpu => Windows NT 10.0; WOW64, locale => es-ES, appName => Zotero, appVersion => 5.0.57.SOURCE.91bac0e05, extensions => Utilidad Zutilo para Zotero (3.1.0, extension), ZotFile (5.0.10, extension), Zotero Storage Scanner (5.0.8, extension), Zotero LibreOffice Integration (5.0.14.SA.5.0.57.SOURCE.91bac0e05, extension), Zotero Word for Windows Integration (5.0.9.SA.5.0.57.SOURCE.91bac0e05, extension)

If anyone has a heads-up on this matter, I'd be really grateful. Thanks in advance!

pkg-config not found

Hi I followed the instructions to create and start the docker image/container.
Docker is not able to create the image. See the error below.
Any ideas why?

Step 17/39 : RUN DEBIAN_FRONTEND=noninteractive pecl download memcached-3.0.4 && tar xvzf memcached-3.0.4.tgz && cd memcached-3.0.4 && phpize && ./configure --enable-memcached-igbinary && make && make install
 ---> Running in 7be166c9f7ad
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading memcached-3.0.4.tgz ...
Starting to download memcached-3.0.4.tgz (78,776 bytes)
..................done: 78,776 bytes
File //memcached-3.0.4.tgz downloaded
package.xml
memcached-3.0.4/tests/skipif.inc

... ...

memcached-3.0.4/fastlz/fastlz.h
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012
checking for grep that handles long lines and -e... /bin/grep

... ...

checking for re2c... no
**configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.**
checking for gawk... no

... ...

checking for ZLIB... yes, shared
checking for pkg-config... no
pkg-config not found
**configure: error: Please reinstall the pkg-config distribution**
**ERROR**: Service 'app-zotero' failed to build: The command '/bin/sh -c DEBIAN_FRONTEND=noninteractive pecl download memcached-3.0.4 && tar xvzf memcached-3.0.4.tgz && cd memcached-3.0.4 && phpize && ./configure --enable-memcached-igbinary && make && make install' returned a non-zero code: 1

issue with docker-compose, error during compose (some crazy UID / GID)

Here's the error:

ERROR: failed to register layer: failed to Lchown "/opt/code/localstack/localstack/dashboard/web/node_modules/atlassian-soy-cli/node_modules/winston" for UID 3495090557, GID 18285364 (try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid): lchown /opt/code/localstack/localstack/dashboard/web/node_modules/atlassian-soy-cli/node_modules/winston: invalid argument

git pulled >> docker-compose up -d, as recommended in the instructions. Just for fun, tried increasing the UID / GID to let that insane figure be in range, the issue persists with the same error message.

System in question was an unpriveleged LXC on proxmox, fully updated npm / docker-compose, Ubuntu 22.04 LXC Template

Additionally, attempting to follow the non-docker instructions result in a list of mostly deprecated packages that also errors out following npm install:

npm ERR! code 1
npm ERR! path /root/zotero-prime/client/zotero-client/node_modules/node-sass
npm ERR! command failed
npm ERR! command sh -c node scripts/build.js
npm ERR! Building: /usr/bin/node /root/zotero-prime/client/zotero-client/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli '/usr/bin/node',
npm ERR! gyp verb cli '/root/zotero-prime/client/zotero-client/node_modules/node-gyp/bin/node-gyp.js',
npm ERR! gyp verb cli 'rebuild',
npm ERR! gyp verb cli '--verbose',
npm ERR! gyp verb cli '--libsass_ext=',
npm ERR! gyp verb cli '--libsass_cflags=',
npm ERR! gyp verb cli '--libsass_ldflags=',
npm ERR! gyp verb cli '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb which failed Error: not found: python2
npm ERR! gyp verb which failed at getNotFoundError (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:13:12)
npm ERR! gyp verb which failed at F (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:68:19)
npm ERR! gyp verb which failed at E (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:80:29)
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/which/which.js:89:16
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/isexe/index.js:42:5
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/isexe/mode.js:8:5
npm ERR! gyp verb which failed at FSReqCallback.oncomplete (fs.js:168:21)
npm ERR! gyp verb which failed python2 Error: not found: python2
npm ERR! gyp verb which failed at getNotFoundError (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:13:12)
npm ERR! gyp verb which failed at F (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:68:19)
npm ERR! gyp verb which failed at E (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:80:29)
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/which/which.js:89:16
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/isexe/index.js:42:5
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/isexe/mode.js:8:5
npm ERR! gyp verb which failed at FSReqCallback.oncomplete (fs.js:168:21) {
npm ERR! gyp verb which failed code: 'ENOENT'
npm ERR! gyp verb which failed }
npm ERR! gyp verb check python checking for Python executable "python" in the PATH
npm ERR! gyp verb which failed Error: not found: python
npm ERR! gyp verb which failed at getNotFoundError (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:13:12)
npm ERR! gyp verb which failed at F (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:68:19)
npm ERR! gyp verb which failed at E (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:80:29)
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/which/which.js:89:16
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/isexe/index.js:42:5
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/isexe/mode.js:8:5
npm ERR! gyp verb which failed at FSReqCallback.oncomplete (fs.js:168:21)
npm ERR! gyp verb which failed python Error: not found: python
npm ERR! gyp verb which failed at getNotFoundError (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:13:12)
npm ERR! gyp verb which failed at F (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:68:19)
npm ERR! gyp verb which failed at E (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:80:29)
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/which/which.js:89:16
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/isexe/index.js:42:5
npm ERR! gyp verb which failed at /root/zotero-prime/client/zotero-client/node_modules/isexe/mode.js:8:5
npm ERR! gyp verb which failed at FSReqCallback.oncomplete (fs.js:168:21) {
npm ERR! gyp verb which failed code: 'ENOENT'
npm ERR! gyp verb which failed }
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
npm ERR! gyp ERR! stack at PythonFinder.failNoPython (/root/zotero-prime/client/zotero-client/node_modules/node-gyp/lib/configure.js:492:19)
npm ERR! gyp ERR! stack at PythonFinder. (/root/zotero-prime/client/zotero-client/node_modules/node-gyp/lib/configure.js:406:16)
npm ERR! gyp ERR! stack at F (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:68:16)
npm ERR! gyp ERR! stack at E (/root/zotero-prime/client/zotero-client/node_modules/which/which.js:80:29)
npm ERR! gyp ERR! stack at /root/zotero-prime/client/zotero-client/node_modules/which/which.js:89:16
npm ERR! gyp ERR! stack at /root/zotero-prime/client/zotero-client/node_modules/isexe/index.js:42:5
npm ERR! gyp ERR! stack at /root/zotero-prime/client/zotero-client/node_modules/isexe/mode.js:8:5
npm ERR! gyp ERR! stack at FSReqCallback.oncomplete (fs.js:168:21)
npm ERR! gyp ERR! System Linux 6.5.11-8-pve
npm ERR! gyp ERR! command "/usr/bin/node" "/root/zotero-prime/client/zotero-client/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd /root/zotero-prime/client/zotero-client/node_modules/node-sass
npm ERR! gyp ERR! node -v v12.22.9
npm ERR! gyp ERR! node-gyp -v v3.7.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2024-02-21T08_02_44_737Z-debug-0.log

Can't finish installation: zotero-client/build is not a directory

~/zotero-prime/client/zotero-standalone-build$ ./scripts/dir_build -p l`

Traceback (most recent call last):
  File "/home/mn/zotero-prime/client/zotero-build/xpi/build_xpi", line 69, in main
    raise Exception(src_dir + " is not a directory")
Exception: /home/mn/zotero-prime/client/zotero-client/build is not a directory

client install fails

after running npm run build
I see:

...
[cp] test/tests/data/snapshot
[ln] chrome/skin/default/zotero/treeitem-bill.png
[ln] chrome/skin/default/zotero/[email protected]
[ln] chrome/skin/default/zotero/treeitem-audioRecording.png
[ln] chrome/skin/default/zotero/[email protected]
Error: [Error: ENOENT: no such file or directory, stat 'resource/react.js'] {
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: 'resource/react.js' 
}

If I update all of the submodules to their master:

$ npm run build

> [email protected] build
> node ./scripts/build.js

node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module './lib/colors'
Require stack:


- /media/ssd0/xzss/home/git/zotprime/client/zotero-client/node_modules/colors/safe.js
- /media/ssd0/xzss/home/git/zotprime/client/zotero-client/scripts/build.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:94:18)
at Object.<anonymous> (/media/ssd0/xzss/home/git/zotprime/client/zotero-client/node_modules/colors/safe.js:9:14)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19) {
	code: 'MODULE_NOT_FOUND',
	requireStack: [
		'/media/ssd0/xzss/home/git/zotprime/client/zotero-client/node_modules/colors/safe.js',
		'/media/ssd0/xzss/home/git/zotprime/client/zotero-client/scripts/build.js',
	]
}


any advice on how to get client install working?

Error while installation

Hi

I am getting the following error

checking for pkg-config... no
pkg-config not found
configure: error: Please reinstall the pkg-config distribution
ERROR: Service 'app-zotero' failed to build: The command '/bin/sh -c DEBIAN_FRONTEND=noninteractive pecl download memcached-3.0.4 && tar xvzf memcached-3.0.4.tgz && cd memcached-3.0.4 && phpize && ./configure --enable-memcached-igbinary && make && make install' returned a non-zero code: 1

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.