Simple training app created with DDD.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Knowledge of Java 8, Spring, Lombok.
You can use this maven command or let your IDE do the job.
mvn clean install
Java 8, Lombok, Spring Boot, Spring Data, JPA/Hibernate, Maven, Junit 5, log4j 2.
This is a training DDD web app created in free time. Based on classic ToDo app, but not entirely - has few more features. Creating it I tried to focus on software architecture, not functionality.
- User can register and create an Acount:
- His country name will be validated by outside REST api
- After registration he will be send an email
- User can:
- Add an new ActivityList
- Add an new Activity to ActivityList
- Start an Activity
- Finish an Activity:
- A certain amount of XP will calculated and added to his User account for finishing new Activity
- An email will be send to him after finishing an Activity
- He can search for NearbyQuesters - people who are close to him
- They can be searched by different algorithims, right now it is based on longitude and latitude
- Country name based on longitude and latitude is provided by external REST api
- They can be searched by different algorithims, right now it is based on longitude and latitude
- ActivitiesList, Activities and User are persistent. NearbyQuesters are calculated when it is needed.
Package
ddd
|
|-> annotaions
|-> domain
|-> events
|-> validation
Contains common components used in application.
Package
todo
|
|-> activities
|-> mails
|-> registering
Is the heart of the api. Packages inside it communicate between each other only by Spring events (they do it mainly to order sending mails).
Use:
mvn test
- Maven - Dependency Management
Lol why would you?
Git obviously
- ME - Initial work - CountZero
- Hat tip to anyone who's code was used
- Bottega ddd-leaven-v2