A pyramid app for issuing your own Open Badges
Project description
Tahrir
======
Tahrir is `Arabic for Liberation
<http://en.wikipedia.org/wiki/Tahrir_Square>`_.
Tahrir is also a `Pyramid <http://www.pylonsproject.org/>`_ app for issuing
your own `Open Badges <https://wiki.mozilla.org/Badges>`_.
The name is total overkill.
You can see Tahrir deployed in production `here
<https://badges.fedoraproject.org/>`_. The staging instance lives `here
<https://badges.stg.fedoraproject.org/>`_.
(On the side, if you have ideas for new *Fedora* badges, you can file them on
`this trac instance <https://fedorahosted.org/fedora-badges/>`_.)
Installing... just to try it out
--------------------------------
You can always::
$ pip install tahrir
Deploying for reals
-------------------
It's `packaged for Fedora and epel6
<https://apps.fedoraproject.org/packages/python-tahrir>`_. The authors use an
`Ansible <http://ansibleworks.com>`_ playbook to deploy Tahrir in production.
You can find our repo `here
<http://infrastructure.fedoraproject.org/infra/ansible/>`_, our playbook `here
<http://infrastructure.fedoraproject.org/infra/ansible/playbooks/groups/badges-web.yml>`_,
and our tahrir role `here
<http://infrastructure.fedoraproject.org/infra/ansible/roles/badges-frontend/>`_.
Building a configuration file
-----------------------------
Get a sample configuration file::
$ wget https://raw.github.com/fedora-infra/tahrir/master/production.ini -O
tahrir.ini
Edit it to your liking. In particular you will need to change the
following values under the ``[server:main]`` section:
- ``host`` = yoursite.com
- ``port`` = 80
And the following values under the ``[app:pyramid]`` section:
- ``tahrir.admin`` = "comma-delimited list of admin email addresses"
- ``tahrir.title`` = "just badgin' around"
- ``tahrir.pngs.uri`` = /home/user/badges/pngs
- ``tahrir.base_url`` = "yoursite.com"
Setting up the DB
-----------------
Run the following command before starting the server::
$ initialize_tahrir_db tahrir.ini
Running
-------
Start the server like so (subsitute ``tahrir.ini`` with the ``.ini`` file
you want to use::
$ pserve tahrir.ini
You can pass the ``--reload`` flag to this command to automatically restart
the server in the event that the code is altered.
Reporting Bugs
--------------
If you find bugs in Tahrir or have ideas for enhancements, please report them
at http://github.com/fedora-infra/tahrir/issues.
Hacking
-------
If you'd like to contribute to Tahrir or just poke at the code, you can use the
following instructions to set up a development environment.
Create an account on Fedora Account Systems (FAS) at
https://admin.fedoraproject.org/accounts. Make sure you have Python 2.7 or
above installed on your system. Then, install the Python version of
virtualenvwrapper (in Fedora)::
$ sudo yum -y install python-virtualenvwrapper
In Ubuntu, you can do the same with::
$ sudo apt-get install python-setuptools
$ sudo apt-get install python-virtualenv
$ sudo easy-install pip
$ sudo pip install python-virtualenvwrapper
After installing virtualenvwrapper, you'll need to set it up for the
first time::
$ export WORKON_HOME=~/.virtualenvs/
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh
You'll want to add ``source /usr/local/bin/virtualenvwrapper.sh`` to
your ``.bashrc``.
Then, to set up Tahrir, follow these steps::
$ git clone git://github.com/fedora-infra/tahrir.git
$ cd tahrir
$ mkvirtualenv tahrir
(tahrir)$ python setup.py develop
(tahrir)$ cp development.ini.sample development.ini
(tahrir)$ cp secret.ini.sample secret.ini
(tahrir)$ initialize_tahrir_db development.ini
(tahrir)$ pserve --reload development.ini
The pserve command should output "starting HTTP server on
https://localhost:8000". Login to https://localhost:8000 in your web browser
using your FAS account username and password. In order to make
yourself an admin of the local copy of tahrir, edit the ``development.ini`` file
and append ``YOUR_FAS_USERNAME@fedoraproject.org`` to the ``tahrir.admin`` option.
When you login, you should now be able to see the admin view of tahrir in your
local copy at http://localhost:8000/admin.
Windows (32 and 64 bit versions):
---------------------------------
For problems like::
c:\env\tahrir>c:\env\Scripts\initialize_tahrir_db development.ini
Error: pkg_resources.DistributionNotFound: simplejson
and::
c:\env\tahrir>c:\env\Scripts\easy_install simplejson
Error: raise ValueError(str(list(result.keys())))
ValueError: [u'path']
Follow these instructions:
1. Download and install mingw from
http://code.google.com/p/mingw-builds/downloads/detail?name=i686-mingw32-gcc-4.7.0-release-c,c%2b%2b,fortran-sjlj.zip&can=2&q=
Extract the contents of this folder to ``c:\mingw``.
2. Download and install setuptools if not already present. This can be done by
running ez_setup.py from c:\Python2x.
3. Create a configuration file for distutils i.e. create a file distutils.cfg
at the following location::
C:\Python2x\Lib\distutils\distutils.cfg
Add the following line to it::
[build] compiler=mingw32
4. Now open command prompt and use easy_install to install simplejson::
C:\env\tahrir>c:\env\Scripts\easy_install simplejson
This will install simplejson in Python2x\Lib\site-packages\. A few other
packages -- namely httplib2 -- may have to be installed the same way before the
``initialize_tahrir_db`` command can be executed.
======
Tahrir is `Arabic for Liberation
<http://en.wikipedia.org/wiki/Tahrir_Square>`_.
Tahrir is also a `Pyramid <http://www.pylonsproject.org/>`_ app for issuing
your own `Open Badges <https://wiki.mozilla.org/Badges>`_.
The name is total overkill.
You can see Tahrir deployed in production `here
<https://badges.fedoraproject.org/>`_. The staging instance lives `here
<https://badges.stg.fedoraproject.org/>`_.
(On the side, if you have ideas for new *Fedora* badges, you can file them on
`this trac instance <https://fedorahosted.org/fedora-badges/>`_.)
Installing... just to try it out
--------------------------------
You can always::
$ pip install tahrir
Deploying for reals
-------------------
It's `packaged for Fedora and epel6
<https://apps.fedoraproject.org/packages/python-tahrir>`_. The authors use an
`Ansible <http://ansibleworks.com>`_ playbook to deploy Tahrir in production.
You can find our repo `here
<http://infrastructure.fedoraproject.org/infra/ansible/>`_, our playbook `here
<http://infrastructure.fedoraproject.org/infra/ansible/playbooks/groups/badges-web.yml>`_,
and our tahrir role `here
<http://infrastructure.fedoraproject.org/infra/ansible/roles/badges-frontend/>`_.
Building a configuration file
-----------------------------
Get a sample configuration file::
$ wget https://raw.github.com/fedora-infra/tahrir/master/production.ini -O
tahrir.ini
Edit it to your liking. In particular you will need to change the
following values under the ``[server:main]`` section:
- ``host`` = yoursite.com
- ``port`` = 80
And the following values under the ``[app:pyramid]`` section:
- ``tahrir.admin`` = "comma-delimited list of admin email addresses"
- ``tahrir.title`` = "just badgin' around"
- ``tahrir.pngs.uri`` = /home/user/badges/pngs
- ``tahrir.base_url`` = "yoursite.com"
Setting up the DB
-----------------
Run the following command before starting the server::
$ initialize_tahrir_db tahrir.ini
Running
-------
Start the server like so (subsitute ``tahrir.ini`` with the ``.ini`` file
you want to use::
$ pserve tahrir.ini
You can pass the ``--reload`` flag to this command to automatically restart
the server in the event that the code is altered.
Reporting Bugs
--------------
If you find bugs in Tahrir or have ideas for enhancements, please report them
at http://github.com/fedora-infra/tahrir/issues.
Hacking
-------
If you'd like to contribute to Tahrir or just poke at the code, you can use the
following instructions to set up a development environment.
Create an account on Fedora Account Systems (FAS) at
https://admin.fedoraproject.org/accounts. Make sure you have Python 2.7 or
above installed on your system. Then, install the Python version of
virtualenvwrapper (in Fedora)::
$ sudo yum -y install python-virtualenvwrapper
In Ubuntu, you can do the same with::
$ sudo apt-get install python-setuptools
$ sudo apt-get install python-virtualenv
$ sudo easy-install pip
$ sudo pip install python-virtualenvwrapper
After installing virtualenvwrapper, you'll need to set it up for the
first time::
$ export WORKON_HOME=~/.virtualenvs/
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh
You'll want to add ``source /usr/local/bin/virtualenvwrapper.sh`` to
your ``.bashrc``.
Then, to set up Tahrir, follow these steps::
$ git clone git://github.com/fedora-infra/tahrir.git
$ cd tahrir
$ mkvirtualenv tahrir
(tahrir)$ python setup.py develop
(tahrir)$ cp development.ini.sample development.ini
(tahrir)$ cp secret.ini.sample secret.ini
(tahrir)$ initialize_tahrir_db development.ini
(tahrir)$ pserve --reload development.ini
The pserve command should output "starting HTTP server on
https://localhost:8000". Login to https://localhost:8000 in your web browser
using your FAS account username and password. In order to make
yourself an admin of the local copy of tahrir, edit the ``development.ini`` file
and append ``YOUR_FAS_USERNAME@fedoraproject.org`` to the ``tahrir.admin`` option.
When you login, you should now be able to see the admin view of tahrir in your
local copy at http://localhost:8000/admin.
Windows (32 and 64 bit versions):
---------------------------------
For problems like::
c:\env\tahrir>c:\env\Scripts\initialize_tahrir_db development.ini
Error: pkg_resources.DistributionNotFound: simplejson
and::
c:\env\tahrir>c:\env\Scripts\easy_install simplejson
Error: raise ValueError(str(list(result.keys())))
ValueError: [u'path']
Follow these instructions:
1. Download and install mingw from
http://code.google.com/p/mingw-builds/downloads/detail?name=i686-mingw32-gcc-4.7.0-release-c,c%2b%2b,fortran-sjlj.zip&can=2&q=
Extract the contents of this folder to ``c:\mingw``.
2. Download and install setuptools if not already present. This can be done by
running ez_setup.py from c:\Python2x.
3. Create a configuration file for distutils i.e. create a file distutils.cfg
at the following location::
C:\Python2x\Lib\distutils\distutils.cfg
Add the following line to it::
[build] compiler=mingw32
4. Now open command prompt and use easy_install to install simplejson::
C:\env\tahrir>c:\env\Scripts\easy_install simplejson
This will install simplejson in Python2x\Lib\site-packages\. A few other
packages -- namely httplib2 -- may have to be installed the same way before the
``initialize_tahrir_db`` command can be executed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tahrir-0.7.0.tar.gz
(950.2 kB
view details)
File details
Details for the file tahrir-0.7.0.tar.gz
.
File metadata
- Download URL: tahrir-0.7.0.tar.gz
- Upload date:
- Size: 950.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 043a636f4b8424bda229f9cc4a4799a76e487c8efa31efa6572cbb7d4339ee36 |
|
MD5 | d5c82274797cece78e7ab4eecdd7d2ba |
|
BLAKE2b-256 | db4851c50444c3c17c4567600b27c52dbb58662542e3f1aa8e0df224f72bfb9b |