Skip to content

Latest commit

 

History

History
87 lines (54 loc) · 4.13 KB

README.md

File metadata and controls

87 lines (54 loc) · 4.13 KB

Ardent - ARchitecture knowleDge ExtractioN plaTform

Ardent is a tool created to extract software architecture knowledge from studies when performing a systematic literature review and infer knowledge structures such as patterns.


Disclaimer: This project is currently on its premises, bugs might occur: please open an Issue with details if you found one!

Introduction

Ardent is a research tool carried by the CRI (Centre de Recherche en Informatique) of Université Paris 1 Panthéon-Sorbonne, to help researchers performing studies on software architectures and patterns by providing an intuitive interface to store and analyze information about architectures collected throughout (systematic) literature reviews.

This work is based on the ACME ADL (Architecture Description Language) scheme to efficiently collect information. Papers are linked to architectures, architectures are linked to components, and components are linked to connectors, ports, and properties.

Following the collection of architectures and components, Ardent will allow users to identify new potential software patterns by identifying similarities between collected architectures. This part of Ardent is still a work-in-progress and not implemented yet, but feel free to propose ideas or contribute!

Installation

This section will help you start the application. Three parts are defined for each artifact: the first one about the database creation, the second one about the launch of the API, and the third one about starting the React frontend app. Some advise and information are also available at the end of this documentation to better deploy the project in production.

1. Create the database and import tables

Ardent is based on PostgreSQL. The data model of Ardent for PostgreSQL is available in this repository as db.sql.

Make sure that PostgreSQL is installed on your machine, then use pg_restore to load the database structure to PostgreSQL (replace parameters as needed in your case):

pg_restore -U postgres -d sql -h localhost -p 5432 -f db.sql

Unfortunately, authentication is needed to access the application when it will be running, and an invite token generated by an admin is required to create an account. Thus, once the database is up and running, insert into the invite_tokens table a random string that you will use as a custom invite token. Then, once your account is created, alter the users table to promote your account as an admin by switching the is_admin entry to true. In the future, a better system will be implemented to bootstrap users at the beginning.

2. Start Ardent API

  1. Go into the api folder.
  2. Make sure that Node.js is installed on your computer, then type the following:
npm install
npm install -g nodemon
npm start

The API will serve using HTTP on localhost:8080. In parallel, you can specify the usage of certs by specifying their location in api/config.js. If so, the API will also serve using HTTPS on localhost:8443.

3. Start the frontend

  1. Go into the app folder.
  2. Type the following:
npm install

npm start

The application will start on localhost:3000. If everything has been deployed with success, you should be able to start submitting papers.

Production deployment

If you want to deploy this project in production, you can create a special version for performance purposes and serve it, using the following command:

npm build
serve -s build -l 443 --ssl-cert <CRT file> --ssl-key <Key file>

Specifying certificates are optional, but if you provide certificates the app will be served using HTTPS. To handle the case where users try to connect using HTTP, you can use the third artifact in this repository named redirect to automatically redirect users on HTTPS.

To start the redirection service, type the following inside redirect:

npm install
npm start

Contact

If you have any questions, feel free to reach us at this address: nicolas.six@univ-paris1.fr!