Commit 758ee1e0 authored by François Agneray's avatar François Agneray
Browse files

Update README and VERSION

parent 887ac87d
Pipeline #1631 passed with stages
in 9 minutes and 1 second
......@@ -4,92 +4,123 @@
AstroNomical Information System is a generic web tool that aims to facilitate the provision of data (Astrophysics), accessible from a database, for the scientific community.
Anis server is a software that allows you to control one or more databases related to astronomical projects and allows access to datasets via URLs.
This software allows you to control one or more databases related to astronomical projects and allows access to datasets via URLs.
This software is protected by the `CeCILL` licence (see LICENCE file at the software root).
Anis is protected by the `CeCILL` licence (see LICENCE file at the software root).
## Authors
Here is the list of people involved in the development:
* `François Agneray` : Laboratoire d'Astrophysique de Marseille (CNRS)
* `Chrystel Moreau` : Laboratoire d'Astrophysique de Marseille (CNRS)
* `Tifenn Guillas` : Laboratoire d'Astrophysique de Marseille (CNRS)
# Installation guide
## Make commandes
## Prerequisites
The `Makefile` at the root of the project provides a list of commands available to manage the application.
Before to start to install the anis-server you must make sure that you have the following commands installed on your computer:
To see the list of commands:
1. `make`
2. `docker`
3. `docker-compose`
> make
You also need an Internet connection to download packages and dependancies.
## Software dependencies: introduction
## List of commands
This application requires the following dependencies to work:
The `Makefile` at the root of the project provides a list of commands available to manage the application in a development mode.
"slim/slim": "^3.8",
"doctrine/orm": "^2.5"
"monolog/monolog": "^1.23",
"lcobucci/jwt": "^3.2",
"swiftmailer/swiftmailer": "^6.0"
To see the list of commands just open a terminal in the root of the project and type:
These dependencies are installed with software `composer.phar` and the configuration files `composer.json` and `composer.lock` available at the root of the application.
> make
## Software dependencies: installation
**Warning**: The `docker-compose.yml` and the` Makefile` commands must be used only for development or testing but no in production mode.
## Dependancies installation
To start installing dependancies, use the following command at the software root:
> make install
`Composer.phar` will automatically use the `composer.json` file to download all the dependancies and save them to the `vendor` directory at the root of the application.
The `Composer.phar` software will be downloaded and it will automatically use the `composer.json` and `composer.lock` files to download all the dependancies and save them to the `vendor` directory at the root of the application.
After that anis-server can work!
## Build Anis server software and start
## Start anis-server
Anis server has been developed to be used with docker containers. If you open the docker-compose.yml file you can see all containers needed for the "development configuration" of anis server.
Anis server has been developed to be used with docker containers. If you open the `docker-compose.yml` file you can see all containers needed for the **development or test configuration** of anis server.
`Makefile` provides a command to build an install all the containers that you need for create a fresh installation of Anis server software:
`Makefile` provides a command to build install and run all the containers that you need for a fresh installation of anis-server software:
> make up
## Metamodel database installation
**Note:** This command use `docker-compose` to work. These operations may take a few minutes as it is necessary to download docker images
If you want to list all anis stack containers running:
> docker-compose ps
And if you want to print anis stack logs:
> make logs
Anis server need a database to save the metadata information about business databases, projects and datasets availables for users. After that, anis administrator will be able to define a configuration by calling specific URLs (REST API).
## Databases installation
Create the metamodel database:
Anis server need at least two databases to work:
> make init-db
1. An admin database to store users and the list of available metamodel databases.
2. A default metamodel database to store information about business databases, projects and datasets availables.
And create the first superuser to define a configuration:
Our `Makefile` provides a command to generate these two databases:
> make email=admin@anis.fr password=admin add-superuser
> make anis-init
## Datasets for beginning to use
Our `Makefile` also provides a command to add a business database and configure datasets into the default metamodel database to beginning to test or develop the anis-server. To install the test datasets type:
> make dev-init
## Anis server is now ready to use
Open a browser and go => [http://localhost:8080/](http://localhost:8080/)
## Links
Few examples:
* `Slim` : [http://www.slimframework.com/](http://www.slimframework.com/)
* `Doctrine 2` : [https://www.doctrine-project.org/](https://www.doctrine-project.org/)
* `Swiftmailer` : [https://swiftmailer.symfony.com/](https://swiftmailer.symfony.com/)
* `Monolog` : [https://seldaek.github.io/monolog/](https://seldaek.github.io/monolog/)
* `Composer` : [https://getcomposer.org/](https://getcomposer.org/)
* `PHP-FIG` : [http://www.php-fig.org/](http://www.php-fig.org/)
* `PHP-Unit` : [http://phpunit.de/](http://phpunit.de/)
* `Docker` : [https://www.docker.com/](https://www.docker.com/)
* `GIT` : [http://git-scm.com/](http://git-scm.com/)
* `CeCILL`: [http://www.cecill.info/index.en.html](http://www.cecill.info/index.en.html)
* To list all datasets available in the default instance => [http://localhost:8080/metadata/default/dataset](http://localhost:8080/metadata/default/dataset)
* To print all data for the obs_cat dataset with column 1, 2 and 3 => [http://localhost:8080/search/default/data/obs_cat?a=1;2;3](http://localhost:8080/search/default/data/obs_cat?a=1;2;3)
* To print only 3 obs_cat data (search by id) => [http://localhost:8080/search/default/data/obs_cat?a=1;2;3&c=1::in::104600094|104600095|104600108](http://localhost:8080/search/default/data/obs_cat?a=1;2;3&c=1::in::104600094|104600095|104600108)
# More about Anis-Server
First of all, you will find the user manual at the root of the project: [MANUAL.md](MANUAL.md)
## Software directories
* `conf-dev`: Configuration files for all anis containers (mode dev)
* `conf-dev`: Configuration files used by make commands and docker-compose to work
* `public`: Web server root (index.php)
* `src`: Source code of Anis software
* `test`: Anis Unit tests `phpunit`
* `vendor`: Software dependancies repository
* `src`: Source code of Anis Server
* `test`: Anis Unit Tests `phpunit`
## Key files
* `public/index.php`: Bootstrap file for starting application (file used by an http web server like nginx or apache)
* `src/settings.php`: Anis server configuration file
* `src/routes.php`: Anis server configured routes (List of available URLs)
* `src/routes.php`: Anis server configured routes (list all availables URL)
## Technologies
You can see here just a few direct links about softwares or dependancies used by anis-team for the devlopment of anis-server:
* `Slim` : [http://www.slimframework.com/](http://www.slimframework.com/)
* `Doctrine 2` : [https://www.doctrine-project.org/](https://www.doctrine-project.org/)
* `Swiftmailer` : [https://swiftmailer.symfony.com/](https://swiftmailer.symfony.com/)
* `Monolog` : [https://seldaek.github.io/monolog/](https://seldaek.github.io/monolog/)
* `Composer` : [https://getcomposer.org/](https://getcomposer.org/)
* `PHP-FIG` : [http://www.php-fig.org/](http://www.php-fig.org/)
* `PHP-Unit` : [http://phpunit.de/](http://phpunit.de/)
* `Docker` : [https://www.docker.com/](https://www.docker.com/)
* `GIT` : [http://git-scm.com/](http://git-scm.com/)
* `CeCILL`: [http://www.cecill.info/index.en.html](http://www.cecill.info/index.en.html)
\ No newline at end of file
3.0.0
\ No newline at end of file
3.0.3
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment