SoftwareSandbox / Fiazard

Learning project in which we try to make our sandwich ordering site better. This is the backend project, providing RESTful webservices with DropWizard.
Apache License 2.0
2 stars 10 forks source link

Properly split into modules #2

Open Sch3lp opened 9 years ago

Sch3lp commented 9 years ago

We might want separate projects/modules/... to demark domains and other logicals.

This requires some extended Gradle knowledge/learning.

Since I know Maven this is how I'd want it:

Directory Description
$root/parent Parallel parent that will contain dependencies that are going to be shared over all modules
$root/common Common domain specific stuff, util classes and the like
$root/infra Cross-cutting stuff, mostly tech-stack based, e.g. an abstract MongoDB DAO class would go here
$root/ordering @Resources and Services related to the Ordering API go here. The main users of this API are going to be actual clients that want to order a sandwich.
$root/managing @Resources and Services related to the Managing API go here. The main users of this API will be Filip from Fiantje, who'll want to offer Promotions, compose sandwiches and set prices accordingly.
$root/invoicing @Resources and Services related to the Invoicing API go here. The main users of this API will be actual clients, who want to get a proper overview of their (monthly) bill.