This software offers a representation of a parking software. It was done under a course from the Software Engineering program of Laval University.
- Buy parking permits and access rights
- Validate access and parking permissions and give infractions
- Manage finances and budgets
- Log parking usage
- Other small features
The main goal of this project was to develop a Clean architecture with a rich domain (aka DDD). Many design patterns were used in order to reach such a rich level of DDD, hence the complexity of the classes and their interactions.
For a more advanced DDD approach, see the refactor done in parking2
.
Application
mvn clean install exec:java
Unit tests
mvn test
Integration tests
mvn test -P integration-tests
API tests
These tests use Newman, the Postman API.
newman run SPAMD-UL.postman_collection.json
finance
: The whole transaction managing system is not well designed. There should be a clear separation between aTransaction
(an amount being transfered between accounts) and aTransactionLog
(a record of the transaction made, with more or less infos than the linked transaction). The abstractions are also wrong.