We use Maven as our build descriptor and follow the Maven conventions for a multi-module project.  Each module is organized as follows:

pom.xmlProject descriptor for the module
srcCode 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/testTest-code, for testing the main, application code / data
src/assemblyConfiguration 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/coreClasses used throughout the code, such as Exceptions and globals 
core/src/main.../java/utilHelper / utility classes used throughout the code, e.g., for date-manipulation or encryption
core/src/main.../java/dtoData Transfer Objects used to share 'just enough' data about objects
core/src/main/.../java/entityClasses that correspond to database tables
core/src/main/.../java/persistenceData Access Objects (DAO's) used to interact with the database
core/src/main/.../java/securityClasses to manage security concerns such roles and sessions
core/src/main/.../java/webAPI for RESTful Web Services (JAX-RS), i.e., the client/browser-facing edge of the back-end
core/src/main/.../java/serviceThe business logic layer. Contains classes for coordinating / performing back-end activities on behalf of the client
core/src/test/.../java/XYZUnit-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-saltStandalone 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


  • No labels