CC开源博客

CC法律数据库:开发功能

功能

通过Krystle萨拉查在2020-08-07

这篇博客是这个系列的一部分: 2020年5月外联:CC法律数据库

在这篇文章中,我想更新一下重建CC法律数据库网站的进展,这是我的外展项目。到目前为止,上个月添加了几个功能。

提交表单

我想要实现的第一件事是各自的表单,这样任何人都可以向数据库提交案例或文章。这些表单在重新设计时(在前面的文章中讨论过)略有修改,因此现在它的强制字段更少,以降低标准并促进用户的贡献。

提交一篇与CC许可相关的文章
奖学金表格提交一篇文章。

以奖学金表格为例,你只需要分享你的姓名、电子邮件和一个链接,就可以提出一篇与任何CC许可相关的文章,尽管你能提供的信息越多越好,但在任何情况下,每一篇投稿都要经过工作人员的审查才能发表。

第二个重要的任务是允许在每个清单中进行搜索。开始使用公开信息的基本功能。在当前站点,这个功能被委托给一个外部服务,某著名的搜索引擎。现在在后端根据用户输入的关键字执行筛选,从而返回缩减后的列表。稍后,这将与根据每个条目(案例或奖学金)相关的标签或主题进行过滤相结合。

自动化测试

在开发上述功能的同时,我还负责添加自动单元测试,以确保未来对代码库的更改不会损害网站的已有功能部分。这除了给未来的贡献者更多的信心之外,它们还能立即提供价值,在编写测试时,您应该考虑可能的边缘情况,因此它们允许我注意到一些路由中缺失的验证,然后纠正它。

404页的
请求未发布或不存在的案例详细信息时获得的页面示例。

在添加自动化测试的过程中,我希望它们运行在创建的每个拉请求上,所以我学会了如何使用PostgreSQL服务(本例中使用的DBMS)编写GitHub Action。在此之前,我已经为检测创建了一个作业,因此我需要添加另一个并行运行的作业以节省时间。GitHub提供的这项服务很酷也很有用,它打开了一个可能性的世界,从运行第三方服务灯塔测试甚至发送微博!如果你想查看为这个项目配置的GitHub Action文件,请查看:.github /工作流/ main.yml

可访问性

为了检查网站是否有缺点,我在主页上做了Lighthouse测试,发现确实有一些问题需要解决。原则上结果如下:

最初的灯塔测试测量。

这个测试的好处是它提出了关于如何修复发现的错误的建议,因此在添加某些缺失的属性和标签之后,实现了以下结果。

灯塔校正后的测试测量。

还有改进的空间,但至少我们在一个相当可接受的绿色范围内。

其他特性和调整

实现了其他一些功能,但只与我们的注册用户(即法律人员)相关。它们由Django管理自定义组成,比如按状态过滤记录,以及特定的请求,常见问题的答案需要格式化显示,所以它们现在被保存为Markdown文本,并在公共站点上转换为带有样式的HTML,显示列表,粗体文本,链接等。管理员在编辑时也可以看到预览。

结论

在回顾了上个月所做的一切之后,我看到了显著的进步,一路上我学到了很多东西:Django和它的生态系统提供了更多的东西,关于可访问性,在Heroku和GitHub中的持续集成,等等。让我最开心的一件事是能够贡献并成为开源组织的一部分,知道它是如何移动和工作的,这是我以前从未想象过的。

时间过得真快,离完成还有不到两周的时间,所以如果你想跟踪这个项目,这里是存储库,可以建议改进或报告错误,或者如果你更喜欢一些不太技术性的东西,你可以加入我们的松弛的通道