社区网站系统 jsGen

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

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

jsGen基本原理:客户端浏览器发起访问请求后,NodeJS服务器先响应由AngularJS编写的Web应用,这个应用是由html模板、js和css静态文件组成。客户端获取到AngularJS应用后,再由AngularJS与后台的NodeJS服务器API接口通信,根据用户请求交换数据,这些数据是纯粹json数据包,AngularJS获取到json数据包后再编译成相关页面展现给用户。因此,用户进入网站时,只需在首次载入视图模板(html、js、css),其后的所有请求都是纯json数据交换,不再包含html代码,大大减少了数据流量。

特点:
  1. 前沿的WEB技术,前所未有的网站构架形态,前端与后端完全分离,前端由 AngularJS 生成视图,后端由 Node.js 提供REST API数据接口和静态文件服务。只需改动前端AngularJS应用形态,即可变成论坛、多用户博客、内容管理系统等。
  2. 用户数据、文章评论数据、标签数据、分页缓存数据、用户操作间隔限时等都使用 LRU缓存 ,降低数据库IO操作,同时保证同步更新数据。
  3. 前后端利用 json 数据包进行数据通信。文章、评论采用 Markdown 格式编辑、存储,支持GitHub的GFM(GitHub Flavored Markdown),Markdown解析成HTML DOM并进行 XSS攻击 过滤由前端AngularJS应用完成。
  4. 用户帐号系统,关注(follow)用户/粉丝、邮箱验证激活、邮箱重置密码、SHA256加密安全登录、登录失败5次锁定/邮箱解锁、用户标签、用户积分、用户权限等级、用户阅读时间线等功能。用户首页展现用户关注标签、关注作者的相关的文章(即用户感兴趣的文章)。
  5. 文章/评论系统,文章、评论使用统一数据结构,均可被评论、支持、反对、标记(mark,即收藏),当评论达到一定条件(精彩评论)可自动提升为文章(独立出来,类branch功能),同样文章达到一定条件即可自动推荐。自动实时统计文章、评论热度,自动生成最新文章列表、一周内最热文章列表、一周内最热评论列表、最近更新文章列表。强大的文章、评论列表分页导航功能,缓存每个用户的分页导航浏览记录。
  6. 标签系统,文章和用户均可加标签,可设置文章、用户标签数量上限。用户通过标签设置自己关注话题,文章通过标签形成分类。标签在用户编辑个人信息或编辑文章时自动生成,自动管理,也可管理员后台管理。自动展现热门标签。
  7. 文章合集系统,作者、编辑、管理员可将一系列相关文章组成合集,形成有章节大纲目录的电子书形态。教程文档、主题合集甚至小说连载等均可由合集系统形成。(待完成)
  8. 站内短信系统,提供在文章、评论中 @用户的功能,重要短信发送邮件通知功能等。(待完成)
  9. 后台管理系统,网站参数设置、缓存设置、网站运行信息、文章、评论、用户、标签、合集、站内短信等管理。
  10. Robot SEO系统,由于AngularJS网页内容在客户端动态生成,对搜索引擎robot天生免疫。jsGen针对robot访问,在服务器端动态生成robot专属html页面。搜索引擎Robot名称可在管理后台添加。
说明

jsGen 是为AngularJS中文社区开发的网站系统,测试版已上线。 github地址:https://github.com/zensh/jsgen

AngularJS 開發實戰:解析 angular-seed 專案架構與內容 from Will Huang

AngularJS入门教程

AngularJS学习笔记

AngularJS 最佳实践

使用AngularJS构建大型Web应用

UI-Utils A utility package with no external dependencies

AngularJS 有没有缺点?MVVM 框架中有比它更好的吗?

我的web开发最强组合:Play1+angularjs+bootstrap ++ (idea + livereload)

AngularJS 開發框架介紹

如何讓Visual Studio 2012 支援 AngularJS 的 Intellisense

Connecting to Database Using AngularJS

Angular.js example application

5个示例带你学习AngularJS 

Learning AngularJS by Example – The Customer Manager Application http://weblogs.asp.net/dwahlin/archive/2013/10/25/learning-angularjs-by-example-the-customer-manager-application.aspx

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–报价处理(232)-3创建项目

image.png CJ20N创建项目 现在创建客户报价项目,以进一步添加报价明细(例如,计划、付款处理),但是此阶段主要是计算成本,作为计算报价中总价格的基础...

31430
来自专栏韩伟的专栏

经典的服务器结构概述(中)

. 经典的服务器结构概述(中) 今天将和大家详细探讨分服模型,本文结构如下: ? 1模型描述 分服模型是游戏服务器中最典型,也是历久最悠久的模型。其特征是游...

46870
来自专栏ccylovehs

网络爬虫之html2md

上周利用java爬取的网络文章,一直未能利用java实现html转化md,整整一周时间才得以解决。

20210
来自专栏AI研习社

Github 项目推荐 | 用于训练和测试文本游戏强化学习 Agent 的工具

TextWorld 是一个沙盒环境,用于训练和测试基于文本游戏的强化学习 Agent。

9420
来自专栏大数据架构师专家

从运维角度看中大型网站架构的演变之路

网上有很多文章类似于我今天要分享的课程,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我以咱们运维角度全面讲解。

16930
来自专栏小文博客

SSTap-享受游戏! ——SSTap下载地址及使用教程(内附免费版配置)

24.5K20
来自专栏程序员互动联盟

编程高手为啥都喜欢耍脚本?

脚本编程几乎在每一个平台上都存在,这是因为利用脚本常常会简化、加快很多批量处理的工作,它能实现很多传统编程语言的功能,但是对编写者却不需要关心什么编译器、解释器...

36050
来自专栏知晓程序

微信全面调整分享能力:开发者应该注意什么?

18350
来自专栏北京马哥教育

大型网站的灵魂——性能

Via: http://blog.jobbole.com/84433/ 前言 在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一...

35760
来自专栏我有一个梦想

Python 项目实践一(外星人入侵)第一篇

python断断续续的学了一段实践,基础课程终于看完了,现在跟着做三个小项目,第一个是外星人入侵的小游戏: 一 Pygame pygame 是一组功能强大而有趣...

496100

扫码关注云+社区

领取腾讯云代金券