Skip to content

Char2sGu/reply

Folders and files

NameName
Last commit message
Last commit date

Latest commit

03da8d5 · Dec 27, 2023
Oct 20, 2022
Mar 19, 2023
Aug 18, 2023
Nov 22, 2022
Jul 12, 2023
Jul 5, 2023
Oct 20, 2022
Oct 20, 2022
Nov 22, 2022
Feb 14, 2023
Jul 4, 2023
Aug 8, 2023
Dec 27, 2023
Jul 8, 2023

Repository files navigation

Reply

The Angular implementation of Reply designed by Google.

Reply is an email app that uses Material Design components and Material Theming to create an on-brand communication experience.

Reply Cover

Features

Local Serving

The application depends on multiple internal libraries. Make sure that the libraries have been built before starting the application.

npm i
npm run build-libs
npm start

Architecture

The architecture of this project follows most of the reasonable principles of the Angular Coding Style Guide, but also follows my own empirical principles.

  • All the paths mentioned below are relative to projects/reply/src/app
  • The term component below refers to anything that is declarable in an Angular Module such as components, directives, and pipes.

Special Directories

  • /common - framework/business independent logic that can be reused in any applications
  • /core - components that is used in AppModule and injectables that is shared by the entire application
  • /standalone - shared standalone components which can be either business-dependent of business-independent.
  • /data - derived from /core where only injectables relevant to data are allowed

Feature Modules

A feature module refers to a lazy-loading module with routes.

  • Feature modules must be flattened at the root of the application
  • Un-reusable components must be flattened at the root of the feature module
  • Injectables and reusable components must be put under a sub-directory named core
  • The name of components and injectables of a feature module must share the same prefix as the module.

Widget Modules

A widget module refers to a module that provides business-independent additional reusable features.

  • Widget modules must be flattened to the root of the application
  • The internal architecture of a widget module can be flexible
  • A widget module should be extracted into a library if possible once it is stable