Documentation updates

This commit is contained in:
Roberto Rosario
2012-02-01 13:43:24 -04:00
parent 58bea814f1
commit a90896e774
35 changed files with 994 additions and 914 deletions

100
docs/intro/features.rst Normal file
View File

@@ -0,0 +1,100 @@
========
Features
========
* Document versioning.
* Store many versions of the same document, download or revert to a previous version.
* Electronic signature verification.
* Check the authenticity of documents by verifying their embedded
cryptographic signatures or upload detached signatures for document
signed after they were stored.
* Collaboration tools.
* Discuss documents, comment on new version of a document.
* Office document format support.
* Word processing files? Spreadsheets? Sresentations? They are supported too.
* User defined metadata fields and meta data sets.
* Metadata fields can be grouped into sets per technical, legal or structural requirements such as the `Dublin core`_
* Dynamic default values for metadata.
* Metadata fields can have an initial value which can be static or determined by an user provided Python code snipped.
* Filesystem integration.
* If enabled, the document database index can be mirrored in the filesystem of the hosting computers and shared via Samba_ or any other method to clients computers on a network.
* User defined document unique identifier and checksum algorithms.
* Users can alter the default method used to uniquely indentify documents.
* Documents can be uploaded from different sources.
* Local file or server side file uploads.
* Batch upload many documents with the same metadata.
* Clone a document's metadata for speedier uploads and eliminate repetitive data entry.
* Previews for a great deal of image formats, including PDF.
* **Mayan EDMS** provides different file conversion backends with different levels of functionality and requirements to adapt to different deployment environments.
* Full text searching.
* Document can be searched by their text content, their metadata or any other file attribute such as name, extension, etc.
* Configurable document grouping.
* Automatic linking of documents based on metadata values or document properties.
* Roles support.
* Users can created an unlimited amount of different roles and are not restricted to the traditional admin, operator, guest paradigm.
* Fine grained permissions system.
* There is a permission for every atomic operation performed by users.
* Multi page document support.
* Multiple page PDFs and TIFFs files supported.
* Distributed OCR processing.
* The task of transcribing text from documents via OCR can be distributed among several physical or virtual computers to decrease load and increase availability.
* Multilingual user interface (English, Spanish, Portuguese, Russian).
* **Mayan EDMS** is written using the Django_ framework which natively support Unicode, this coupled with the use of text templates allows **Mayan EDMS** to be translated to practically any language spoken in the world, by default four translations are provided: English, Spanish, Portuguese and Russian.
* Multilingual OCR support.
* As supported by the OCR engine tesseract.
* Duplicated document search.
* Plugable storage backends (File based and GridFS included).
* Very easy to use 3rd party plugins such as the ones available for Amazon EC2.
* Color coded tagging.
* Labeled and color coded tags that are intituitive.
* Staging folders to receive scanned documents directly from network attached scanners.
* Preview scanned files even before uploading them.
.. _`Dublin core`: http://dublincore.org/metadata-basics/
.. _Samba: http://www.samba.org/
.. _Django: https://www.djangoproject.com/

164
docs/intro/installation.rst Normal file
View File

@@ -0,0 +1,164 @@
============
Installation
============
Local or managed server
-----------------------
**Mayan EDMS** should be deployed_ like any other Django_ project and preferably using virtualenv_.
If using a Debian_ or Ubuntu_ based Linux distribution getting the executable requirements is as easy as::
$ apt-get install tesseract-ocr unpaper python-virtualenv ghostscript -y
To initialize a ``virtualenv`` to deploy the project do::
$ virtualenv --no-site-packages mayan
Download_ and decompress the latest version of **Mayan EDMS**::
$ cd mayan
$ tar -xvzf mayan.tar.gz
Or clone the latest development version straight from github::
$ cd mayan
$ git clone git://github.com/rosarior/mayan.git
To install the python dependencies ``easy_install`` can be used, however for easier retrieval a production dependencies file is included, to use it execute::
$ cd mayan
$ source ../bin/activate
$ pip install -r requirements/production.txt
Create the database that will hold the data. Install any corresponding python database drivers. Update the settings.py file with you database settings.
If using the ``MySQL`` database manager, use the following commands::
$ apt-get install python-dev libmysqlclient-dev gcc -y
$ pip install MySQL-python
Populate the database with the project's schema doing::
$ ./manage.py syncdb --migrate
Collect the static files of the project into the ``static`` folder for serving via a webserver::
$ ./manage.py collectstatic
After that deploy it using the webserver of your preference. If your are using Apache_, a sample site file is included under the contrib directory.
Webfaction
----------
To install **Mayan EDMS** on Webfaction_, follow these steps:
1. Create a new database:
* Enter the following selections:
* Type:* ``Mysql``
* Name:* ``<username>_mayan``
* Encoding:* ``utf-8``
* Anotate the provided password.
2. Create a new app:
* Enter the following in the textbox:
* Name:* ``mayan``
* App category:* ``mod_wsgi``
* App type:* ``mod_wsgi 3.3/Python 2.7``
3. Login via ssh, and execute::
$ easy_install-2.7 virtualenv
$ cd ~/webapps/mayan_app
$ virtualenv --no-site-packages mayan
$ cd mayan
$ git clone git://github.com/rosarior/mayan.git
$ cd mayan
$ source ../bin/activate
$ pip install -r requirements/production.txt
4. Install the Python MySQL database driver::
$ pip install MySQL-python
5. Create a settings_local.py file, and paste into it the following::
$ DATABASES = {
$ 'default': {
$ 'ENGINE': 'django.db.backends.mysql',
$ 'NAME': '<username>_mayan',
$ 'USER': '<username>_mayan',
$ 'PASSWORD': '<database password from step 1>',
$ 'HOST': '',
$ 'PORT': '',
$ }
$ }
6. Create the database schema (during this step two errors will appears about failling to install indexes on ``documents.Document`` and ``documents.DocumentPage`` models, ignore them for now)::
$ ./manage.py syncdb --migrate
7. Collect the static files of the apps::
$ ./manage.py collectstatic -l --noinput
8. Create a new app:
* Enter the following:
* Name:* ``mayan_static``
* App category:* ``Symbolic link``
* App type:* ``Symbolic link to static-only app``
* Extra info: ``/home/<username>/webapps/mayan_app/mayan/mayan/static``
9. Create the website:
* Name: ``mayan_edms``
* Choose a subdomain
* Under ``Site apps:`` enter the following selections:
* App #1
* App:* ``mayan_app``
* URL path (ex: '/' or '/blog'):* ``/``
* App #2
* App:* ``mayan_static``
* URL path (ex: '/' or '/blog'):* ``/mayan-static``
10. Edit the file ``~/webapps/mayan_app/apache2/conf/httpd.conf``:
* Disable the ``DirectoryIndex`` line and the ``DocumentRoot`` line
* Add the following line::
WSGIScriptAlias / /home/<username>/webapps/mayan_app/mayan/mayan/wsgi/dispatch.wsgi
DjangoZoom
----------
For instructions on how to deploy **Mayan EDMS** on DjangoZoom, watch the screencast:
"Deploying Mayan EDMS on DjangoZoom.net" available on Youtube_
.. _`vendor lock-in`: https://secure.wikimedia.org/wikipedia/en/wiki/Vendor_lock-in
.. _Python: http://www.python.org/
.. _Django: http://www.djangoproject.com/
.. _OCR: https://secure.wikimedia.org/wikipedia/en/wiki/Optical_character_recognition
.. _`Open source`: https://secure.wikimedia.org/wikipedia/en/wiki/Open_source
.. _DjangoZoom: http://djangozoom.com/
.. _Youtube: http://bit.ly/mayan-djangozoom
.. _Django: http://www.djangoproject.com/
.. _Apache: https://www.apache.org/
.. _Debian: http://www.debian.org/
.. _Ubuntu: http://www.ubuntu.com/
.. _Download: https://github.com/rosarior/mayan/archives/master
.. _Webfaction: http://www.webfaction.com
.. _deployed: https://docs.djangoproject.com/en/1.3/howto/deployment/
.. _virtualenv: http://www.virtualenv.org/en/latest/index.html

19
docs/intro/overview.rst Normal file
View File

@@ -0,0 +1,19 @@
====================
History and overview
====================
**Mayan EDMS** started as a simple project whose only requirement was the storage of PDF files, from there it has grown into a complete electronic document management solution.
**Mayan EDMS** can optimize an organization's bulk upload, storage and retrieval or documents.
Documents are organized using document classes, user defined metadata fields as well as automatic document grouping and indexing. Documents can be retrieved from the document index or by means of full
text searching. Users can search for terms in the document's metadata, properties or contents extracted from PDFs or transcribed by OCR_. **Mayan EDMS** is written in Python_ using the Django_ framework, which makes it very agile and fast, specially when compared with existing Java based solutions.
Being based on patent free, `Open source`_ technologies, **Mayan EDMS** provides legal safety to users and organizations, as well as peace of mind as documents and all related information is stored in open source and transparent formats allowing portability and avoiding `vendor lock-in`_.
Being written using Python_, **Mayan EDMS** runs on many POSIX compliant operating systems, this coupled with many configuration parameters, allows **Mayan EDMS** to be deployed on many hardware and software configurations such as single server based, clusters, virtualized and cloud based hosting giving adopters the choice of using the infrastructure of their choice.
On hosting providers that support Django_ such as DjangoZoom_, **Mayan EDMS** can be deployed in under 2 minutes with just a few clicks of the mouse [#]_.
.. [#] "Deploying Mayan EDMS on DjangoZoom.com" @ Youtube (http://bit.ly/mayan-djangozoom)
.. _`vendor lock-in`: https://secure.wikimedia.org/wikipedia/en/wiki/Vendor_lock-in
.. _Python: http://www.python.org/
.. _Django: http://www.djangoproject.com/
.. _OCR: https://secure.wikimedia.org/wikipedia/en/wiki/Optical_character_recognition
.. _`Open source`: https://secure.wikimedia.org/wikipedia/en/wiki/Open_source
.. _DjangoZoom: http://djangozoom.com/

View File

@@ -0,0 +1,52 @@
============
Requirements
============
**Mayan EDMS** supports various levels of functionality, because of this
requirements can vary for each individual deployment.
Basic requirements
==================
Python:
* ``Django`` - A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
* ``django-pagination``
* ``django-filetransfers`` - File upload/download abstraction
* ``django-mptt`` - Utilities for implementing a modified pre-order traversal tree in django
* ``django-taggit`` - Simple tagging for django
* ``slate`` - The simplest way to extract text from PDFs in Python
Execute pip install -r requirements/production.txt to install the python/django dependencies automatically.
Executables:
* ``tesseract-ocr`` - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.
* ``unpaper`` - post-processing scanned and photocopied book pages
* ``gpg`` - The GNU Privacy Guard
Optional requirements
=====================
To store documents in a GridFS database
---------------------------------------
* ``PyMongo`` - the recommended way to work with ``MongoDB`` from Python
* ``GridFS`` - a storage specification for large objects in ``MongoDB``
* ``MongoDB`` - a scalable, open source, document-oriented database
Enhanced MIME detection
------------------------
* ``libmagic`` - MIME detection library, if not installed **Mayan EDMS** will fall back to using python's simpler mimetype built in library
* ``python-magic`` - A python wrapper for libmagic
Image conversion backends
-------------------------
**Mayan EDMS** has the ability to switch between different image conversion backends, at the moment these three are supported:
* ``ImageMagick`` - Convert, Edit, Or Compose Bitmap Images.
* ``GraphicMagick`` - Robust collection of tools and libraries to read, write, and manipulate an image.
* Python only - Relies on ``PIL`` to support a limited set of the most common graphics formats.
By default the python backend is used.