Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. # ebet2
  2.  
  3. ## Summary
  4. Ebet2 is a web application which allows you to make safe bets to matches.
  5.  
  6. Current features:
  7. 1. Create leagues and add matches to them.
  8. 2. Make, update, delete bets to matches.
  9. 3. Automatically updates users score when match result is set.
  10.  
  11. Planned features:
  12. 1. Create user module to register users.
  13. 2. Add source to automatically download matches info from external source.
  14. 3. Try to remove spring ;)
  15. 4. Few implementations detail
  16.  
  17. ## Frameworks and libraries
  18.  
  19. * spring boot, data
  20. * vavr
  21. * lombok
  22.  
  23. Postgesql as database
  24.  
  25. ## Architecture details
  26. Application is divided into independents modules. All module are hidden by package-scope
  27. and provides facade with operation which other modules can use. When a module requires
  28. some other module, he must use his facade. If needed module take care
  29. of IO (database, endpoints) by their own, doesn't inform word e.g. which database is using.
  30.  
  31. Each domain part of modules is written in pure java. I'm trying to remove dependencies to
  32. infrastructure using e.g. repository pattern. This approach allows me to provide different
  33. implementation in configuration class. For example: during test I use 'in memory' version
  34. of all modules, without IO, so I don't have to use Mockito to mock database because I
  35. provide HashMap-based repository implementation. This is generally faster.
  36.  
  37. Big advantage of this kind of separation is possibility to take some module and turn them into
  38. micro-service (I heard that it's fashionable).
  39.  
  40. **Modules:**
  41. * League
  42.  
  43. Provides operation to create, delete etc. operation on leagues and matches.
  44.  
  45. * Bet
  46.  
  47. Provides possibilities to make, update etc. bets to matches.
  48.  
  49. * Results
  50.  
  51. Handle with calculating users score in each league.
  52.  
  53. ## Spring
  54. I try to avoid using spring 'magic'. Why? To find another way to build application then @Component and @Autowired.
  55. Currently I use spring to put together modules as beans but I believe I could use ratpack and jooq as well.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement