Visualizing AIXM feature associations
AIXM Browser is a tool which evolves from AIXM browser that aims at visualizing the various features that can be found in an AIXM dataset along with their associations. The representation is made via an interactive graph where the user can explore the features and how they connect to each other in the specific dataset.
At this link browser.aixm.aero you can have a look at a demo of the tool and play around with preloaded AIXM datasets or upload your AIXM XML dataset files.
The project can get easily up and running in any machine regardless the running OS with the help of Docker.
Before proceeding to the next steps please make sure that you have installed on your machine:
git clone https://github.com/aixm/browser.git
In the aixm-server directory:
make create
In the aixm-client directory:
make create
In the browser directory:
docker compose up -d --force-recreate --build
In the aixm-server directory:
make install
In case a new version of the tool is available you can update via the following steps:
In the browser directory:
git pull --rebase origin master
In the browser directory:
docker compose down
In the aixm-server directory:
make create
In the aixm-client directory:
make create
In the browser directory:
docker compose up -d --force-recreate --build
In the aixm-server directory:
make update
If you want to do backup database data with day - week - month rotation, you should add the following job to cron on the host:
0 3 * * * docker exec -it aixm-postgres /usr/bin/backup.sh aixm -U aixm
Backups will be rotated and stored inside database container in the
/tmp/data/backups
folder which is mounted to host in docker compose file.
The project is divided in two parts: Server and Client.
The server is the backend where the uploading and processing of the datasets happens. The api is implemented with the Laravel framework.
The client is the frontend where the datasets are visualized. The interface is implemented with the Angular framework.
In order to run the project locally on your machine for development and debug reasons you need to start the server and the client separately.
In the aixm-server directory:
make up
make install
In the aixm-client directory:
npm install
ng serve
If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.
Linting is a crucial aspect of software development, ensuring code quality, consistency, and reliability. In the world of Angular, ESLint has become the go-to tool for enforcing coding standards and catching potential errors.
Before pushing source code to the main branch, please do the following in the aixm-client directory:
npm run lint
or
npm run lint:fix
The project does not use any special library except Laravel & Angular build in libraries. To keep them up to date please follow this guides:
- Repository: https://github.com/aixm/browser
- AIXM: http://aixm.aero/
See LICENSE