Hey there! 👋
Welcome to the Smart Home project developed by Group 3 of the Switch 2023/2024. This project is built using Java and Maven, and follows the principles of Domain-Driven Design (DDD). We have implemented a comprehensive testing strategy that includes unit, integration, and isolation tests. We use JUnit 5 for our testing framework, Mockito for creating mocks in our tests, and PITest for mutation testing.
To install and run this project locally, you need to follow these steps:
- Ensure you have Java and Maven installed on your machine.
- Clone this repository using the command:
git clone https://github.com/Departamento-de-Engenharia-Informatica/2023-2024-switch-dev-project-assignment-grupo-3.git
- Navigate to the project directory:
cd your-project-directory
- Build the project using Maven:
mvn clean install
- Run the project:
java -jar target/your-jar-file.jar
This project is a simulation of a smart home system. You can add rooms, devices, sensors and actuators to your home, and control them through the provided interfaces. The system is designed using DDD principles, which means the business logic is encapsulated within the domain, and the system is designed around the domain model.
To execute the tests for this project, use the command: mvn test
.
Our testing strategy is comprehensive and tailored to each component's needs.
We have applied unit tests to value objects, ensuring their independent functionality.
The root aggregates and other classes are tested through isolation tests, verifying their ability to operate independently.
Lastly, we have employed integration tests on our controllers, ensuring the correct interaction between the domain classes.
For support or bug reporting, please submit an issue on this repository.
Here are some helpful resources about the project:
- Introduction
- Glossary
- Project Diagrams Sprint 3
- Project Diagrams Sprint 4
- Style Guide
- Daily Scrum Index
Feel free to explore our project's wiki for detailed information and resources.