Documentation of UnifiedPush Server's modules

Documentation of UnifiedPush Server's modules

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?

Re: [aerogear-dev] Documentation of UnifiedPush Server's modules

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/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

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?