/AnonyDis

Node.js 匿名评论和实时聊天系统。

Primary LanguageCSS

技术应用

  • 模板引擎+express+jQuery load 实现异步加载局部页面,可使chatbox不掉线

项目架构

  • 前台
    1. bootstrap页面布局+屏幕自适应
    2. jQuery ajax load
    3. particles粒子效果
  • 后台
    1. node数据处理
    2. express web框架
    3. art-templte数据渲染
    4. moment 时间格式化
    5. blueimp-md5 密码MD5加密
    6. connect-multipart(中间件) 文件接收
    7. mongoDB 数据存储
    8. mongoose DAO层
    9. redis session 数据缓存
    10. connect-redis DAO层

页面结构

  • 登录注册页
    1. 按钮两行排列
  • 主页
    1. 顶部下部通栏banner
    • 通栏有主页、发帖、提醒、我的
    • 提醒有帖子更新提醒、新消息提醒
    1. 右侧聊天室,M不显示,群成员双排,可折叠
    2. 左侧内容区,可下滑,显示详细
  • M聊天室页
    1. 上方滚动在线user,群成员单排,可折叠
    2. 全屏幕,新开页
    3. 新消息直接在窗口顶部显示
  • 私聊页
    1. pc直接在右侧直接下方弹出,新消息在顶部banner显示
    2. chrome提醒
  • 帖子详情页
    1. 两列布局,左方头像和签名,右方帖子主题。
    2. 有显示个数,分页
    3. 下方回复
    4. 详情页聊天室右侧隐藏,可调出
  • 手机帖子详情页
    1. 单列分布
    2. 聊天室弹出
  • 我的页面
    1. 设置头像,用户名,个性签名,年龄,性别
    2. 帖子页面
    • 我发布的,可以删除,但要经过审核
    • 我回复的,可以直接删除

路由设计

| 请求方法 | 请求路径 | 请求参数 | 是否登录 | 备注 | | :------| ------: | :------: | :------: | | GET | / | | | 渲染初始化首页,聊天上线初始化 | | POST | /sendpost | postid posttitle postimages postcontent postuser posttime| 登录 | 发帖子 | | GET | /regist | | | 渲染注册页面 | | POST | /regist | username password | | 处理注册请求 | | GET | /login | | | 渲染登录页面 | | GET | /logout | | | 处理退出请求 | | GET | /postinfo | post_id | 否 | 渲染帖子详情页 | | GET | /me | session_userinfo | 是 | 渲染我的页面 |

数据库设计

  • user

    • username
    • nickname
    • password
    • gender
    • age
    • word
    • photo
    • posts
    • discuss
    • lastposttime
    • registertime
    • lastlogintime
    • status [0,0]
  • post

    • title
    • images
    • content
    • postuser
    • posttime
  • discuss

    • postid
    • images
    • content
    • discussuser
    • discusstime
  • im

    • imtext
    • imuser
    • imtime

数据库完整性

  • 注册 用户名格式: 小写字母,数字。长度4-10 密码格式: 字母+数字,符号。长度6-16 nikename格式: 字母,数字,中文。长度2-5 状态码: code:0 注册通过 code:1 用户名重复 code:2 禁止新用户注册
  • 登录 状态码: code:0 登录成功 code:1 用户名不存在 code:2 密码错误 code:3 用户已被封禁