Source Code Organization
Fullstack code consists of a layered and modular
Layers
packages
: The base packages required for project.packages-modules
: The entry point to core application based feature. An extended features to thepackages
.- It may have dependencies of
packages
- It wont' have any dependency of any of other modules within
packages-modules
except if it is acore
package.
- It may have dependencies of
servers
: The entry point to server app for remote development.- It has dependencies of
packages-modules
's packages and/orpackages
- It has dependencies of
portable-devices
: The entry point to native apps like mobile and deskop.- It has dependencies of
packages-modules
's packages and/orpackages
.
- It has dependencies of
Target Environments
The module
is partitioned into the following sub packages:
platform
: Defines service injection support and the base services for the Project that are shared accross layerscore
: Source code that only requires basic JavaScript APIs and run in all the other target environmentsclent
: Source code that only requires basic Client APIs such asredux
,redux-epic
,apollo-client
,hooks
without requiring Web APIs likereact
,dom
etc.browser
: Source code that requires Web APIs, eg. DOM, React- may have dependencies on:
core
,client
- may have dependencies on:
server
: Source code that requires Node.JS APIs- may have dependencies on:
core
- may have dependencies on:
mobile
: Source code the requires React Nativeelectron
: Source code that requires the Electron renderer-process APIs- may have dependencies on:
core
,browser
,client
- may have dependencies on:
electron-main
: Source code that requires the Electron main-process APIs- may have dependencies on:
core
,node
- may have dependencies on:
browser-extension
: Source code that requires the Chrome Extensionextension
: Source code of extension
You can add additional target environments
based on the specific third party library
ant-ui
: Source code that requires the antd componentschakra-ui
: Source code that requires the Chakra-UI components
Build and Run
We use lerna to compile the packages. Read more about it as it is needed to run the project.