Due to the complexity of the project, we have decided to split the documentation into multiple parts. This 'wiki' file will explain what documentation type does what. Some documentation types require generation by the user (PyDoc & JSDoc), please see below how to do so.
In general, the documentation is divided into the following parts:
- General documentation (auth flows, API conventions, etc.): see docs/
- REST API: see API.md and the Swagger documentation at
http://127.0.0.1:5000/api/docs(when running the debug server locally withAPP_SWAGGER_ENABLED=true) - Entity-Relationship (ER) diagram: see diagram at draw.io here and local copy at docs/ERD.svg
- Backend code documentation: see PyDoc documentation at
/pydocs - Frontend code documentation: see JSDoc documentation at
/jsDocs - High-level user manual, with links to technical details: see USER_MANUAL.md
- Test cases: see TEST_INDEX.md
- Used assets: see credits.txt
The backend code documentation is generated using PyDoc.
To generate the documentation, run the app with APP_GENERATE_DOCS=true in your environment variables.
Then, HTML documentation will be generated in the pydocs folder, starting from the index.html file.
The frontend code documentation is generated using JSDoc and therefore requires the usage of the npm package manager.
First, setup the project. You only have to do this step once:
sudo npm install -g jsdoc
sudo npm install @ckeditor/jsdoc-pluginsThen, to generate the documentation, run the following command from the root directory of the project:
jsdoc -c jsdoc.jsonThen, HTML documentation will be generated in the jsDocs folder, starting from the index.html file.