Code directories and organization¶
As you can see in the directory, there is the first level file tree directory. And in the following sections, we will cover the some of important file/directory for your faster & better understanding about the BLIS code organization.
├── .devcontainer
├── .github
├── .editorconfig
├── .gitignore
├── API_documentation.txt
├── Dockerfile
├── README.md
├── Update_Instructions.txt
├── bin
├── composer.json
├── composer.lock
├── docker
├── files
├── htdocs
├── local
├── log
├── splash.png
├── tools
├── update_C4GBLIS_v3.3.bat
└── vendor
Tips about file structure
The above tree structure can be generated via the tree command. For more details, read this doc.
Developer tools directories¶
Docker related¶
├── Dockerfile
├── docker
├── .devcontainer
.devcontainer contain the setup for docker setup locally when running in devcontainer; Dockerfile contains the details for pushing image to ghcr.io in the CI/CD stage (Also mentioned in the below Github related section). And docker/ directory contains the docker-compose file, bash files for deployment at Linux machine. More details can be seen in the Deployment page.
Github related¶
├── README.md
├── files
├── log
├── .github
├── splash.png
.github/ directory, there is a CI/CD step: releasing latest changes to the ghcr.io, thus we can easily deploy the latest changes when needed. You can see more details in release-docker.yml.
Composer Related¶
├── composer.json
├── composer.lock
├── tools
├── vendor
Composer as the php package manager for BLIS. You will need to set it up before using it, see more details here. But this is not necessary till you want to make changes to the BLIS dependencies.
As for the composer.json and composer.lock file, you can refer to this documentation to understand how they work. composer.lock records the exact versions that are installed. So that you are in the same versions with your co-workers. And composer.json records the packages you specify and want to use in the project.
And the vendor directory is where the specified packages installed.
Source code directories¶
After going through the developer tools directories, you will find one few files/directories left.
├── API_documentation.txt
├── Update_Instructions.txt
├── bin
├── htdocs
├── local
├── update_C4GBLIS_v3.3.bat
htdocs and local. The htdocs contains almost all the modules in BLIS. And local directory contains the localization versions' settings of phrases, tips, UI appearance. Due to the complexity of this section, few features will be focused for illustration, feel free to add your findings when working on some features. Backup Data and Cloud Backup¶
Cloud backup means you can specify the IP Address and then send backup to the BLIS instance hosted on that IP Address. (More details of UI can be found in User Guide -> Backup Data section).
This functionality mainly lives in ./htdocs/export. The latest changes mainly live in backupData.php and backupDataUI.php. We can refer to specific git commits for better understanding.
UI changes¶
UI and tips have been refactored in the version [TODO], and we found out that the UI settings is reflected in both ./htdocs/Language and local/lab_id directory. Changes in ./htdocs don't necessary propogate to the local labs. So if you want to your changes to be reflected in both new labs and old existed labs, you will need to change the files in ./local/lab_id accordlingly.
There may be some confusion on default, en, fr versions across the repo. TLDR is default is the version will be setup by your country directory when setting up the lab, and can be en or fr. To better understand this scenario, let's imagine we are going to change the tips for english version, then potentially, we will make 4 changes (2 for default and en, 2 for local_lib and htdocs)