选举

创建7年前
维护人b科顿
Fedora选举平台
成员
本·科顿坚信的3年前

费多拉选举

软呢帽选举是一个用Python编写并基于Flask的web应用程序。它实现了范围投票系统.

此项目是使用Fedora project请求开发的,但可以很容易地适应其他项目。Fedora Elections与Fedora集成会计系统(FAS)。

创建开发环境

要使用Fedora Elections web应用程序,您需要创建测试更改的开发环境。通过使用流浪者,一个强大的用于在工作站上创建开发环境的有用工具。

使用Vagrant

您可以使用选举回购中包含的流浪者设置非常简单。

首先,安装Vagrant流浪病毒插件,以及流浪汉Fedora官方转发的插件:

sudo dnf安装vagrant vagrant-libvirt vagrant-sshfs

现在,从主目录(带有Vagrantfile文件),运行游荡起来命令来配置开发环境:

游荡起来

完成后,您将能够通过SSH连接到开发虚拟机中具有流浪者ssh并运行命令以启动Fedora Elections服务器:

流浪者ssh[流浪汉@localhost~]$pushd/vagrant//runserver.py—主机“0.0.0.0”;

运行后,请转到本地主机:5005在您的浏览器查看您正在运行的Fedora Elections测试实例。

关于字体的注释

Fedora Elections使用Fedora基础设施中托管的web字体由于CORS限制,在本地进行黑客攻击时不起作用。如果您安装为自己添加字体,Fedora Elections网站的外观将与之相同部署到生产时。

您可以使用此命令安装字体。

sudo dnf安装开放的sans字体

关于git分支的注释

您将在git选举库中找到不同的git分支,如下所示简短描述它们的用途。

选举最初是在git流量使用s2i在OpenShift中部署之前的开发模型(源代码以更连续的部署模型。你会发现这些的痕迹git分支中的不同模型。

  • 发展:这是项目的默认分支,即您所在的分支在克隆存储库时签出。这是一个所有发展正在发生。您的拉入请求应以该分支为目标.
  • 主人:这是其中的分支发展当新的发布。所以你会发现主人最新的稳定版本基本上。
  • 分段:这是选举分段实例所在的分支正在部署。该分支包含一些不在发展因为它们涉及到使选举易于部署通过s2i打开移位。这些更改与代码无关,因此无需出现在发展。此分支位于发展更新暂存时强制推送。您的Pull-Request不应针对此分支。
  • 生产:类似于分段上面的树枝,这是树枝正在从部署选举的生产实例。这里也是包含一些与为配置选举相关的额外提交openshift/s2i,这里的分支也是基于分段并在生产更新时强制推送。您的Pull-Request不应针对此分支。

如何启动Fedora选举

以下步骤将使应用程序的其余部分运行。确保在执行这些步骤时,请使用Vagrant开发环境。

前提条件

在启动fedora选举之前,应安装以下软件包:

  • httpd(httpd)
  • libxslt语言
  • 蟒蛇
  • python-backports-ssl_match_hostname
  • 蟒蛇群
  • python字符
  • 蟒蛇软帽
  • 蟒蛇软呢帽烧瓶
  • 蟒蛇烧瓶
  • 蟒蛇烧瓶炼金术
  • 蟒蛇烧瓶-wtf
  • 巨蟒金贾2
  • 蟒蛇厨房
  • python-lxml
  • 蟒蛇开口
  • python-orderedict码
  • python-orderedict码
  • python-setuptools
  • python-simplejson代码
  • 蟒蛇六号
  • python-sqlalchemy0.7
  • 蟒蛇urllib3
  • python-wtforms

获取源代码

此项目托管于页码.为了方便起见,镜像也位于github.

您可以通过以下方式获取代码:

git克隆https://pageure.io/elections.git

安装pip要求w/tox以进行测试

设置venv(更换<base_path_for_venv><venv_name>):

pip安装--用户virtualenv toxmkvirtualenv<base_path_for_venv>/<venv_name>.<base_path_for_venv>/<venv_name>

安装要求:

pip安装-r要求.txt

配置应用程序

提供了一个示例配置文件在这里.

使用openid-connect注册应用程序

从项目根目录运行:

oidc寄存器https://iddev.fedorainfracloud.org/ http://localhost:5005

创建数据库

运行:

python创建的b.py

创建本地配置文件

运行:

cat>config<<EOLOIDC_ID_TOKEN_COOKIE_SECURE=错误OIDC_REQUIRE_VERIFIED_EMAIL=假终止

启动应用程序

有两种启动应用程序的方法:

  • 没有Apache
  • 使用Apache

没有Apache

当您不必担心时,这对于快速开发实例很有用关于安全问题。不要在生产中运行此操作。服务器将在启动http://127.0.0.1:5005.

./runserver.py-c配置

使用Apache

复制软呢帽选举到您的Apache conf.d目录:

sudo cp文件/fedora-elections.conf/etc/httpd/conf.d/。

接下来,放置软呢帽选举.wsgi在里面/变量/www:

sudo cp文件/fedora-elections.wsgi/var/www

调整Apache配置文件以指向web目录。然后,调整.wsgi文件文件在/变量/www指向软呢帽选择(_E)目录。

将配置文件放入/etc/fedora-elections/fedora-lelections.cfg并根据需要进行调整。

sudo mkdir-p/etc/fedora选举/sudo cp文件/fedora-elections.cfg/etc/fedora-elections/

现在,重新启动Apache:

sudo systemctl重启httpd

运行测试

软呢帽选举使用毒物简化测试,并支持跨多个环境的测试。

请参阅本文件前面关于“如何启动Fedora选举”的部分毒物

要运行测试,只需运行:

毒物

如何做出贡献

如前所述,此项目主要托管在页码.上面有一面镜子github,但只是为了方便。Pagure是首选的接受平台贡献。要提交问题、RFE或其他票据,必须使用Pagure。请参阅其他已提交的问题在这里.

如果你对这个项目感兴趣,请进#软帽管理员在irc.freenode.net上或在Fedora Infrastructure邮件列表.

许可证

软呢帽选举是根据GPLv2许可的。