We use Maven as our build descriptor and follow the Maven conventions for a multi-module project. Each module is organized as follows:
pom.xml | Project descriptor for the module |
src | Code or data that gets used to build, or to provide information used by, the application |
src/main | The actual code or data that gets used for the application |
src/test | Test-code, for testing the main, application code / data |
src/assembly | Configuration used by the maven assembly-plugin to build / assemble artifacts from items that reside in src |
main/resources test/resources | Data or properties used at build-time, test-time, or run-time. E.g., for configuring access to databases or other external resources |
main/java test/java | Source-code for Java classes |
Directory | Description |
---|
The top-level maven file, pom.xml, refers to Schedulers modules:
- core
- web
- subject-decrypter
- populate-fake-subjects
- update-user-salt
- data
core | Back-end server code | |
core/src/main/.../java/core | Classes used throughout the code, such as Exceptions and globals | |
core/src/main.../java/util | Helper / utility classes used throughout the code, e.g., for date-manipulation or encryption | |
core/src/main.../java/dto | Data Transfer Objects used to share 'just enough' data about objects | |
core/src/main/.../java/entity | Classes that correspond to database tables | |
core/src/main/.../java/persistence | Data Access Objects (DAO's) used to interact with the database | |
core/src/main/.../java/security | Classes to manage security concerns such roles and sessions | |
core/src/main/.../java/web | API for RESTful Web Services (JAX-RS), i.e., the client/browser-facing edge of the back-end | |
core/src/main/.../java/service | The business logic layer. Contains classes for coordinating / performing back-end activities on behalf of the client | |
core/src/test/.../java/XYZ | Unit-tests for the corresponding core/src//.../java/XYZ | |
web web/src/main/webapp web/src/main/test/jasmine | Front-end code for the web-application HTML web-pages, javascript, CSS Front end Unit-tests for corresponding web/src/main/webapp/XYZ | |
subject-decrypter | Standalone application to decrypt the Subject table, and load it into an "in memory" table for giving trusted users clear-text access to subject data for business reporting | |
populate-fake-subjects | Standalone application to supply fake Subjects in data that had 'real' Subjects excised in order to eliminate PHI | |
update-user-salt | Standalone application to convert existing DB user salt fields to new MIME flavored salts | |
data | Latest changes to data structures or values, along with demo and baseline versions of the database | |
Directory | Description |
---|