Hello,

in terms of the structure, here is a list of the most relevant/important modules/folders:

* admin-ui: Node.js application for our UI, bundled as a JAR file
* model: contains API and JPA implementation of the "data model"
* jaxrs: contains the REST endpoints of the server, some are used as "public API endpoints" (such as the sender or device registration), and others are less or more not public, they back the UI, and are protected by keycloak
* service: Contains a "service layer", basically less or more smart API wrappers around the DAOs, which are implemented via JPA
* push/model: Contains some push specific model classes, also reused by our java client
* push/sender: most important package. Here happens the most important: Sending of the push notifications, which is implemented via JMS, and the metrics processing (also via JMS), and storing metrics to the DB layer
* servers: builds the WAR files (for our custom keycloak, and our ag-push.war file)

Besides that we have docker-compose files, and database configuration (e.g. separated DB docker files)

Also, in the appendix of our users guide there is a bit of arch. overview:
https://aerogear.org/docs/unifiedpush/ups_userguide/index/#appendix

HTH,
Matthias


On Sun, Mar 26, 2017 at 3:44 PM, Polina Koleva <polina.n.koleva@gmail.com> wrote:
Hey,
I am a masters student applying for GSOC project "HBase/Apache Kafka in
UnifiedPush Server".
I am exploring the codebase of the project so that I can understand the
whole logical structure of it and its full functionality.
I have noticed that it is divided into "modules". So I am thinking that
maybe it will be good somewhere to have a brief description of each module
and its function and maybe a diagram which module uses which. This can give
a quick start of a developer new to the project and he can easily understand
into which module to dive deeply. If you think it is a good idea, I can
start doing it. Moreover, it will help me either.
Besides, I have seen other open source projects organised in such a modular
manner.
Why have you decided to do it so modularly? And is this the practice
usually?

Sorry, if such documentation already exists and I haven't found it.

Best regards,
Polina Koleva



--
View this message in context: http://aerogear-dev.1069024.n5.nabble.com/Documentation-of-UnifiedPush-Server-s-modules-tp12921.html
Sent from the aerogear-dev mailing list archive at Nabble.com.
_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev



--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
twitter: http://twitter.com/mwessendorf