Code Structure

This is a quick view of the source code structure of Alfanous project explaining the different packages and modules.

Packages

alfanous:the main API of the project, offers the search features.
alfanous-import:
 a library responsible of all management tasks of Quranic & Linguistic resources.
alfanous-cgi:a small script to execute the API in a web CGI environment.
alfanous-desktop:
 a desktop interface made by QT & PyQt.
alfanous-django:
 a django app replaces the old web user interface and also the cgi script.
alfanous-labs:all related libraries that still in alpha phase.
alfanous-tests:scripts used to test the different modules of the API.
PyCorpus:a library used to parse & understand Arabic Quranic Corpus.
PyZekrModels:a library used to parse Zekr Translations Models.

API Modules, Files (alfanous)

main.py:the main module that relay all the modules.
console.py:a console interface for the API.
Outputs.py:the programming interface, responsible of the output of all results.
Data.py:the manager of paths and Data reading and loading.
TextProcessing.py:
 the module responsible of searched/indexed text processing.
QueryProcessing.py:
 the module responsible of search query processing.
ResultsProcessing.py:
 the module responsible of results processing.
Indexing.py:the manager of the indexes reading.
Searching.py:the module responsible of the basic search operation.
Suggestions.py:the module responsible of suggestions.
Romanization.py:
 the module responsible of romanization systems.
Threading.py:the module responsible of multi-processing during the search.
Constants.py:a module that contains some constants used in the API.
Exceptions.py:a module that contains some exceptions used in the API.
Misc.py:a pre-implementing test module.
Support.*:Some third-party libraries.
configs.*:Configuration files in a Json format.
resources.*:Quranic & Lingustic data in a Json format to replace the binary sqlite database.
dynamic_resources.*:
 Compiled linguistic data to python modules to gain speed.
indexes.*:All needed indexes on Whoosh indexes format.
setup.py:the script of installation & packaging (setuptools)
ez_setup.py:an alternatif for setuptools library.

Importer Modules (alfanous-import)

main.py:the main module that relays all the modules and offers a console interface.
Downloader.py:download online resources.
Parser.py:parse the resources.
Standardizer.py:
 convert the resources to a standard format (not implemented).
Importer.py:import the resources into the main database.
Transformer.py:transfer&convert the resources from the main database into Whoosh indexes.
Updater.py:update the data in API based on actual resources.
initial_importing.py:
 a script used the first-time to load many resources (deprecated).
setup.py:the script of installation & packaging (setuptools).