在 Nodeclub 基础上仿花瓣的一个小项目, 有兴趣的小伙伴搞起 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
pinclub
V2EX    分享创造

在 Nodeclub 基础上仿花瓣的一个小项目, 有兴趣的小伙伴搞起

  •  
  •  
    pinclub 2017-10-24 18:22:12 +08:00 2715 次点击
    这是一个创建于 2986 天前的主题,其中的信息可能已经有所发展或是发生改变。

    功能还在完善中, 不知道有没有感兴趣的小伙伴一起搞搞.

    Pinclub

    node version build status coverage report Code Climate Gitter

    介绍 / Intro

    Pinclub 是基于 Nodeclub 进行的二次开发. 增加了瀑布流展示方式, 主要参考花瓣网的设计风格(感谢花瓣网的设计师和前端工程师的辛勤工作), 加入了 hanming 距离的算法, 当然是在 mongodb 中使用了 function 的形式实现.

    状态 / Status

    Pinclub 目前处于开发阶段,尚未发布 Stable 版本.

    图片相似度算法说明 / About HammingDistance

    在 Topic 模型中加入了 image 的相关属性值, 其中就包括 image_hash, 使用 imghash 模块生成了 16 bits 的二进制字符串.

    在 Mongodb 中创建了一个 function 命名为 hammingDistance, 代码如下:

    function (a, b) { if (typeof(a) === "undefined" || typeof(b) === "undefined") return 64; var aa = a.split(""); var bb = b.split(""); var count = 0; for (var i = 0; i < aa.length; i++) if (aa[i] !== bb[i]) count++; return count; } 

    通过 mongo 命令行创建 Function

    创建脚本:

    db.system.js.save( { _id: "hammingDistance", value : function (a, b) { if (typeof(a) === "undefined" || typeof(b) === "undefined") return 64; var aa = a.split(""); var bb = b.split(""); var count = 0; for (var i = 0; i < aa.length; i++) if (aa[i] !== bb[i]) count++; return count; } } ) 

    Chrome 插件获取外部图

    如果目标网站做了引用保护,则无法完成图片的 Get 操作

    插件下载地址 / Download Chrome plugin

    插件应用商店地址 / Download Chrome plugin from web store

    插件项目地址 / Plugin Project

    TODO / How to Contribute

    如果你想贡献一份力量, 请查看 TODO 列表

    安装部署

    不保证 Windows 系统的兼容性

    线上跑的是 Node.js v4.4.0,MongoDB 是 v3.0.5,Redis 是 v3.0.3。

    1. 安装 `Node.js[必须]` `MongoDB[必须]` `Redis[必须]` 2. 启动 MongoDB 和 Redis 3. `$ make install` 安装 Nodeclub 的依赖包 4. `cp config.default.js config.js` 请根据需要修改配置文件 5. `$ make test` 确保各项服务都正常 6. `$ node app.js` 7. visit `http://localhost:3000` 8. done! 

    API 接口文档

    使用 npm run apidoc 命令在本地生成文档后, 访问: http://localhost:3000/public/apidoc

    截图

    首页 上传图片 设置 board 图片 box Get 图片 Dashboard 用户列表 板块列表 板块弹出模态框

    关于 Nodeclub

    Nodeclub 是使用 Node.jsMongoDB 开发的社区系统,界面优雅,功能丰富,小巧迅速, 已在 Node.js 中文技术社区 CNode( http://cnodejs.org) 得到应用,但你完全可以用它搭建自己的社区。

    测试(完善中)

    跑测试

    $ make test 

    跑覆盖率测试

    $ make test-cov 

    贡献

    Pinclub 可以联系 @hhdem

    Nodeclub 有任何意见或建议都欢迎提 issue,或者直接提给 @alsotang

    License

    Pinclub is released under the MIT License. Have at it.

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2760 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSIO: 3.9.8.5 21ms UTC 13:37 PVG 21:37 LAX 05:37 JFK 08:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86