社区网站系统 jsGen

MIT
JavaScript
跨平台
2013-03-29
tsl0922

jsGen是用纯JavaScript编写的新一代开源社区网站系统,主要用于搭建SNS类型的专业社区,对客户端AngularJS应用稍作修改也可变成多用户博客系统、论坛或者CMS内容管理系统。

{jsGen} 0.7.x

——JavaScript Generated

ENGLISH README

在线演示及交流社区:AngularJS中文社区

注意,从0.6.x版使用了redis!请先安装redis再启动jsGen!

0.7.x更新说明(开发中)

  1. 调整前端代码框架,使用bower和gruntjs管理代码;

  2. 第一次启动需带install参数,用于初始化MongoDB数据库;

  3. 文章编辑页面增加localStorage本地存储;

  4. 线上模式和开发模式的端口统一为3000,进入开发模式的命令为:

    node app.js --dev

简介 (Introduction)

JsGen是用纯JavaScript编写的新一代开源社区网站系统,主要用于搭建SNS类型的专业社区,对客户端AngularJS应用稍作修改也可变成多用户博客系统、论坛或者CMS内容管理系统。

jsGen基于NodeJS编写服务器端程序,提供静态文件响应和REST API接口服务。基于AngularJS编写浏览器端应用,构建交互式网页UI视图。基于MongoDB编写数据存储系统。

安装 (Installation)

系统需要Node.js 0.10.x和mongoDB 2.4.x Windows环境需要Python2.7和VS2012(用于编译node-gyp及其它需要编译的Node.js插件)

Dependencies: Node.js 0.10.x, redis 2.6.12, mongoDB 2.4.x. Windows: Python2.7 and VS2012

config目录下的config.js配置jsGen运行参数,包括监听端口、数据库等,内有说明。

api目录下的install.js是jsGen运行初始化文件,设置管理员初始密码,邮箱,内有说明。

git clone git://github.com/zensh/jsgen.git
cd jsgen
npm install node-gyp    //windows需要先运行此命令,linux不需要
                        //此命令依赖python和vs2012,请参考 https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup
npm install             //npm安装依赖模块,请确保依赖模块全部安装好。
                        //windows下请运行 npm install --msvs_version=2012
node app.js install     //第一次启动jsGen,'install'参数用于初始化MongoDB数据库

npm start               //正常启动,或 `node app.js`

浏览器端输入网址http://localhost/即可访问。

默认的管理员用户名: admin 密码: admin@jsgen.org

Default administrator username: admin password: admin@jsgen.org.

升级 (Update)

git pull origin     //更新jsGen
npm update          //更新Node.js模块

更新 (Changelog)

0.6.x更新说明

  • 2013/11/02 jsGen v0.7.0 调整前端代码结构,使用bower和grunt管理前端代码,增加localStorage。

  • 2013/08/25 jsGen v0.6.x 完全重构Node.js服务器端代码。使用redis作为缓存,使用then.js处理异步任务,重构服务后台代码。

  • 2013/07/29 jsGen v0.5.0 完全重构AngularJS客户端部分,服务器端代码做相应调整。使用pure CSS框架,优化UI,兼容IE8!重写并优化AngularJS代码,添加若干很酷的功能代码,在学习AngularJS的码农不妨看看!

  • 2013/06/01 jsGen v0.3.5 修复若干bug,标签允许空格。

  • 2013/05/26 jsGen v0.3.4 修复管理后台不出现网站设置的bug,管理后台增加邮箱验证设置,默认关闭邮箱验证。

  • 2013/04/25 jsGen v0.3.3 优化浏览器端AngularJS应用。

  • 2013/04/25 jsGen v0.3.2 修复评论编辑器按钮隐藏、输入卡的bug(修改了Markdown.Editor.js),指令前缀改为gen。

  • 2013/04/25 jsGen v0.3.1 浏览器端AngularJS应用自动更新功能。

  • 2013/04/21 jsGen v0.3.0 服务器端增加用户自动登录功能,用户邮箱手动验证。客户端AngularJS应用更新jQuery、Bootstrap至最新版,优化UI。

  • 2013/04/13 jsGen v0.2.11 调整代码,升级AngularJS到1.0.6。

  • 2013/04/13 jsGen v0.2.10 视觉调整。

  • 2013/04/13 jsGen v0.2.9 修复热门文章、热门评论bug,优化代码,暂停使用Cluster。

  • 2013/04/09 jsGen v0.2.8 修复文章编辑器Bug。

  • 2013/04/07 jsGen v0.2.7 修复process.nextTick引起的bug(导致进程退出),优化热门文章统计、热门评论统计、最近更新统计。

  • 2013/04/07 jsGen v0.2.6 优化cacheTL,优化在线用户统计。

  • 2013/04/03 jsGen v0.2.5 修复cacheTL的bug(该Bug可能导致获取后台信息出错)。

  • 2013/04/02 jsGen v0.2.4 完善用户个人主页,显示阅读时间线、更新文章和已阅读文章列表。

  • 2013/04/02 jsGen v0.2.3 修复用户名、用户邮箱大小写漏洞。

  • 2013/04/02 jsGen v0.2.2 修正bug,调整BootStrap视图,使网页视觉效果更明了,可开启Node.js的cluster多进程功能。

  • 2013/04/01 jsGen v0.2.0 大幅优化用户、文章、标签ID相关代码,代码更简洁。

  • 2013/03/31 jsGen v0.1.2 修正bug,添加加载进度条。

  • 2013/03/30 jsGen v0.1.1 修正几个bug,添加forever启动脚本。

  • 2013/03/29 jsGen v0.1.0 测试版发布。

0.5.x更新说明

  1. 兼容IE8。

  2. 放弃Bootstrap 3框架,改用YUI的pure CSS框架,并入部分Bootstrap框架代码,如Modal、Tooltip等。

  3. 使用超酷的Icon:Font-Awesome。

  4. 动画效果,文章列表精简/摘要模式切换。

  5. toastr信息提示条,用于显示错误或成功的请求信息。

  6. 优化响应式设计,手机、平板浏览器可完美访问。

  7. 分离语言机制,可方便切换成其它语言(模板中的语言暂未分离,待完成)。

  8. 完全重构AngularJS代码,各种很酷的功能代码如下。

  9. 全局Loading检测,自动响应loading状态,默认延迟1秒响应loading。可响应AngularJS内部所有http请求,如API请求、html模板请求等。

  10. 全局Error检测,自动过滤错误响应(即进入到controlller中的都是成功响应),包括服务器自身的错误响应如404、500等和服务器定义的错误响应,toastr显示错误信息。

  11. 统一的Validation验证机制,通过genTooltip指令收集并提示无效输入,配合uiValidate可对输入完成任何自定义验证。主要应用于用户登录、用户注册、用户信息修改、发表文章、发表评论,管理后台配置等。

  12. 统一的Dirty检测机制,通过genModal指令和union/intersect函数实现,在发表/编辑文章页面、用户信息配置页面、后台管理页面等修改了数据时,若未保存离开,提示警告信息。

  13. 通用的genPagination指令,效果仿Github,可实现有链接和无链接分页导航。前者生成url,可产生导航记录(浏览器前进后退),具体效果见文章列表。后者通过事件机制实现,不改变url,无导航记录(不能前进后退),具体效果见文章详情页面中的评论分页导航。

  14. 图片预占位异步加载genSrc指令,目前主要用于用户头像。jsGen使用Gavatar,再用户的Gavatar没用加载完成之前,显示本地服务器的占位图像,加载完成后自动替换成用户头像。

  15. 还有其他很酷的代码如定时器触发器timing,自动定位页面元素的anchorScroll(动画效果,方便好使,取代AngularJS内置的$anchorScroll),无须担心digest错误的applyFn(代替$apply),通用的Cookies存储服务myConf等

目录和文件 (menus and files)

+api                // 服务器端API目录
    -article.js       // 文章和评论系统API接口
    -collection.js    // 合集系统API接口
    -index.js         // 网站全局信息API接口
    -install.js       // 初始化安装程序
    -message.js       // 站内信息系统API接口
    -tag.js           // 标签系统API接口
    -user.js          // 用户系统API
+config
    -config.js        // 网站配置文件
+dao                // MongoDB数据库访问层
    -articleDao.js    // 文章评论访问接口
    -collectionDao.js // 合集系统访问接口
    -indexDao.js      // 网站全局信息访问接口
    -messageDao.js    // 站内信息系统访问接口
    -mongoDao.js      // MongoDB访问接口
    -tagDao.js        // 标签系统访问接口
    -userDao.js       // 用户系统访问接口
+lib                // 通用工具模块
    -anyBaseConverter.js  // 通用进制转换器
    -cacheLRU.js      // LRU缓存模块
    -cacheTL.js       // TL缓存模块
    -email.js         // SMTP Email模块
    -json.js          // 数据库格式模板
    -msg.js           // 程序信息
    -tools.js         // 核心工具函数
+mylogs             // 日志目录,网站运行后产生内容
+node_modules       // Node.js模块目录,npm install后产生内容
+static             // 浏览器端AngularJS WEB应用
    +css
    +font-awesome     //很酷的web icon
    +img
    +js
        +lib            // AngularJS、jQuery等js模块
        -app.js         // 全局初始化模块
        -controllers.js // 控制器模块
        -directives.js  // 指令模块
        -filters.js     // 过滤器模块
        -locale_zh-cn.js// 语言包
        -router.js      // 路由模块
        -services.js    // 通用服务模块
        -tools.js       // 工具函数模块
    +md               // MarkDown文档
    +tpl              // html模板
    -favicon.ico
    -index.html       // AngularJS WEB应用入口文件
+tmp                // 缓存目录
    +static           // 压缩js、css缓存目录,必须
    +tpl              // html模板文件缓存目录
    +upload           // 上传文件缓存目录
-app.js             // Node.js入口文件
-package.json       // jsGen信息文件

特点 (Features)

  1. 前沿的WEB技术,前所未有的网站构架形态,前端与后端完全分离,前端由 AngularJS 生成视图,后端由 Node.js 提供REST API数据接口和静态文件服务。只需改动前端AngularJS应用视图形态,即可变成论坛、多用户博客、内容管理系统等。

  2. 用户数据、文章评论数据、标签数据、分页缓存数据、用户操作间隔限时等都使用 LRU缓存 ,降低数据库IO操作,同时保证同步更新数据。

  3. 前后端利用 json 数据包进行通信。文章、评论采用 Markdown 格式编辑、存储,支持GitHub的GFM,AngularJS应用将Markdown解析成HTML DOM。

  4. 用户帐号系统,关注(follow)用户/粉丝、邮箱验证激活、邮箱重置密码、SHA256加密安全登录、登录失败5次锁定/邮箱解锁、用户标签、用户积分、用户权限等级、用户阅读时间线等功能。用户主页只展现感兴趣的最新文章(关注标签、关注作者的文章)。

  5. 文章/评论系统,文章、评论使用统一数据结构,均可被评论、支持、反对、标记(mark,即收藏),当评论达到一定条件(精彩评论)可自动提升为文章(进入文章列表展现,类branch功能),同样文章达到一定条件即可自动推荐。自动实时统计文章、评论热度,自动生成最新文章列表、一周内最热文章列表、一周内最热评论列表、最近更新文章列表。强大的文章、评论列表分页导航功能,缓存每个用户的分页导航浏览记录。

  6. 标签系统,文章和用户均可加标签,可设置文章、用户标签数量上限。用户通过标签设置自己关注话题,文章通过标签形成分类。标签在用户设置标签或文章设置标签时自动生成。自动展现热门标签。

  7. 文章合集系统,作者、编辑、管理员可将一系列相关文章组成合集,形成有章节大纲目录的在线电子书形态,可用于教程文档、主题合集甚至小说连载等。(待完成)

  8. 站内短信系统,提供在文章、评论中 @用户的功能,重要短信发送邮件通知功能等。(待完成)

  9. 后台管理系统,网站参数设置、缓存设置、网站运行信息、文章、评论、用户、标签、合集、站内短信等管理。

  10. Robot SEO系统,由于AngularJS网页内容在客户端动态生成,对搜索引擎robot天生免疫。jsGen针对robot访问,在服务器端动态生成robot专属html页面。搜索引擎Robot名称可在管理后台添加。


的码云指数为
超过 的项目
加载中

评论(21)

缪斯的情人
缪斯的情人
这不是AngularJs的社区吗 jsGen
李惟
李惟
速度很快 jsGen
imotai
imotai
很快啊 jsGen
7月
7月
技术无国界,为什么还要加个国产呢? jsGen
lanx
lanx
速度很快,但是对seo不友好吧 jsGen
码农与厨子
码农与厨子
希望作者坚持下去。支持作者 jsGen
小宇公司
小宇公司
很强大的样子,支持国产~有空学习学习 jsGen
开源无憾
开源无憾
这货必须牛逼! jsGen
汪洋toy
汪洋toy
怎么现在访问不了了呢? jsGen
铂金小猪
铂金小猪
用纯JavaScript编写是个啥概念???不用HTML??? jsGen

社区网站系统 jsGen 全新重构 0.5.0 版上线

是用纯JavaScript编写的新一代开源社区网站系统,基于node.js和AngularJS。 本版更新说明 0.5.0 兼容IE8。 放弃Bootstrap 3框架,改用YUI的pure CSS框架,并入部分Bootstrap框架代码,如Mod...

2013/07/29 23:01

jsGen发布0.3.0版,使用Bootstrap 3最新版和jQuery 2

jsGen是使用纯JavaScript语言开发的开源社区网站系统,基于Node.js、MongoDB和AngularJS技术,前后端完全分离。本次更新主要内容如下: 1、服务器端增强用户登录验证,增加Cookies自动登录功...

2013/04/22 08:43

没有更多内容

加载失败,请刷新页面

没有更多内容

42
回答
【开源访谈】jsGen 作者 严清 访谈实录

关于开源访谈 开源访谈是开源中国推出的一系列针对国内优秀开源软件作者的访谈,以文字的方式记录并传播。我们希望开源访谈能全面的展现国内开源软件、开源软件作者...

2014/03/10 10:33
6
回答
redis,mangodb必选么

看到这个纯js写的论坛很有意思,本来想搭建一个,但是redis和mangodb必须的么,一般空间上没有这两啊。

2014/04/10 21:26
21
回答
作者:jsGen是新一代web技术的尝试,希望大家多多支持!

jsGen的新在于前后端的完全分离。用AngularJS编写的前端实际上是一个WEB应用:将jsGen中的static目录下文件的相对URI路径改成绝对路...

2013/03/31 22:22

没有更多内容

加载失败,请刷新页面

没有更多内容

jsgen 在win7 安装

最近想熟悉下angularjs 就接触到jsgen 这个开源的CMS项目,同时,node,mongodb,Python27,redis,这些以前也从来没接触过,问题就来了,搞的是欲仙欲死,其实都是配置中,的问题,或者执行顺序的...

2014/11/06 15:42
89
0
Angular成系统的学习资料整理

中文学习资料: http://www.cnblogs.com/lcllao/archive/2012/10/18/2728787.html 翻译的官方的Guide http://www.ituring.com.cn/minibook/303 翻译的官方的tutorial http://www.lovelucy.in...

2014/08/15 13:05
76
0
AngularJS 中文资料+工具+库+Demo 大搜集

AngularJS 中文资料+工具+库+Demo 大搜集

2013/12/28 16:11
183
0
AngularJS 中文资料+工具+库+Demo 大搜集

中文学习资料: 中文资料且成系统的就这么多,优酷上有个中文视频。 http://www.cnblogs.com/lcllao/archive/2012/10/18/2728787.html 翻译的官方的Guide http://www.ituring.com.cn/miniboo...

2015/05/17 14:11
91
0
OSChina 技术周刊第二十期 —— 使用 Docker 搭建 Java Web 运行环境

每周技术抢先看,总有你想要的! 移动开发 【软件】移动端web框架 Frozen UI 【博客】Android各种Adapter的用法 服务端开发/管理 【翻译】2014 Docker 的竞争随即而来 【翻译】Docker 和 PI...

2015/02/01 10:05
287
0
前端文档汇总(含代码规范、开发流程、知识分享,持续更新)

# front-end-Doc 前端文档汇总(含代码规范、开发流程、知识分享,持续更新) [原Github地址]( https://github.com/mgbq/front-end-Doc) 进去后可直接点链接查看文章 综合类 | 地址 --- | --...

2018/06/02 11:02
83
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部