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.gitIn the aixm-server directory:
make createIn the aixm-client directory:
make createIn the browser directory:
docker compose up -d --force-recreate --buildIn the aixm-server directory:
make installIn case a new version of the tool is available you can update via the following steps:
In the browser directory:
git pull --rebase origin masterIn the browser directory:
docker compose downIn the aixm-server directory:
make createIn the aixm-client directory:
make createIn the browser directory:
docker compose up -d --force-recreate --buildIn the aixm-server directory:
make updateIf 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 installIn the aixm-client directory:
npm install
ng serveIf 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 lintor
npm run lint:fixThe 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