Skip to content

8zf/Funnyard

Repository files navigation

funnyard

   基于地理位置的大学生活动信息聚合平台

简介

趣往-国家大学生创新项目,基于位置服务的大学生社交信息共享平台。 网站:https://www.funnyard.com。

主要功能

  • 发布/浏览活动图文信息
  • 参与/讨论活动
  • 根据地理定位推荐活动
  • 活动检索
  • 通过短信提醒用户活动状态

主要特点

  • 使用 sails.js中作为web开发框架以及mysql / redis 数据库,pm2进行进程管理。
  • 前端主要使用jQuery以及许多插件是想网站前端功能
  • 前端的设计基于简介大方的扁平化(material)概念,页面的过渡使用CSS3动画效果。同时也能很好的兼容移动端。
  • 前后端借助RESTful API 对接,实现初步前后端分离。
  • 使用 CDN 加快网站的加载速度。

(正式上线:2017.04)

使用说明

首页

https站的首页会定位你的位置并显示附近的活动,也可以通过左上的自动补全搜索框进行定位 之后下面是最新活动概览,点击活动海报可以查看活动摘要,点击标题进入活动详情界面

首页

登陆注册

趣往分为活动发布者和参与者(普通用户),发布者注册需要绑定手机号与注册码,注册码发放给经过人工认证的学生组织或校外组织,输入相关信息与手机验证码即可登录,普通用户只需验证手机即可

登陆

注册

发布活动

发布者可以发布活动,使用bootstrap wizard实现更加直观的流程控制,活动的海报以及图文信息中的图片将会被上传到七牛云以加快之后活动相关页面的加载速度。

发布

参加/离开活动

普通用户可以在活动详情页发表对活动的评论以及参与/离开活动,动态网页不必刷新界面且能够获得来自网页的通知

报名

提醒服务

趣往的提醒服务包括注册用户时的短信提醒,用户参与/离开活动时的短信提醒,参与的活动呗发布者删除时的短息提醒,活动前一天提醒用户参加的短信提醒

提醒

提醒取消

修改个人信息

网站的图片上传编辑功能使用 cropper.js 前端插件配合后端API进行图片的上传,编辑,保存编辑信息。用于上传,编辑头像和活动海报

cropper

技术

前端

前端使用到的插件

  • Ueditor:进行活动内容的富文本编辑,结合后端七牛SDK将图片内容上传到CDN 百度地图:调用后端API获得活动信息并在地图上显示活动并进行相关操作;使用浏览器获得的位置进行定位;发布活动时输入地点定位。
  • jQuery validate:用于网站各种表单的输入验证
  • bootstrap tagsinput:用于设置活动类型
  • bootstrap wizard:用于发布活动的流程控制
  • ladda:动态按钮
  • toastr:简洁的网页提醒
  • cropper:图片的导入与裁剪编辑,结合后端接口上传到CDN。
  • cubeportfolio:活动的分类,筛选和预览

后端

开发语言

趣往的后端使用Node.js语言,Node.js服务器端的JavaScript,非阻塞I/O设计让Node.js能够应付高并发的请求,同时Node.js具有最完善的开源环境npmjs,借助npm上的优秀的开源包,可使开发更加便捷,避免重复造轮子所带来的不必要的工作。

网站框架

web框架是基于express.js的sails.js。Sails.js是一套成熟的web MVC框架,内置了许多实用的中间件。

Orm(waterline)

能够高效简明的生成,操纵数据表以及它们之间的关系,使在开发过程中数据库结构始终与代码同步又不影响数据的完整

Policy

策略系统能够有效的控制网站中不同角色的访问权限,基于不同的角色返回正确的响应

Route

网站的路由信息由路由表进行集中管理和配置,将不同的url映射到控制器的方法或者视图,使路由与后台逻辑解耦。

Session

趣往使用基于cookie-session的身份认证系统,内置的session中间件自动解析每个http请求携带的cookie并从会话数据库中获取请求者的身份信息。

Cli

sails提供的命令行交互工具提供了创建项目,启动服务器,生成默认API,运行时调试等功能

数据库

关系数据库MySQL

用于储存业务关系表。

内存数据库redis

的数据储存在内存中具有更快的反应速度因此用于储存客户端会话信息

网站安全

CSRF

对于跨站请求伪造,网站使用从CSRF token 的方式防止恶意代码以用户的身份执行敏感操作

Caddy

趣往是一个基于地理位置的网站,由于涉及隐私,仅允许使用https协议的网站可以询问用户获取地理位置,同时https通过加入ssl协议,依靠证书来验证服务器身份并且为浏览器和服务器之间的通讯加密增加安全性。Caddy是使用Go语言实现的web server,能够使用let’s encrypt自动获取https证书,通过反向代理为服务器使用https协议传输,在网站规模可扩大之后还可以进行服务器之间的负载均衡,适配大型应用。

后端接口

后端接口具有一定的健壮性,可以应对前端的各种不合理请求,返回响应的提醒,当服务器出现异常时也会返回错误显示界面。

其他

对接的服务

七牛云CDN

网站中用户的头像,发布者上传的活动图片,网站的样式文件,不会更改的javascript插件都会自动上传到七牛云,加快网站加载速度并且减少服务器的负担

阿里大于

阿里大于提供短信服务,在趣往中用于验证用户手机号码,确认用户报名/退出活动,提醒用户等

服务器定时任务

服务器的定时任务每三分钟查看活动的状态,并且提前一天提醒报名该活动的用户参加活动


ToDoList(temp):

  • 活动信息界面UI
  • 活动发布UI
  • 注册登陆UI
  • 用户信息界面,头像上传,编辑信息,参与的活动
  • 发布者控制台,管理发布的活动
  • 参与活动 ajax API ~get
  • 活动的筛选、分类、查找;根据时间(最新,参与人数,分类日期,几天内开始,几天内发布的,是否过期)
  • 有分类后首页要有导航栏
  • HTTPS 证书申请,caddy
  • 删除一个活动时如何向用户发送消息
  • 海报长宽比限定,并且不能超出图片范围 viewMode: 1
  • 天地图API开发:地图上显示活动,click/mouseover 显示活动简介,点击在地图右边显示活动详情
  • 搜索结果页面
  • 关注活动,活动开始前一天提醒用户参加,退出活动时也有短信提醒
  • 更新登陆界面,增强切换用户显示效果

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published