===== About ===== Froide was designed to mimic the functionality of `What do they know `_ – a Freedom of Information portal in the UK written in Ruby on Rails 2.3. At the time when a German FoI portal was needed, the general FoI solution forked from WDTK called `Alaveteli `_ was hard to install and not ready for reuse. That's why Froide was developed as a fresh start, fully internationalized and configurable written in Django 1.3 to power `Frag den Staat `_. Development Goals ----------------- Froide has some development goals that are listed below. Some of them are a continuous effort, some are achieved, on others development is still ongoing. - Internationalization (i18n): Keep the code fully internationalized and localized. - Flexible and Configurable: Many aspects of an FoI platform depend on local customs and laws. These aspects should be either configurable via settings or easily replaceable. - Easy to install: Keep dependencies to one language environment (Python) and use abstraction layers for backends like search, caching etc. to enable different setups. - Maintain a test suite with a high test coverage. Features -------- - Froide uses many of the built-in Django features like the Admin interface to manage and update entities in the system, the internationalization system, and the user management and authentication. - Freedom of Information Laws and Public Entities are connected through a many-to-many relationship. That allows for a Public Body to be accountable under different laws. - A Public Body can have a parent to represent hierarchies from the real world. They can also be categorized into classifications (e.g. ministry, council) and topics (e.g. environment, military) which can be defined separately. - Users can create requests without a Public Body so that others can suggest an appropriate recipient later. - Requests can optionally be kept private by users and published at a later point (e.g. after a related article has been published). - Requests are mailed to Public Bodies through the platform via a special, request-unique email address (using SMTP) and the platform will receive answers on that mail address (by accessing an IMAP account). - Search functionality for Requests and Public Bodies. - Error Reporting interface via Sentry. Dependencies ------------ A detailed list of Python package dependencies can be found in `requirements.txt`, but here is a general overview: - Django 1.3 - the Web framework - South 0.7.3 - the database migration framework (development dependency) - Sphinx 1.0.7 - the documentation tool (development dependency) - Celery 2.2.5 - task queue for background processing - Haystack 1.2.0 - abstraction layer for search A development goal is that, even though a task queue (like Celery) and a search server (like Solr) are highly recommended, they are not necessary for either development or production setup and can be replaced with Cronjobs and database queries respectively (results/performance will probably degrade, but it should work). Name ---- Froide stems from "Freedom of Information de" (de for Germany) and sounds like the German word "Freude" which means joy.