Project structure

Version 10 (Paul Carensac, 08/08/2016 05:45 pm) → Version 11/21 (Paul Carensac, 08/08/2016 05:47 pm)

h1. Project structure

Schemas and descriptions of the project's architecture.

{{>toc}}

---

h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}Pyros Design%

{{thumbnail(pyros_design_en.png, size=3000, title=Pyros workflow)}}

Each application is represented here, as well as the external agents.
We can see every interaction between the applications, with the main workflow in red.

All the applications are detailed [[Pyros_applications|here]].

---

h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}Folders architecture%

{{thumbnail(folders_architecture.png , size=3000, title=Pyros workflow)}}

* PYROS : Main folder of the project, root of the git repository

* doc : Contains all the documentation

* database : Contains the database files (schema, creation sql script)
* uml : usecases and activities diagrams for the applications
* diagrams : other useful diagrams

* install : Everything needed at the installation

* scripts & requirements : Files making the installation automatic
* windows libs : Folder containing libraries copied from linux that cannot be found with the good version on windows

* private :


---

h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}Applications architecture%

{{thumbnail(applications_architecture.png , size=3000, title=Application architecture)}}

Django applications are created with the command :
<pre>
$ python manage.py startapp AppName
</pre>

This commands automatically create some files and folders :

* migrations : A folder containing the DB modifications files (only used in the pyrosapp application)
* templates : A folder containing the Django HTML templates for this application
* __init__.py & apps.py : App configuration files (not used)
* models.py & admin.py : Files desribing database objects, and their representation in the admin interface (only used in pyrosapp)
* views.py : File containing the code called for each web page

We added some other files to every application :

* urls.py : File describing the routing from urls to views. Directly linked to (and called by) the "pyros" folder's urls.py.
* tasks.py : File containing the Celery tasks for this application.