Skip to content
This repository has been archived by the owner on Feb 4, 2022. It is now read-only.
/ SPAMDUL Public archive

🅿️ Parking system in DDD, Clean architecture and aggregates

Notifications You must be signed in to change notification settings

vigenere23/SPAMDUL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build spamdul-logo

SPAMDUL - Rich DDD parking system

This software offers a representation of a parking software. It was done under a course from the Software Engineering program of Laval University.

Features

  • Buy parking permits and access rights
  • Validate access and parking permissions and give infractions
  • Manage finances and budgets
  • Log parking usage
  • Other small features

Developpement

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. ⚠️ This refactor is incomplete, but was made in a way that does not prevent the main system from working correctly. The tests are still missing and some integrations are not yet done (like the permit delivery or the access logging). The overall exercice what really oriented toward a newer and richer architecture, since the features and their workings have already been proven.

Running

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

Known caveats

  • finance : The whole transaction managing system is not well designed. There should be a clear separation between a Transaction (an amount being transfered between accounts) and a TransactionLog (a record of the transaction made, with more or less infos than the linked transaction). The abstractions are also wrong.

About

🅿️ Parking system in DDD, Clean architecture and aggregates

Resources

Stars

Watchers

Forks

Languages