This repository holds the project for the course Advanced Techniques and Tools for Software Development (ATTSD) Course of Data Science in the University of Florence.
This project resembles a skeleton of a contact managing application that can store, delete, update and search contacts from a storage or equivalent. The application is intended to be kept simple because the focus of the project was the usage of the techniques learned during the course, such as TDD, Continuous Integration, GIT, Docker, Mutation Testing and more.
- Maven (version 3.8.2 used during development)
- Docker (version 20.10.10 used during development)
- Java (version 8 or higher)
- Clone the Repository.
git clone https://github.com/LorenzoPratesi/contacts-manager
- Set Project Main Directory.
cd contacts-manager/org.unifi.lorenzopratesi.app.contacts
- Build the Project - Compile code, Unit, Integration and End To End tests
mvn clean verify
or With Also JaCoCo and Pit Report
mvn clean verify -Pjacoco,mutation-testing
If you want to build by yourself the application, you have to do the following steps:
- Clone the Repository.
git clone https://github.com/LorenzoPratesi/contacts-manager
- Set Project Main Directory.
cd contacts-manager/org.unifi.lorenzopratesi.app.contacts
- Run a maven build, with clean and package goals
mvn clean package
Before launching the application, you have to launch a MongoDB instance. You can launch the docker container using
docker run -p 27017:27017 --rm mongo:4.4.3
Set Project Main Directory.
cd contacts-manager/org.unifi.lorenzopratesi.app.contacts
After generating the jar by executing the maven phase package (i.e mvn clean package
), the application can be launched executing the jar file
java -jar target/contacts-0.0.1-SNAPSHOT-jar-with-dependencies.jar