Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python任务交易平台 计划文档 #15

Open
sxqs-yang opened this issue Jul 10, 2017 · 0 comments
Open

Python任务交易平台 计划文档 #15

sxqs-yang opened this issue Jul 10, 2017 · 0 comments

Comments

@sxqs-yang
Copy link

开发环境

    Python版本:3.6.1

    Django版本:1.11.3

    MySQL版本:5.7.18

项目

项目地址

    项目地址:PyTransaction

项目结构

    api: 提供rest api,model配置

    website: 提供网站模板渲染

    py_transaction: 项目配置目录

    static: 静态文件存放目录

    templates: 模板存放目录

git工作流程

  • 每个人先fork主仓库到自己的项目里,然后clone自己的项目,
  • 添加主仓库为上游仓库: git remote add upstream [email protected]:Kn0wthyself/PyTransaction.git,每次提交push到自己的远程仓库即可,
  • 需要合并到主仓库时,需要先pull上游代码,并处理冲突(如果有):git pull upstream develop, 再提交pull request到develop分支由管理员审核是否接受合并
  • git等操作不熟悉可以参考廖雪峰老师的教程

restful api规范

url:协议://主机/版本/资源路径,如:https://localhost/v1/user/1代表id为1的用户信息, 获取资源列表使用复数形式如获取用户列表:https://localhost/v1/users

请求方式:目前暂定使用GET、POST、PUT、DELETE四种方式

  • GET:获取资源
  • POST:新增资源
  • PUT:更新资源
  • DELETE:删除资源

http状态码:暂规定使用如下状态码返回

  • 200:表示成功
  • 400:表示请求错误,如参数错误等
  • 401:表示用户未认证
  • 403:表示此用户没有访问权限
  • 404:表示资源不存在
  • 405:表示请求方式不支持

消息体:返回的内容应当是json格式的,内容由开发者自己定义

文档:暂定使用swagger来编写api文档

用户认证:暂定使用jwt token认证

to后端

  • 在api/models下建立各自模块需要的表
  • 在api/views下开发个子模块的api
  • 在api/serializer下建立个子模块的序列化器

to前端

  • 在templates/下开发各个模块的页面模板
  • 在static/下存放js、css等静态文件
  • 在website/views下建立每个页面的视图

模块


#### 说明

目前暂停前后端在同一项目中开发,后端提供api,前端负责页面模板的开发,由django提供路由功能, 采用djangorestframework作为rest框架。

提供了两个hello world 示例(在本地8000端口启动服务然后访问) 模板:hello world api:hello world

模块构想

交易规则:
  • 交易必须通过平台
  • 交易可以走支付宝提供的接口(目前了解的情况是需要注册,并且是企业号,客服电话:057188158090)
  • 对于发单用户的评级可以使用芝麻信用API实现(客服电话:057188158055转1,点击跳转至说明页
开发者与用户:
  • 开发者可以独立或自由组队接单
  • 开发者可以设置自己接单的方向及偏好
  • 若开发者组队参与项目,所有项目成员必须已经注册成为平台开发者。
  • 所有新注册的用户与开发者均获取初始评分,该分值为参与平台活动的最低分值。若低于此分值需要提升或联系平台人员进行处理。
  • 暂定平台建设初期,没有评级系统时不影响开发者与用户之间的交易。后期完善。
  • 用户可向多个开发者提出接单请求。但最终只能由一个或一队开发者来完成。
  • 若用户订单超时未被认领则该订单失效,需要重新提交。
  • 若开发者超时未交付订单将会自动提示用户进行沟通,若仍未获得结果,平台将介入处理。
平台权限:
  • 平台有权对开发者的信用、代码质量、及团队能力做出评级
  • 平台有权对客户的信用进行评定
  • 开发者或用户可以向平台提交代码review申请
  • 平台可接受用户委托进行代码测试、功能验证,评测结果或将影响开发者的评级
  • 开发者与用户在注册时需要同意平台的规则。保证双方隐私,不危害平台运转,不在平台上发布或接受有害公共安全的项目。
  • 平台有权限得知用户发布的具体需求,并进行审核。
  • 对开发者、用户的行为进行审核。对于不符合规范的限期整改,若严重违反规则或违法,平台有权封禁。
用户注册信息:
  • 按照国家规定,用户注册必须提供用户名、手机号、邮箱
  • 平台提供微信、QQ、微博接口,用户可以进一步完善个人信息。若完善上述信息,用户的信用评级积分相应上升。
  • 开发者与用户必须通过手机验证方能正常参与平台活动
平台基本架构及开发环境:
  • 平台采用前后端分离的架构。后端根据前端的demo写API供调用。网站和移动端可共用一套API。
  • 平台采用模块化的设计思路。将各个功能进行模块封装,不同模块间相互独立、互不影响。
  • 平台开发环境为Python 3.6.1,Django 1.11.3,MySQL 2.7.18,。数据库接口使用pymysql。
  • 平台多数代码可开源。设计用户交易等信息的程序块为提高安全性不开源。
模块设计:
  • 优先数据库与前端界面的设计
  • 暂定平台组成模块有发单、接单模块、用户及开发者管理模块、订单管理模块
  • 平台所涉及的商品模块有:爬虫、Python web、数据处理、科学计算
  • 平台提供新手参与项目学习的机会,但需要向平台进行申请,且需要有已注册的开发者接收。
沟通方式设计:
  • 平台提供站内信、开发者团队公告等联系方式。
  • 暂时倾向于采用平台开发微信机器人作为双方中转,开发者与用户不直接接触。同时兼顾安全与实时性。使用此功能的用户及开发者需向平台提供微信号。
  • 原则上,开发者与用户间禁止脱离平台进行交流。
  • 平台提供微信公众号、微博、微信小程序等联系方式及平台,方便平台、开发者、用户三方沟通。
评级系统:
  • 开发者提供其GitHub主页根据其以往项目经历、代码提交数量、star数量进行评级
  • 允许开发者提交其他项目证明来提高其评定等级
  • 开发者交接订单后,平台根据客户反馈来相应修改其评级
  • 开发者的作品符合功能并被客户评价评价即可获得基础得分,性能优异的加分,代码符合规范的加分
  • 若开发者收到客户投诉,经平台核实则扣除其相应分数
  • 若开发者未及时交付,经平台核实扣除其相应分数
  • 若开发者提供的代码未能解决用户问题或代码质量很差,经平台核实扣除其相应分数
暂定开发流程的:
  • 创建一个UI原型
  • 编写静态的前端页面
  • 后台应用开发与部署
  • Web后台开发API
  • 开发移动Web应用
  • 使用构建系统
  • 添加数据分析工具
  • 自动化部署
  • 改进系统开发流程
项目成员分组:
  • 整体思路负责:@kn0w thyself
  • 架构组:@格雷夫斯
  • 前端组:@尼克·拉道巴 @copyleft @张庭 @hhh
  • 数据库及后端模块组:@g进军 @rel @sxqs-yang

    剩余项目成员或没有统计到,可根据兴趣与能力在issue中自由参加
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant