diff --git a/README.md b/README.md
index 169b22b..5cb53f4 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,238 @@
# uoa-repository-manager-service (Provide backend)
+## Introduction
+## Architecture
+
+
+
+
+
+
+## Building
+The backend is a [Maven](https://maven.apache.org/index.html) project. It has been tested using Java 8.
+
+
+#### Manual Build Instructions
+
+###### Requirements:
+- Java 8
+- Apache Maven 3+
+
+###### Build Instructions:
+1. Clone the repository and move inside the directory
+
`git clone https://code-repo.d4science.org/MaDgIK/uoa-repository-manager-service.git && cd uoa-repository-manager-service`
+2. Provide all not-set or redacted configurations, inside the **src/main/resources/application.yml** file.
+3. Build Maven project
+
`mvn clean package`
+
Produces the file "./target/**uoa-repository-manager-service.jar**" which can be run with: - Run the app with: `java -jar ./target/uoa-repository-manager-service.jar`
+
+
+
+#### Build using Docker
+The repository contains a **Dockerfile** which can be used to build an image containing the compiled project.
+
+###### Requirements:
+- Docker
+
+###### Build Instructions:
+1. Clone the repository and move inside the directory
+
`git clone https://code-repo.d4science.org/MaDgIK/uoa-repository-manager-service.git && cd uoa-repository-manager-service`
+2. Provide all not-set or redacted configurations, inside the **src/main/resources/application.yml** file.
+3. Build Docker image
+
`docker build . -t `
+
+
+## Deployment
+
+### Prerequisites
+* [PostgreSQL 9.5+](https://www.postgresql.org/)
+ [...]
+
+
+### Instructions
+Execute `java -jar ./target/uoa-repository-manager-service.jar`
+
+
+## Installation
+
+### Prerequisites
+* [PostgreSQL 9.5+](https://www.postgresql.org/)
+
+
+### Infrastructure Installation and Configuration
+Install all software found in the list of [Prerequisites](#Prerequisites) using the official documentation.
+
+
+#### PostgreSQL - Configuration
[...]
-## Install and run:
-- Run **git clone** and then **cd uoa-repository-manager-service**.
-- Provide all not-set or redacted configurations, inside the **src/main/resources/application.yml** file.
-- Build the app with: `mvn clean install`
-- Run the app with: `java -jar ./target/uoa-repository-manager-service.jar`
+### Installation
+No additional installation steps are needed.
+## Configuration
+
+The configuration can be set inside the **src/main/resources/application.yml** file.
+
+### Server-related configuration.
+```
+server:
+ port: 8480
+ servlet:
+ context-path: /uoa-repository-manager-service
+```
+
+### Swagger UI - related configuration
+```
+springdoc:
+ swagger-ui:
+ disable-swagger-default-url: true
+ path: /swagger-ui.html
+ displayRequestDuration: true
+ api-docs:
+ path: /api-docs
+```
+
+### Datasource -related configuration
+```
+spring:
+ jpa:
+ hibernate:
+ ddl-auto: update
+ datasource:
+ url: ${services.provide.db.url}
+ username: ${services.provide.db.username}
+ password: ${services.provide.db.password}
+ driverClassName: ${services.provide.db.driverClassName}
+```
+
+### Configurations about the provide service.
+```
+services:
+ openaireServicesBaseUrl: https://beta.services.openaire.eu
+ provide:
+ dev-machine: 88.197.53.71 # VM-71
+```
+
+#### Configuration about Authentication and authorization infrastructure (AAI).
+```
+ aai:
+ baseURL: https://aai.openaire.eu
+ oidc:
+ domain: .openaire.eu # use empty value for local, otherwise: ".openaire.eu"
+ id: XX
+ issuer: ${services.provide.aai.baseURL}/oidc/
+ redirectURL: http://localhost:${server.port}${server.servlet.context-path}/openid_connect_login
+ secret: XX
+ webURL: http://localhost:4200/join
+ registry:
+ coid: XX
+ username: XX
+ password: XX
+ production: false
+ url: ${services.provide.aai.baseURL}/registry/
+```
+
+#### [...]
+```
+ adminEmail: XX
+ analyticsURL: https://analytics.openaire.eu/addsite.php?
+ baseUrl: ${services.openaireServicesBaseUrl}/openaire
+```
+
+#### Broker's configuration
+```
+ broker:
+ api: api/
+ openaire: openaireBroker
+ port: 443
+ url: https://beta.broker.openaire.eu
+```
+
+#### Client's configuration
+```
+ clients:
+ dsm: ${services.provide.baseUrl}
+ search: ${services.openaireServicesBaseUrl}/search/v2/api
+ usageEvents: http://beta.lbs.openaire.eu:8080/ajax/summary
+ usagestats: ${services.openaireServicesBaseUrl}/usagestats
+```
+
+#### Database configuration for Provide.
+```
+ db:
+ driverClassName: org.postgresql.Driver
+ password: dnetPwd
+ url: jdbc:postgresql://${services.provide.dev-machine}:5432/repomanager
+ username: dnet
+```
+
+#### Configuration for the IS LookUp service.
+```
+ iSLookUpService:
+ url: https://dev-openaire.d4science.org:443/is/services/isLookUp
+```
+
+#### Mail-server configuration.
+```
+ mail:
+ authenticate: true
+ debug: false
+ from: XX
+ host: smtp.gmail.com
+ mode: ssl
+ password: XX
+ port: 465
+ replyTo: XX
+ username: XX
+```
+
+#### Redis's configuration
+```
+ redis:
+ host: vereniki.athenarc.gr
+ password: XX
+ port: 6379
+```
+
+#### [...]
+```
+ topic_types:
+ url: ${services.openaireServicesBaseUrl}/provision/mvc/vocabularies/dnet:topic_types.json # TODO - Check this! The requested json file does not exist in the DEV-url below)
+ usageStatisticsDiagramsBaseURL: https://beta.openaire.eu/stats3/
+ usageStatisticsNumbersBaseURL: ${services.openaireServicesBaseUrl}/usagestats/datasources/
+ usagestats:
+ adminEmail: XX
+ sushiliteEndpoint: ${services.openaireServicesBaseUrl}/usagestats/sushilite/
+ sushiliteR5Endpoint: ${services.openaireServicesBaseUrl}/usagestats_r5/sushilite/r5/
+```
+
+#### Validator - related configuration.
+```
+ validator:
+ results:
+ url: https://beta.provide.openaire.eu/compatibility/browseHistory/
+ validatorService:
+ url: http://${services.provide.dev-machine}:8080/uoa-validator-service/services/validatorWebService
+```
+
+
+
+
+
+
+## Security
+## Maintenance
+## Recovery
+## References
+
+
+
+
+
+
+---
+
### Notes for Swagger-UI:
- Access it through this url: http://localhost:8480/uoa-repository-manager-service/swagger-ui/index.html
- In order to request data from most endpoints, you have to be a "REGISTERED_USER", otherwise you will get a 403 error code.
diff --git a/pom.xml b/pom.xml
index cfa3754..8dc28ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,6 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
2.7.17
+
4.0.0