Skip to content

Latest commit

 

History

History
30 lines (19 loc) · 1.81 KB

project_workflow.md

File metadata and controls

30 lines (19 loc) · 1.81 KB

CellPhoneDB Project Workflow

CellPhoneDB is developed using multiple libraries and frameworks.

The project is designed to isolate library dependencies as much as possible. This makes it easier to change the libraries in the future.

This is the structure of the project modules/layers:

alt text

Web Page Layer

This is an independent project developed in PHP. It enables a web portal to make requests and visualize results of CellPhoneDB.

The web application communicates to the server over the Flask Web http API allocated in API Layer.

Terminal Layer

This is the user server communication portal. It enables some commands to make methods, queries, export data and update data.

It communicates with the Flask Terminal API in API Layer

API Layer

The API Layer is developed in Flask and enables a http (using Flask-RESTful extension) and terminal API (using Click Flask package) to communicate with the outside.

Local Layer

This is used to read/write input/output files in the system. It is necessary to isolate the Flask Terminal API and Core Layer during the loading/finishing processes.

Business Logic Layer

This is where all CellPhoneDB Business Logic is allocated. It does not have dependencies with the flask/SqlAlchemy libraries and it can be executed without load the previous layers. In the future, we will create a package to import CellPhonDB directly from other Python packages.

Database Layer

This is where the database communications are done. Is developed using SQLAlchemy and it isolates the ORM dependence. Outside of this layer, all data is processed using Pandas library data structures.