我们最初的集思广益表明,没有太多服务可以向公众甚至新闻媒体存储和呈现选举数据。通过这个项目,我们希望通过提供政党交易和高级选民人口统计等信息来弥合这一差距,这些信息既没有在任何新闻媒体上报道,也没有由当前数据库存储。
当前的数据库(例如http://www.indiavotes.com)虽然提供了选举后的结果,例如选民投票率和势均力敌的竞争,但无法提供任何可能有助于预测选举的信息。最重要的是,没有关于选举工作人员或 EVM 的信息。我们相信这些数据对于选举的顺利进行至关重要,并确保将其纳入我们的项目中。我们希望我们的项目将有助于在未来创建信息灵通的选举,并且通过使用我们的项目,每个人都能够更好地分析他们的选择。
我们创建了一个印度选举数据库系统,存储有关选举、选民、选举委员会、候选人和政党的信息。通过我们的网站,用户可以访问他们需要的所有数据。
假设:我们可以访问有关政党和选举的所有数据。
我们的主要利益相关者将是选民、政党、媒体和独立研究人员。
我们决定在我们的应用程序中使用 Django 框架,因为它是一个基于 python 的 Web 框架,并遵循模型-模板-视图架构模式,这使其具有高度可扩展性。
我们在后端项目中遇到/预期的主要问题是:
我们使用 VanillaJS 以及 HTML 和 CSS 来制作前端。
我们在后端项目中遇到/预期的主要问题是:
我们为每个利益相关者创建了一个表来存储他们的详细信息,并创建了一些表来建立他们之间的关系。对于选民等数据量较大的表,我们为其创建了索引表,以便我们可以快速访问其数据。我们还对数据库进行了规范化,使其易于理解且更新效率更高。
该数据库发布在 Microsoft Azure 服务器中,可以使用 Microsoft SQL Server 管理软件进行访问。
用户必须执行以下操作才能运行该项目:
python manage . py runserver
You have 17 unapplied migration ( s ). Your project may not work properly until you apply the migrations for app ( s ): admin , auth , content types , sessions .
Run 'python manage.py migrate' to apply them .
April 30 , 2020 - 14 : 41 : 47
Django version 3.0 . 5 , using settings 'django_project.settings'
Starting development server at http : // 127.0 . 0.1 : 8000 /
Quit the server with CTRL - BREAK .
我们创建了虚拟选举,使我们能够在实际结果之前估计选举结果。用户登录我们的网站并选择候选人,一旦完成,他就不能再次投票。通过这种方式,我们创建了一个包含选民详细信息及其投票的表,并在特定时间后,我们向用户宣布估计结果。
通过这种方式,我们可以在实际投票开始计票之前向用户提供结果。
我们创建了一个高效的服务,可以跟踪事务、维护缓存、保持并发锁并使用多线程快速提供结果。详细内容在技术设计中有提及。
我们制作了高效的网页,使用户无需刷新网页即可持续获取更新的数据。详细内容在技术设计中有提及。
链接:https://app.creately.com/diagram/knHC7u2yS86/