Booki is made from three separate projects - Booki, Objavi, and Espri.
Booki is the core component and what most users refer to as 'Booki'. This component is largely developed by Aco and it looks after user and group management and the creation and editing of books. Booki also houses all the communication tools required for collaborative authoring.
When a user requests a book to be imported Booki sends a request to Espri, Espri then sends Booki a Booki-zip file.
When a user publishes a book Booki sends Booki-zip files to Objavi for creating outputting formatted PDF etc.
Objavi is the output ('publishing') engine. Objavi 1 was developed by Luka Frelih in 2008, Objavi 2 in 2009 by Douglas Bagnall. Objavi takes Booki-zip files from Booki and currently outputs to PDF (web readable, book formatted, and newsprint formatted), ODT, and epub.
Objavi is primarily used for generating book formatted PDF which is uploaded to a print on demand service. The PDF layout is controlled by CSS, supports bi-directional text and is unicode compliant.
Objavi can be accessed directly as a web service or accessed via the Publishing tab in the edit interface of any book.
Espri is the importer - handling the import of books from the internet and converting them to Booki-zip. It was developed in 2009 by Douglas to import manuals from FLOSS Manuals but it now has assumed the role of a general importer. Espri prefers to receive either Booki-zip files directly, or epubs. If neither of these are available then Espri manages the conversion of the content into Booki-zip through external conversion scripts.
Espri currently does the following :
1. Archive.org Import : import directly from Archive.org. In this case the user inputs the Archive.org ID for a book into the appropriate field on their user page. Booki then sends this request to Espri. Espri will request an epub for the book directly from Archive.org. Espri then converts this epub into Book-zip and sends it back to Booki.
2. Wikibooks Import : imports books from wikibooks.org. In this case the user must input a Wikibooks URL into the appropriate field on their user page. Booki then sends this request to Espri. Espri then launchs Wiki2epub which in turn retrieves the files from wikibooks.org, creates an epub and sends this file to Espri. Espri then creates a Booki-zip file and sends this to Booki.
3. Import Epub : imports any epub online. The user enters a URL for an epub into the appropriate field on their homepage. Booki then sends this request to Espri. Espri retrieves the epub, creates a Booki-zip and hands this back to Booki.