Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

136 lignes
4.9 KiB

il y a 2 ans
il y a 2 ans
  1. # bookstore
  2. [![Build Status](https://travis-ci.com/DaSE-DBMS/bookstore.svg?branch=master)](https://travis-ci.com/DaSE-DBMS/bookstore)
  3. [![codecov](https://codecov.io/gh/DaSE-DBMS/bookstore/branch/master/graph/badge.svg)](https://codecov.io/gh/DaSE-DBMS/bookstore)
  4. ## 功能
  5. 实现一个提供网上购书功能的网站后端。<br>
  6. 网站支持书商在上面开商店,购买者可能通过网站购买。<br>
  7. 买家和卖家都可以注册自己的账号。<br>
  8. 一个卖家可以开一个或多个网上商店,
  9. 买家可以为自已的账户充值,在任意商店购买图书。<br>
  10. 支持下单->付款->发货->收货,流程。<br>
  11. 1.实现对应接口的功能,见doc下面的.md文件描述 (60%分数)<br>
  12. 其中包括:
  13. 1)用户权限接口,如注册、登录、登出、注销<br>
  14. 2)买家用户接口,如充值、下单、付款<br>
  15. 3)卖家用户接口,如创建店铺、填加书籍信息及描述、增加库存<br>
  16. 通过对应的功能测试,所有test case都pass <br>
  17. 测试下单及付款两个接口的性能(最好分离负载生成和后端),测出支持的每分钟交易数,延迟等 <br>
  18. 2.为项目添加其它功能 :(40%分数)<br>
  19. 1)实现后续的流程 <br>
  20. 发货 -> 收货
  21. 2)搜索图书 <br>
  22. 用户可以通过关键字搜索,参数化的搜索方式;
  23. 如搜索范围包括,题目,标签,目录,内容;全站搜索或是当前店铺搜索。
  24. 如果显示结果较大,需要分页
  25. (使用全文索引优化查找)
  26. 3)订单状态,订单查询和取消定单<br>
  27. 用户可以查自已的历史订单,用户也可以取消订单。<br>
  28. 取消定单(可选项,加分 +5~10),买家主动地取消定单,如果买家下单经过一段时间超时后,如果买家未付款,定单也会自动取消。 <br>
  29. ## 要求
  30. 1.允许向接口中增加或修改参数,允许修改HTTP方法,允许增加新的测试接口,请尽量不要修改现有接口的url或删除现有接口,请根据设计合理的拓展接口(加分项+2~5分)。
  31. 测试程序如果有问题可以提bug (加分项,每提1个bug +2, 提1个pull request +5)。<br>
  32. 2.核心数据使用关系型数据库(PostgreSQL或MySQL数据库)。
  33. blob数据(如图片和大段的文字描述)可以分离出来存其它NoSQL数据库或文件系统。 <br>
  34. 3.对所有的接口都要写test case,通过测试并计算代码覆盖率(有较高的覆盖率是加分项 +2~5)。 <br>
  35. 4.尽量使用正确的软件工程方法及工具,如,版本控制,测试驱动开发 (利用版本控制是加分项 +2~5)<br>
  36. 5.后端使用技术,实现语言不限;不要复制这个项目上的后端代码(不是正确的实践, 减分项 -2~5)<br>
  37. 6.不需要实现页面 <br>
  38. 7.最后评估分数时考虑以下要素:<br>
  39. 1)实现完整度,全部测试通过,效率合理 <br>
  40. 2)正确地使用数据库和设计分析工具,ER图,从ER图导出关系模式,规范化,事务处理,索引等 <br>
  41. 3)其它... <br>
  42. 8.3个人一组,做好分工,量化每个人的贡献度
  43. ## 项目目录结构
  44. ```
  45. bookstore
  46. |-- be mock的后端
  47. |-- model
  48. |-- view
  49. |-- ....
  50. |-- doc JSON API规范说明
  51. |-- fe 前端代码
  52. |-- access
  53. |-- bench 效率测试
  54. |-- data
  55. |-- book.db sqlite 数据库(book.db,较少量的测试数据)
  56. |-- book_lx.db sqlite 数据库(book_lx.db, 较大量的测试数据,要从网盘下载)
  57. |-- scraper.py 从豆瓣爬取的图书信息数据
  58. |-- test 功能性测试(不要修改这里的文件,可以提pull request或bug)
  59. |-- conf.py 测试参数,修改这个文件以适应自己的需要
  60. |-- conftest.py pytest初始化配置,修改这个文件以适应自己的需要
  61. |-- ....
  62. |-- ....
  63. ```
  64. ### 安装配置
  65. 安装python (需要python3.6以上)
  66. 安装依赖
  67. pip install -r requirements.txt
  68. 执行测试
  69. bash script/test.sh
  70. bookstore/fe/data/book.db中包含测试的数据,从豆瓣网抓取的图书信息,
  71. 其DDL为:
  72. create table book
  73. (
  74. id TEXT primary key,
  75. title TEXT,
  76. author TEXT,
  77. publisher TEXT,
  78. original_title TEXT,
  79. translator TEXT,
  80. pub_year TEXT,
  81. pages INTEGER,
  82. price INTEGER,
  83. currency_unit TEXT,
  84. binding TEXT,
  85. isbn TEXT,
  86. author_intro TEXT,
  87. book_intro text,
  88. content TEXT,
  89. tags TEXT,
  90. picture BLOB
  91. );
  92. 更多的数据可以从网盘下载,下载地址为,链接:
  93. https://pan.baidu.com/s/1bjCOW8Z5N_ClcqU54Pdt8g
  94. 提取码:
  95. hj6q
  96. 这份数据同bookstore/fe/data/book.db的schema相同,但是有更多的数据(约3.5GB, 40000+行)