## Introduction

This is the MIP implementation.

## Usage

Build the project with `./build` and run it with `./run`.

## API Documentation using Swagger (Springfox)

The API documentation is available at `<BASE URL>/swagger-ui.html`. A JSON version is available at `<BASE URL>/v2/api-docs`

## TODO

* Fix bugs;
* Externalize configuration (DB parameters, security enabled/disabled, ...);
* Decide if an update on a model should affect the articles including it;
* Add author's view if needed;
* Implement delete methods if  needed;
* Implement logout;
* Add introduction page;
* Update front-end behavior when not logged in;
* Clean code (both back-end front-end);
* Sync with original Swagger description;
* Implement SoapUI tests;
* Make user tests with multiple users.

## BUGS

* When updating an article from the 'recent articles' list, bug with 'publish' state;
* When updating a model the SVG is not updated (SVG updates when opening article editor);
* Dynamic stats (users, articles, ...);
* In the profile view, we shouldn't see the '+' between firstname and lastname;
* In the profile view links to own articles and so on, are not implemented;
* Export PDF;



### Maintenance

* To keep an updated API documentation, the developers should keep synchronized both the auto-generated swagger file (from Java annotations) with the hand written one. You can follow this method to get a YAML description from the Java-annotated code:
  * Add annotations to the Java code;
  * Get JSON from `<BASE URL>/v2/api-docs`;
  * Convert JSON to YAML on [http://jsontoyaml.com](http://jsontoyaml.com).