V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
turing
V2EX  ›  Node.js

Candy 基于多说社交评论的极简化论坛系统

  •  
  •   turing · 2013-08-07 21:08:40 +08:00 · 17056 次点击
    这是一个创建于 4127 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看图:



    这个是基于去年还是前年我做那个handybbs(http://handybbs.com)的想法写的。这次不是用wp来做,而是用node来实现。

    目前实现了多说单点登录(就是登录网站的同时就登录多说,从多说评论框登出的时候就登出网站),本地的用户系统和多说同步,论坛板块相关的信息,帖子信息还是放在本地。

    这样就实现了如果你想做一个论坛,就不用装discuz那样巨大的解决方案,直接在多说申请一个网站,然后 npm install candy 一下就可以把论坛跑起来。本地帖子数据同步到多说后,整个论坛的数据实际上都存在云上了。

    candy 基于 express/mongodb 前端是 angular.js/bootstrap 等,响应式设计。在考虑可嵌入的方案(就是嵌入一份板块,到你自己的页面)。

    Github:

    https://github.com/turingou/candy

    目前在开发过程中,beta还没到,下载下来玩玩可以,请勿尝试建正式站~
    第 1 条附言  ·  2013-08-08 23:57:48 +08:00
    - 0.0.6 大规模样式变更,确定风格。

    第 2 条附言  ·  2013-08-10 14:48:01 +08:00
    - 0.0.8 逻辑完成,大部分页面完成,完美支持markdown发帖排版

    第 3 条附言  ·  2013-08-14 23:50:02 +08:00
    candy 0.1.0 展示站已发布:

    http://candy.menkr.com/
    第 4 条附言  ·  2013-08-16 00:24:25 +08:00
    第 5 条附言  ·  2013-08-20 01:51:01 +08:00
    - 0.1.3

    完成附件上传,下载管理与数据统计,以及附件预览的ctrler与部分界面
    110 条回复    2016-07-17 18:05:25 +08:00
    1  2  
    Mihuwa
        1
    Mihuwa  
       2013-08-07 21:16:46 +08:00
    酷。。。
    alsotang
        2
    alsotang  
       2013-08-07 21:22:57 +08:00
    cool +1
    sugarit
        3
    sugarit  
       2013-08-07 21:27:17 +08:00
    想法很棒
    suziewong
        4
    suziewong  
       2013-08-07 21:47:17 +08:00
    楼主最近开的坑好多啊..。绝对高产啊:)
    RelativeLayout
        5
    RelativeLayout  
       2013-08-07 21:50:30 +08:00 via Android
    赞~
    turing
        6
    turing  
    OP
       2013-08-07 21:56:38 +08:00
    @suziewong 是的。。最近空窗期,从支付宝离职了,下个礼拜开始新工作,有时间整理一下自己之前开坑的项目。
    huazhouji
        7
    huazhouji  
       2013-08-07 22:20:47 +08:00 via iPhone
    赞一个
    turing
        8
    turing  
    OP
       2013-08-08 05:24:03 +08:00
    - ship to 0.0.5 管理后台部分完成,变更了静态资源的托管方式

    candy 今晚升级了两个版本,一跃到0.0.5了,小有成就感~ 推荐一个我国程序员写的static sever ,可以当做express中间件来用,也可以自己搭建 static server: ifile,非常好用,性能也很不错,直接提升到接近nginx直接代理的效率 -> http://t.cn/zQ02gAy
    thinkxen
        9
    thinkxen  
       2013-08-08 09:06:07 +08:00 via Android
    果断收藏~
    aaronlam
        10
    aaronlam  
       2013-08-08 10:32:10 +08:00
    这个想法真心不错,又可以简化论坛又可简化资源。。
    detailyang
        11
    detailyang  
       2013-08-08 11:42:54 +08:00
    还有这种方法 so cool~
    catsky
        12
    catsky  
       2013-08-08 12:06:22 +08:00
    cool, man
    aisin
        13
    aisin  
       2013-08-08 12:37:32 +08:00
    非常帅气, 收藏
    turing
        14
    turing  
    OP
       2013-08-08 16:29:35 +08:00
    感谢ls各位的支持~ XD
    turing
        15
    turing  
    OP
       2013-08-08 20:25:24 +08:00
    贴个后台

    turing
        16
    turing  
    OP
       2013-08-08 23:53:17 +08:00
    - 0.0.6 大规模样式变更,让candy看起来更candy一些

    mefind
        17
    mefind  
       2013-08-09 14:43:30 +08:00
    不错,大爱至简
    Showfom
        18
    Showfom  
       2013-08-09 15:26:28 +08:00
    没有在线演示吗?
    turing
        19
    turing  
    OP
       2013-08-09 18:39:24 +08:00
    @Showfom 没有,我打算写到0.1.0版本放出demo
    pandada8
        20
    pandada8  
       2013-08-09 19:26:50 +08:00   ❤️ 1
    要是能跟WP版一样能同步到本地数据库就好了……
    turing
        21
    turing  
    OP
       2013-08-09 19:35:07 +08:00
    @pandada8 用户数据,帖子数据都是存在本地的,回帖的数据是可以同步到本地来的
    rwx
        22
    rwx  
       2013-08-09 19:38:32 +08:00
    cool idea!
    allenm
        23
    allenm  
       2013-08-09 19:46:58 +08:00
    太高效了,赞!
    caomu
        24
    caomu  
       2013-08-09 20:52:42 +08:00
    赞,之前有用Disqus搭建的,现在也有用国内社交留言系统搭建的了。
    byron
        25
    byron  
       2013-08-09 22:01:17 +08:00   ❤️ 1
    wow,我在里面看到了自己。
    Ps:楼主是看到这句话决定重新开发的么?


    PPS:楼主要创业?
    turing
        26
    turing  
    OP
       2013-08-09 22:44:57 +08:00
    @byron 恩,就是我从handybbs上爬下来的头像,因为暂时没有把发帖功能做完,这个是demo。
    当初写handybbs的时候就打算做一份node,但是时间一长,加上side projects比较多,就暂时放弃了,最近又有做一个社区的想法,加上有时间就开始写了
    turing
        27
    turing  
    OP
       2013-08-10 00:51:17 +08:00
    - 0.0.8 发帖,搜索帖子,板块列表,主页逻辑和页面均已完成。

    demo站点准备中,静候0.1.0 !
    turing
        28
    turing  
    OP
       2013-08-10 14:48:17 +08:00
    贴个0.0.8 的图:

    tension
        29
    tension  
       2013-08-10 14:51:50 +08:00
    不错 收藏!!!
    jeeve
        30
    jeeve  
       2013-08-10 15:35:37 +08:00
    很不错,等待demo上线,发布后果断用这个程序搞一个站点。

    极简、社交、评论 都是最爱!
    turing
        31
    turing  
    OP
       2013-08-11 02:20:12 +08:00
    - 0.0.9 新增多说widgets 提供了最近访客,最新评论,和日周月热评文章功能,开始进行全面测试。
    lhx2008
        32
    lhx2008  
       2013-08-11 09:41:16 +08:00
    负载怎么样,和xiuno比有什么特色(好吧好像不太合适)
    dongbeta
        33
    dongbeta  
       2013-08-11 10:22:48 +08:00
    为什么不基于 disqus 做?
    loveminds
        34
    loveminds  
       2013-08-11 13:28:08 +08:00 via iPhone
    @dongbeta 那玩意说不准啥时候就被墙了
    Miaoz
        35
    Miaoz  
       2013-08-11 14:49:40 +08:00
    看起来真不错!
    sophy
        36
    sophy  
       2013-08-11 15:05:12 +08:00
    @dongbeta 墙了咋办呢
    horsley
        37
    horsley  
       2013-08-11 15:29:30 +08:00
    有过同样的想法,只是想到数据都在多说,根本没有可用的读取api接口,只能嵌他家的js整片调取,非常不爽
    loveminds
        38
    loveminds  
       2013-08-11 17:07:33 +08:00
    额怎么设置监听端口什么的
    turing
        39
    turing  
    OP
       2013-08-12 01:39:00 +08:00
    @horsley 多说有丰富的api接口,看文档啊亲
    turing
        40
    turing  
    OP
       2013-08-12 01:40:13 +08:00
    @loveminds readme.md 里有 sample code
    jinbakei
        41
    jinbakei  
       2013-08-12 01:58:29 +08:00
    哎呀lz和我想到一块去了!
    thewei
        42
    thewei  
       2013-08-12 09:38:00 +08:00
    @turing 这东西感觉很不错,是不是以后可以由node扩展出php版的
    jimliu
        43
    jimliu  
       2013-08-12 18:35:47 +08:00
    看起来很不错,支持!
    jxjhheric
        44
    jxjhheric  
       2013-08-12 19:36:15 +08:00 via iPhone
    期望demo
    itfanr
        45
    itfanr  
       2013-08-12 19:47:30 +08:00
    @dongbeta 因为打不开twitter
    itfanr
        46
    itfanr  
       2013-08-12 19:48:45 +08:00
    期望demo
    fatpa
        47
    fatpa  
       2013-08-12 23:43:29 +08:00
    @horsley 多说是有很多接口可以调用的
    Hysteria
        48
    Hysteria  
       2013-08-13 00:01:26 +08:00
    cool. 话说撸主好活跃。
    mengli
        49
    mengli  
       2013-08-13 00:14:43 +08:00
    很喜欢这个风格
    jankan
        50
    jankan  
       2013-08-13 00:21:47 +08:00
    很不错~收藏
    turing
        51
    turing  
    OP
       2013-08-13 00:45:52 +08:00
    感谢楼上各位的关注,昨天我刚回到深圳,在住处安顿下来,这几天要添置一些杂物,收拾整理,估计0.1.0 发布要延迟几天~
    fanghui
        52
    fanghui  
       2013-08-13 09:01:32 +08:00
    打开天窗说亮话,喜欢,简单,收藏
    turing
        53
    turing  
    OP
       2013-08-14 23:02:05 +08:00
    candy 已提供中文说明文档:

    https://github.com/turingou/candy/blob/master/README_zh-cn.md

    我正在搭建demo站点,估计过半个小时就可以看到。
    xLzgkddTywk9ALsX
        54
    xLzgkddTywk9ALsX  
       2013-08-14 23:35:50 +08:00
    期待你的beta
    turing
        55
    turing  
    OP
       2013-08-14 23:49:55 +08:00
    candy 0.1.0 展示站已发布:

    http://candy.menkr.com/
    binyuJ
        56
    binyuJ  
       2013-08-14 23:56:53 +08:00
    实际上你是主贴需要自己管理,回帖都用多说代替吧?
    turing
        57
    turing  
    OP
       2013-08-15 00:03:52 +08:00
    @binyuJ 是的,主帖子的信息会被同步到多说上,但并不是所有数据。
    mefind
        58
    mefind  
       2013-08-15 01:06:23 +08:00
    这个方便是方便,要哪天多说挂了怎么办?

    | 收录怎么样?
    turing
        59
    turing  
    OP
       2013-08-15 01:13:45 +08:00
    @mefind 云服务都是这样的,多说只是个通道,比如登录,还是用新浪,腾讯,以及其他各种社交网站登录的,只要这里边有一个渠道挂了,相应的用户就无法登录你的站点了。
    xLzgkddTywk9ALsX
        60
    xLzgkddTywk9ALsX  
       2013-08-15 02:05:23 +08:00
    移动端UI有没有优化的计划?
    turing
        61
    turing  
    OP
       2013-08-15 02:28:00 +08:00
    @buobuk 有的,现在基本能看。但是有些细节处理的还不够好。
    horsley
        62
    horsley  
       2013-08-15 12:03:38 +08:00
    @fatpa 是啊 但是看遍了文档就是没有从他那边读出的,写入的有很多,这还不明白
    kimwang
        63
    kimwang  
       2013-08-15 12:55:58 +08:00
    楼主这是一个新玩法啊,不错,构思也很好,从最小的应用来实践自己想法。
    应该说,发言是非常方便的,因为支持很多第三方登陆,不过个人喜好问题,不太喜欢把数据留在别人的地方,或许我需要再多了解楼主这款程序。

    在别的节点看过楼主发的贴子,讨论别人眼中的程序员什么什么的,是否应该坚持自己的路那个,感觉应该是比较有想法的一个人,坚持一下吧,相信你一定能成功,而且一定要熬到成功,这样那些“好事者”就可以闭嘴了,祝福!
    fatpa
        64
    fatpa  
       2013-08-15 22:38:27 +08:00
    @horsley 有什么想要了解的可以问我,如果是可以开放的接口我会告诉你的 :-)
    taresky
        65
    taresky  
       2013-08-15 22:49:15 +08:00
    很棒啊。。。但是我这样的非程序员还是挺难上手啊,忙完了这阵学习看看,像FarBox那么简单就好了 。 (/≥▽≤/)
    turing
        66
    turing  
    OP
       2013-08-16 00:24:59 +08:00
    @taresky 谢谢~

    Candy 0.2.0 开发计划大纲已经定下,欢迎提交你认为切实有用的功能~

    http://candy.menkr.com/thread/520d00630e5cd3752200001c
    brianlai
        67
    brianlai  
       2013-08-16 00:28:35 +08:00
    赞啊,很需要这类的东西~不知道楼主坐标在哪里?@turing
    turing
        68
    turing  
    OP
       2013-08-16 00:29:32 +08:00
    @brianlai 深圳~
    xseven007
        69
    xseven007  
       2013-08-16 00:52:52 +08:00 via Android
    @turing What a cool job ...决定用这个代替原来的wecenter了。。如果原来我服务器上有apache,是不是要用proxy的mod来调整到candy的端口?或者有什么其他方法么。
    brianlai
        70
    brianlai  
       2013-08-16 01:03:03 +08:00
    @turing 哦,回深圳了,还以为还在杭州。
    turing
        71
    turing  
    OP
       2013-08-16 02:28:54 +08:00
    @xseven007 需要用 apache proxy 到你的node服务跑起来的端口,然后用守护程序包装 candy 一直运行就可以了
    elvba
        72
    elvba  
       2013-08-16 03:27:31 +08:00
    Candy 和v2ex有什么区别?
    xseven007
        73
    xseven007  
       2013-08-16 08:59:24 +08:00
    @elvba 最简单的区分方法就是V2EX用python,candy用nodejs
    xseven007
        74
    xseven007  
       2013-08-16 09:00:29 +08:00
    @turing node版本推荐用哪个?担心会有不兼容
    Zuckonit
        75
    Zuckonit  
       2013-08-16 09:03:56 +08:00
    Cindy is Kindly
    Zuckonit
        76
    Zuckonit  
       2013-08-16 09:04:16 +08:00
    @Zuckonit Sorry, Candy T_T
    horsley
        77
    horsley  
       2013-08-16 09:32:54 +08:00
    @fatpa http://dev.duoshuo.com/docs 你看这里的接口文档,都是把数据弄到多说的,就没有能读出来的,只有一个读出来评论数量还有批量传回本地的,就不能说我只把多说作为一个存储那样去调用每篇文章独立的评论数据,一定只能通过官方的嵌入js来搞,虽然可以自定义css,但是还是定制性很差
    Nourl
        78
    Nourl  
       2013-08-16 10:15:27 +08:00
    非常非常的赞!很喜欢这种简单、实用的程序,前端特赞! BTW, 多说的数据是存在哪的?云上?什么云?
    turing
        79
    turing  
    OP
       2013-08-16 11:51:16 +08:00
    @xseven007 不会不兼容,你可以在本机上测试一下。我之前引用了一个要求>0.10.x的中间件,所以才会导致编译失败,现在已经暂时删除了ifile的引用。
    lch21
        80
    lch21  
       2013-08-16 12:08:15 +08:00
    QQ
    lch21
        81
    lch21  
       2013-08-16 12:09:14 +08:00
    试验QQ 登录,页面死循环
    xseven007
        82
    xseven007  
       2013-08-16 15:09:39 +08:00
    @turing 我用git上面那个测试,server.js出现这个..
    module.js:340
    throw err;
    ^
    Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at new Server (/root/test/candy/app.js:13:19)
    at Object.<anonymous> (/root/test/candy/server.js:3:5)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    turing
        83
    turing  
    OP
       2013-08-16 15:52:44 +08:00   ❤️ 1
    @xseven007 没有按照好依赖,git clone 下来之后先 npm install 一遍。
    xseven007
        84
    xseven007  
       2013-08-16 16:10:18 +08:00
    @turing thanks..我看了一下发现默认的数据库是MongoDB..这个可以修改吧,话说怎么修改成蛋疼的MYSQL捏
    turing
        85
    turing  
    OP
       2013-08-16 16:15:13 +08:00
    @xseven007 正在考虑支持多种数据库,但这个功能估计 0.2.0 版本不会上线~
    underone
        86
    underone  
       2013-08-16 16:17:26 +08:00   ❤️ 1
    轻量级很不错啊!
    xseven007
        87
    xseven007  
       2013-08-16 16:18:57 +08:00
    @turing 我发现好像要装好多东西哦..感觉每个node_modules里面的东西都要npm install 一边..是不是我错得好深
    ccbikai
        88
    ccbikai  
       2013-08-16 16:52:07 +08:00 via Android
    多说官方论坛也是自己写的。很不错。

    我今天发了个帖子,但是有人回复了,没有收到提醒。

    多说的论坛是可以收到提醒的
    turing
        89
    turing  
    OP
       2013-08-16 17:51:50 +08:00   ❤️ 1
    @xseven007 没错的,node依赖都安装在本地,比较冗余。
    @ccbikai 确实,在其他的站点没有收到提醒,因为将本地用户同步到多说存在一些问题,暂时没在展示站点加上。
    xseven007
        90
    xseven007  
       2013-08-16 19:25:10 +08:00
    @turing 还有就是MongoDB本身就比较烧内存...作为轻量化的初衷(我个人觉得应该是轻量的),数据库方式应该选择最轻便的(我也知道MYSQL也比较烧内存).请考虑更轻量的方案,谢谢
    fatpa
        91
    fatpa  
       2013-08-17 01:35:17 +08:00
    @horsley 你看一下「多说组件」,里面的接口就都是从多说获取数据出来的。话说多说开放主题自定义的接口了,详情请查看Github:https://github.com/duoshuo/duoshuo-embed.css
    xLzgkddTywk9ALsX
        92
    xLzgkddTywk9ALsX  
       2013-08-17 14:19:51 +08:00
    有没有可能与新浪微博相册对接? 上传力图直接传到微博并调用?
    xseven007
        93
    xseven007  
       2013-08-17 19:52:51 +08:00
    @turing 反代后每次登录的时候会跳到candy的端口,..如何设置不跳到端口
    turing
        94
    turing  
    OP
       2013-08-18 18:06:58 +08:00
    @xseven007 这个似乎无解。。
    colvin
        95
    colvin  
       2013-08-18 18:13:44 +08:00   ❤️ 1
    管理员的账号,也是需要社会化账号?如果这样,安全性有些让人担心。

    其次,即使没有注册功能,那么也需要有个邀请登陆功能, 现在这样,对于批量的垃圾用户登录如何规避?从运营商来说,有时候并不想一些人来论坛发帖。
    turing
        96
    turing  
    OP
       2013-08-18 18:27:56 +08:00
    @colvin 安全性倒没什么问题。。邀请登录是可以做的,这个挺有意思。
    colvin
        97
    colvin  
       2013-08-18 18:39:05 +08:00
    @turing 其实在v这里,社区/论坛程序,应该是个热门,每次出来一个这样的作品,都会有一段时间的小高潮,同时,高潮过后,也就过了。一个很大的原因是程序的后续维护性。所以很多优秀的作品,然后,就没有然后了。
    turing
        98
    turing  
    OP
       2013-08-18 18:51:39 +08:00
    @colvin 我有很多side projects,有几个我是一直写的,candy 是其中之一。其实你看这个想法我最初用php做出来的时候是一年多之前了。
    colvin
        99
    colvin  
       2013-08-18 19:45:10 +08:00
    @turing 嗯,如果可以把这个产品做好,可以持续下去就很好。
    mozii
        100
    mozii  
       2013-08-18 19:52:57 +08:00
    私聊功能会有么?
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:25 · PVG 03:25 · LAX 11:25 · JFK 14:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.