Created 5 years ago
Pierre-Yves Chibon committed a month ago
fedocal
=======
:Author: Pierre-Yves Chibon <pingou@pingoured.fr>
fedocal is a web based calendar application.
Get this project:
-----------------
Source: https://pagure.io/fedocal.git/
Mirror on github: https://github.com/fedora-infra/fedocal
(Please use Pagure as the main repository and make sure
you run your patch against it)
Documentation: http://fedocal.rtfd.org
Dependencies:
-------------
.. _python: http://www.python.org
.. _Flask: http://flask.pocoo.org/
.. _python-flask: http://flask.pocoo.org/
.. _python-flask-wtf: http://packages.python.org/Flask-WTF/
.. _python-wtforms: http://wtforms.simplecodes.com/docs/1.0.1/
.. _SQLAlchemy: http://www.sqlalchemy.org/
.. _python-sqlalchemy: http://www.sqlalchemy.org/
.. _python-vobject: http://vobject.skyhouseconsulting.com/
.. _iCal: http://en.wikipedia.org/wiki/ICalendar
.. _python-kitchen: http://packages.python.org/kitchen/
.. _alembic: https://bitbucket.org/zzzeek/alembic
.. _python-alembic: http://pypi.python.org/pypi/alembic
.. _pytz: http://pytz.sourceforge.net/
.. _dateutil: http://labix.org/python-dateutil
.. _python-dateutil: http://pypi.python.org/pypi/python-dateutil
This project is a `Flask`_ application. The calendars and meetings are
stored into a relational database using `SQLAlchemy`_ as Object Relational
Mapper (ORM) and `alembic`_ to handle database scheme changes.
fedocal provides an `iCal`_ feed for each calendar and relies on
`python-vobject`_ for this. Finally, `pytz`_ is used to handle the timezone
changes and `dateutil`_ to allow date manipulation over months/years.
The dependency list is therefore:
- `python`_ (2.5 minimum)
- `python-flask`_
- `python-flask-wtf`_
- `python-wtforms`_
- `python-sqlalchemy`_
- `python-vobject`_
- `python-kitchen`_
- `python-alembic`_
- `pytz`_
- `python-dateutil`_
- `python-fedora-messaging`_
- `python-flask-multistatic`_
- `python-flask-oidc`_
Running a development instance:
-------------------------------
Clone the source::
git clone https://github.com/fedora-infra/fedocal.git
Copy the configuration files::
cp fedocal.cfg.sample fedocal.cfg
cp alembic.ini.sample alembic.ini
Adjust the configuration file (secret key, database URL, admin group...)
Create the database scheme::
FEDOCAL_CONFIG=fedocal.cfg sh createdb
Register the application to iddev for development::
oidc-register https://iddev.fedorainfracloud.org/ http://localhost:5000/oidc_callback
Add the following two lines in your configuration file `fedocal.cfg`::
OIDC_ID_TOKEN_COOKIE_SECURE = False
OIDC_REQUIRE_VERIFIED_EMAIL = False
Run the server::
python runserver.py --config fedocal.cfg
You should be able to access the server at http://localhost:5000 (do not use
``127.0.0.1`` as it will no work)
/!\ If login in does not work and gives you an ``invalid return_uri`` check
the ``redirect_uris`` in the ``client_secrets.json`` file and make sure it
matches **exactly** (check http vs https, trailing slash vs no trailing slash...).
You may have to re-register as editing directly the ``client_secrets.json``
file will not work.
Testing:
--------
This project contains unit-tests allowing you to check if your server
has all the dependencies correctly set.
To run them simply call::
tox
.. note:: To stop the test at the first error or failure you can try:
::
tox -- -x
.. note:: To run a single file you can try:
::
tox -- tests/test_flask.py -x
Reporting issues:
-----------------
For any issue you may encounter please file a ticket and submit it to:
Fedocal Pagure: https://pagure.io/fedocal/issues
Contributors can use the same tracker to find existing bugs to work on.
You need to login with your FAS account to submit or modify a ticket.
License:
--------
This project is licensed GPLv3+.