GithubHelp home page GithubHelp logo

shen100 / wemall Goto Github PK

View Code? Open in Web Editor NEW
2.3K 2.3K 584.0 9.65 MB

基于react, node.js, go开发的微商城(含微信小程序)

License: GNU General Public License v2.0

Go 99.47% HTML 0.04% PHP 0.49%
go node react vue wexin

wemall's Introduction

微商城

近期主要精力在开发golang123, wemall先暂停3周

项目截图

微信小程序

项目环境搭建

  • 克隆代码
$ git clone https://github.com/shen100/wemall.git
  • 修改configuration.json
    进入wemall目录,将configuration.dev.json改名为configuration.json, 再找到UploadImgDir,填写图片上传目录为 {wemall所在目录}/upload/img, 举例:C:\dev\src\wemall\upload\img (Windows系统)或 /dev/src/wemall/upload/img (Mac OS X 或Linux系统)
{
  "go": {
    "UploadImgDir": "" /*图片上传的目录*/
  }
}
  • 修改config.js
    进入wemall/weixin/config目录,将config.dev.js改名为config.js

  • 配置nginx
    wemall/nginx/dev.wemall.com.conf文件拷贝到nginx的虚拟主机目录下, 再将wemall/nginx/server.keywemall/nginx/server.crt拷贝到某个目录下,然后修改nginx的虚拟主机目录下的dev.wemall.com.conf文件中server.keyserver.crt的路径

  • 配置hosts
    127.0.0.1 dev.wemall.com

  • 创建数据库
    先创建数据库如wemall,再use wemall,然后导入wemall/sql/wemall.sql

注意: 本地开发模式下,数据库是wemall,用户是root,密码是test1234
可以通过wemall/configuration.json配置文件进行修改

  • 安装node.js第三方模块
    进入wemall/nodejs目录,运行命令
$ npm install

如果安装失败,或速度慢,可尝试阿里的镜像

$ npm install --registry=https://registry.npm.taobao.org
  • 启动node.js程序
    进入wemall/nodejs目录,运行命令
$ npm start

再开一个新的命令行窗口, 运行命令

$ npm run staticServ
  • 运行go程序
    进入wemall目录,将configuration.dev.json改名为configuration.json, 运行
$ go run main.go
  • 运行微信小程序
    进入wemall/weixin目录,将config.dev.js改名为config.js, 然后通过微信web开发者工具来运行小程序

  • 访问网站后台
    在浏览器地址栏中输入https://dev.wemall.com/admin

技术选型

前端

  • web服务器: nginx
  • 后台渲染: node.js
  • M站框架集: vue, vuex, vue-router
  • M站UI组件库: vux
  • 后台管理框架集: react, redux, react-router-redux
  • 后台管理UI组件库: antd
  • 数据可视化: echarts
  • 富文本编辑器: ueditor
  • 打包工具: webpack
  • 构建工具: gulp

后台

  • web框架: iris
  • 路由: httprouter
  • 持久层框架: gorm
  • 数据库: mysql

go依赖的第三方库

说明
gopkg.in/kataras/iris.v6 iris web框架
github.com/jinzhu/gorm gorm 持久层框架
github.com/satori/go.uuid uuid生成工具

项目结构

目录或文件 说明
docs 文档
config 配置
controller 控制器
model 数据模型
utils 实用工具
nginx nginx配置及证书
nodejs 前端项目目录
sql sql文件目录
weixin 微信小程序项目目录
configuration.dev.json 项目配置文件
main.go go主程序入口

技术交流

qq群: 32550512

最后

求star,star就是继续下去的动力

License

GPL
Copyright (c) 2013-present, shen100

wemall's People

Contributors

shen100 avatar wanggz1992 avatar

Stargazers

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

Watchers

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

wemall's Issues

can't find packet

I flow the ReadMe step by step:

but when I run go run main.go:

main.go:13:2: cannot find package "wemall/config" in any of:
	/usr/local/src/go/src/wemall/config (from $GOROOT)
	/root/gopath/src/wemall/config (from $GOPATH)
main.go:14:2: cannot find package "wemall/model" in any of:
	/usr/local/src/go/src/wemall/model (from $GOROOT)
	/root/gopath/src/wemall/model (from $GOPATH)
main.go:15:2: cannot find package "wemall/route" in any of:
	/usr/local/src/go/src/wemall/route (from $GOROOT)
	/root/gopath/src/wemall/route (from $GOPATH)

If I run go get

package wemall/config: unrecognized import path "wemall/config" (import path does not begin with hostname)
package wemall/model: unrecognized import path "wemall/model" (import path does not begin with hostname)
package wemall/route: unrecognized import path "wemall/route" (import path does not begin with hostname)

any suggestion?

npm start error

hi shen,
我在npm start时遇到以下error,
请问可能是什么原因呢?

error log如下:
E:\Proj\wemall_clone\wemall\nodejs>npm start

[email protected] start E:\Proj\wemall_clone\wemall\nodejs
node app.js

Server running at :8010
events.js:182
throw er; // Unhandled 'error' event
^

Error: read ENOTCONN
at exports._errnoException (util.js:1016:11)
at WriteStream.Socket._read (net.js:484:20)
at WriteStream.Readable.read (stream_readable.js:431:10)
at WriteStream.Socket.read (net.js:366:43)
at resume
(_stream_readable.js:811:12)
at _combinedTickCallback (internal/process/next_tick.js:102:11)
at process._tickCallback (internal/process/next_tick.js:161:9)
at Function.Module.runMain (module.js:607:11)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: node app.js
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\Administrator\AppData\Roaming\npm-cache_logs\2017-06-25T02_18_18_865Z-debug.log

E:\Proj\wemall_clone\wemall\nodejs>

go run main.go

$ go run main.go
main.go:9:2: cannot find package "github.com/jinzhu/gorm" in any of:
/usr/local/go/src/github.com/jinzhu/gorm (from $GOROOT)
/home/linyuan/projects/src/src/github.com/jinzhu/gorm (from $GOPATH)
main.go:8:2: cannot find package "github.com/jinzhu/gorm/dialects/mysql" in any of:
/usr/local/go/src/github.com/jinzhu/gorm/dialects/mysql (from $GOROOT)
/home/linyuan/projects/src/src/github.com/jinzhu/gorm/dialects/mysql (from $GOPATH)
main.go:10:2: cannot find package "gopkg.in/kataras/iris.v6" in any of:
/usr/local/go/src/gopkg.in/kataras/iris.v6 (from $GOROOT)
/home/linyuan/projects/src/src/gopkg.in/kataras/iris.v6 (from $GOPATH)
main.go:11:2: cannot find package "gopkg.in/kataras/iris.v6/adaptors/httprouter" in any of:
/usr/local/go/src/gopkg.in/kataras/iris.v6/adaptors/httprouter (from $GOROOT)
/home/linyuan/projects/src/src/gopkg.in/kataras/iris.v6/adaptors/httprouter (from $GOPATH)
main.go:12:2: cannot find package "gopkg.in/kataras/iris.v6/adaptors/sessions" in any of:
/usr/local/go/src/gopkg.in/kataras/iris.v6/adaptors/sessions (from $GOROOT)
/home/linyuan/projects/src/src/gopkg.in/kataras/iris.v6/adaptors/sessions (from $GOPATH)
main.go:13:2: cannot find package "wemall/config" in any of:
/usr/local/go/src/wemall/config (from $GOROOT)
/home/linyuan/projects/src/src/wemall/config (from $GOPATH)
main.go:14:2: cannot find package "wemall/model" in any of:
/usr/local/go/src/wemall/model (from $GOROOT)
/home/linyuan/projects/src/src/wemall/model (from $GOPATH)
main.go:15:2: cannot find package "wemall/route" in any of:
/usr/local/go/src/wemall/route (from $GOROOT)
/home/linyuan/projects/src/src/wemall/route (from $GOPATH)
请问,1、go不需要编译就能执行了吗? 2、以上错误如何解决?

Crash error when go run main.go

go run main.go 
# wemall/controller/ueditor
controller/ueditor/ueditor.go:76:21: multiple-value uuid.NewV4() in single-value context
# wemall/controller/common
controller/common/upload.go:67:21: multiple-value uuid.NewV4() in single-value context

技术选型很棒

哥我想问下,是用nodejs开发后台管理界面的逻辑,用go开发后台的逻辑,为啥不用node开发后台的逻辑呢。就目前来看你node开发后台逻辑怎么样?

关于iris.v6这个框架问题

iris.v6这个gopkg.in上的包,go get的时候经常不成功,似乎现在移到github.com/kataras /iris上,不过两者还有挺大的区别,如果iris.v6换成github.com/kataras/iris的这个会不会更好一点,我手工换了一下,没有成功,不晓得官方有没有换的打算

iris能否升级?

既然用了iris这个框架,那必须是要用最新的了,要不然咋能看到用这个框架的好处呢。现在iris也到了7的版本,iris作者每天打了鸡血似的守着他的框架,优化了很多地方。更何况go版本现在已经是1.8.3了,肯定新版的iris和新版的go才是最般配的。还有就是gopkg.in搞不成事情,用github的地址多好啊。

VSC下调试代码,出错,请教:

你好,我没学过什么编程,更没学过GO语言,想调试一下这程序,卡在:
cannot use "github.com/kataras/iris/context".Map literal (type "github.com/kataras/iris/context".Map) as type "github.com/kataras/iris/context".JSON in argument to ctx.JSON

Mac 关于 'go run main.go' 报错。google 查过了无果,求助。

环境

  • OSX 10.11.6
  • brew install go

报错如下

main.go:9:2: cannot find package "github.com/jinzhu/gorm" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/github.com/jinzhu/gorm (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/github.com/jinzhu/gorm (from $GOPATH)
main.go:8:2: cannot find package "github.com/jinzhu/gorm/dialects/mysql" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/github.com/jinzhu/gorm/dialects/mysql (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/github.com/jinzhu/gorm/dialects/mysql (from $GOPATH)
main.go:10:2: cannot find package "gopkg.in/kataras/iris.v6" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/gopkg.in/kataras/iris.v6 (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/gopkg.in/kataras/iris.v6 (from $GOPATH)
main.go:11:2: cannot find package "gopkg.in/kataras/iris.v6/adaptors/httprouter" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/gopkg.in/kataras/iris.v6/adaptors/httprouter (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/gopkg.in/kataras/iris.v6/adaptors/httprouter (from $GOPATH)
main.go:12:2: cannot find package "gopkg.in/kataras/iris.v6/adaptors/sessions" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/gopkg.in/kataras/iris.v6/adaptors/sessions (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/gopkg.in/kataras/iris.v6/adaptors/sessions (from $GOPATH)
main.go:13:2: cannot find package "wemall/config" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/wemall/config (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/wemall/config (from $GOPATH)
main.go:14:2: cannot find package "wemall/model" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/wemall/model (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/wemall/model (from $GOPATH)
main.go:15:2: cannot find package "wemall/route" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/wemall/route (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/wemall/route (from $GOPATH)
192:wemall LuZhouheng$ cd
192:~ LuZhouheng$ cd
192:~ LuZhouheng$ vim .bashrc
192:~ LuZhouheng$ source .bashrc
-bash: rt: command not found
192:~ LuZhouheng$ cd wemall
192:wemall LuZhouheng$ go run main.go
main.go:9:2: cannot find package "github.com/jinzhu/gorm" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/github.com/jinzhu/gorm (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/github.com/jinzhu/gorm (from $GOPATH)
main.go:8:2: cannot find package "github.com/jinzhu/gorm/dialects/mysql" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/github.com/jinzhu/gorm/dialects/mysql (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/github.com/jinzhu/gorm/dialects/mysql (from $GOPATH)
main.go:10:2: cannot find package "gopkg.in/kataras/iris.v6" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/gopkg.in/kataras/iris.v6 (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/gopkg.in/kataras/iris.v6 (from $GOPATH)
main.go:11:2: cannot find package "gopkg.in/kataras/iris.v6/adaptors/httprouter" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/gopkg.in/kataras/iris.v6/adaptors/httprouter (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/gopkg.in/kataras/iris.v6/adaptors/httprouter (from $GOPATH)
main.go:12:2: cannot find package "gopkg.in/kataras/iris.v6/adaptors/sessions" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/gopkg.in/kataras/iris.v6/adaptors/sessions (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/gopkg.in/kataras/iris.v6/adaptors/sessions (from $GOPATH)
main.go:13:2: cannot find package "wemall/config" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/wemall/config (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/wemall/config (from $GOPATH)
main.go:14:2: cannot find package "wemall/model" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/wemall/model (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/wemall/model (from $GOPATH)
main.go:15:2: cannot find package "wemall/route" in any of:
	/usr/local/Cellar/go/1.8.3/libexec/src/wemall/route (from $GOROOT)
	/Users/LuZhouheng/Documents/go_workspace/src/wemall/route (from $GOPATH)

English Readme

Possible to integrate English readme? How can I help?

Deploying in Heroku

I am having issue while application build on top of this project in heroku.

这个项目还维护么?

wemall/wexin/pages/product/product.js
product.contents = JSON.parse(product.detail); 70行,这里的detail可能是字符串,直接报错了

npm run staticServ 启动错误

npm run staticServ

[email protected] staticServ /var/www/wemall/src/nodejs
node staticServ.js

/var/www/wemall/src/nodejs/node_modules/serve-static/index.js:40
throw new TypeError('root path required')
^

TypeError: root path required
at Function.serveStatic [as static] (/var/www/wemall/src/nodejs/node_modules/serve-static/index.js:40:11)
at Object. (/var/www/wemall/src/nodejs/staticServ.js:42:44)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:427:7)
at startup (bootstrap_node.js:151:9)

npm ERR! Linux 4.9.41-moby
npm ERR! argv "/home/laradock/.nvm/versions/node/v7.10.0/bin/node" "/home/laradock/.nvm/versions/node/v7.10.0/bin/npm" "run" "staticServ"
npm ERR! node v7.10.0
npm ERR! npm v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] staticServ: node staticServ.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] staticServ script 'node staticServ.js'.
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 wemall package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node staticServ.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs wemall
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls wemall
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! /root/.npm/_logs/2017-08-27T14_11_28_404Z-debug.log

请教原因 Error: read ENOTCONN

nodejs console显示如下:
C:\Turing Projects\wemall\nodejs>node app
Server running at :8010
events.js:183
throw er; // Unhandled 'error' event
^

Error: read ENOTCONN
at _errnoException (util.js:1022:11)
at WriteStream.Socket._read (net.js:503:20)
at WriteStream.Readable.read (stream_readable.js:442:10)
at WriteStream.Socket.read (net.js:375:43)
at resume
(_stream_readable.js:822:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
at Function.Module.runMain (module.js:695:11)
at startup (bootstrap_node.js:188:16)
at bootstrap_node.js:609:3

log文件内容如下
0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files\nodejs\node.exe',
1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli 'start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle [email protected]prestart: [email protected]
6 info lifecycle [email protected]
start: [email protected]
7 verbose lifecycle [email protected]start: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]
start: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Turing Projects\wemall\nodejs\node_modules.bin;C:\Users\qiuho\AppData\Roaming\npm;C:\Program Files\nodejs;C:\Program Files\RA2HP;C:\ProgramData\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0;C:\Program Files\nodejs;C:\Program Files\MySQL\MySQL Utilities 1.6;C:\Users\qiuho.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit;C:\Program Files\Microsoft SQL Server\120\Tools\Binn;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Users\qiuho\AppData\Local\Microsoft\WindowsApps;C:\Users\qiuho\AppData\Roaming\npm
9 verbose lifecycle [email protected]start: CWD: C:\Turing Projects\wemall\nodejs
10 silly lifecycle [email protected]
start: Args: [ '/d /s /c', 'node app.js' ]
11 silly lifecycle [email protected]start: Returned: code: 1 signal: null
12 info lifecycle [email protected]
start: Failed to exec start script
13 verbose stack Error: [email protected] start: node app.js
13 verbose stack Exit status 1
13 verbose stack at EventEmitter. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:285:16)
13 verbose stack at emitTwo (events.js:126:13)
13 verbose stack at EventEmitter.emit (events.js:214:7)
13 verbose stack at ChildProcess. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at emitTwo (events.js:126:13)
13 verbose stack at ChildProcess.emit (events.js:214:7)
13 verbose stack at maybeClose (internal/child_process.js:925:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid [email protected]
15 verbose cwd C:\Turing Projects\wemall\nodejs
16 verbose Windows_NT 10.0.15063
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "start"
18 verbose node v8.11.1
19 verbose npm v5.6.0
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] start: node app.js
22 error Exit status 1
23 error Failed at the [email protected] start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

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.