All Projects → OasisDigital → Angular Enterprise Example

OasisDigital / Angular Enterprise Example

Licence: mit
Scalable / Large Angular application structure example

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Angular Enterprise Example

Altair
✨⚡️ A beautiful feature-rich GraphQL Client for all platforms.
Stars: ✭ 3,827 (+3170.94%)
Mutual labels:  graphql, ngrx
Apollo Universal Starter Kit
Apollo Universal Starter Kit is an SEO-friendly, fully-configured, modular starter application that helps developers to streamline web, server, and mobile development with cutting-edge technologies and ultimate code reuse.
Stars: ✭ 1,645 (+1305.98%)
Mutual labels:  graphql, ngrx
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 112 (-4.27%)
Mutual labels:  graphql
Graphql Nodejs Hapi Api
How to set-up a powerful API with Nodejs, GraphQL, MongoDB, Hapi, and Swagger
Stars: ✭ 116 (-0.85%)
Mutual labels:  graphql
Gitstats
An open source github contribution analyzer
Stars: ✭ 115 (-1.71%)
Mutual labels:  graphql
Nextjs Headless Wordpress
🔥 Nextjs Headless WordPress
Stars: ✭ 110 (-5.98%)
Mutual labels:  graphql
Automatic Api
A list of software that turns your database into a REST/GraphQL API
Stars: ✭ 1,583 (+1252.99%)
Mutual labels:  graphql
Kubeiql
A GraphQL interface for Kubernetes.
Stars: ✭ 112 (-4.27%)
Mutual labels:  graphql
Livepeerjs
JavaScript tools and applications that interact with Livepeer's smart contracts and peer-to-peer network
Stars: ✭ 116 (-0.85%)
Mutual labels:  graphql
Graphql Live Query
Realtime GraphQL Live Queries with JavaScript
Stars: ✭ 112 (-4.27%)
Mutual labels:  graphql
Graphql
moved to angel-dart/angel/packages/graphql
Stars: ✭ 115 (-1.71%)
Mutual labels:  graphql
Crudl Example Django
CRUDL with Django, DRF/Graphene and SQLite
Stars: ✭ 113 (-3.42%)
Mutual labels:  graphql
Knowledge
文档着重构建一个完整的「前端技术架构图谱」,方便 F2E(Front End Engineering又称FEE、F2E) 学习与进阶。
Stars: ✭ 1,620 (+1284.62%)
Mutual labels:  graphql
Graphql Markdown
The easiest way to document your GraphQL schema.
Stars: ✭ 114 (-2.56%)
Mutual labels:  graphql
Kronky
Kronky bridges the gap between Ecto and Absinthe GraphQL by listing validation messages in a mutation payload.
Stars: ✭ 112 (-4.27%)
Mutual labels:  graphql
Postgraphile
GraphQL is a new way of communicating with your server. It eliminates the problems of over- and under-fetching, incorporates strong data types, has built-in introspection, documentation and deprecation capabilities, and is implemented in many programming languages. This all leads to gloriously low-latency user experiences, better developer experiences, and much increased productivity. Because of all this, GraphQL is typically used as a replacement for (or companion to) RESTful API services.
Stars: ✭ 10,967 (+9273.5%)
Mutual labels:  graphql
Yummy Phoenix Graphql
Cooking recipe sharing app built with Phoenix, React, GraphQL and Kubernetes
Stars: ✭ 112 (-4.27%)
Mutual labels:  graphql
Graphql Metrics
Extract as much much detail as you want from GraphQL queries, served up from your Ruby app and the graphql gem.
Stars: ✭ 113 (-3.42%)
Mutual labels:  graphql
Graphql Codegen Hasura
code-generator plugins for hasura/apollo-gql/typescript development
Stars: ✭ 113 (-3.42%)
Mutual labels:  graphql
Flask Graphene Sqlalchemy
A demo project for Flask + GraphQL (With Graphene & SQLAlchemy)
Stars: ✭ 117 (+0%)
Mutual labels:  graphql

Angular Enterprise Example

Build Status

This is a work in progress. It is likely to have many changes over time, particularly as all of the tools improve.

Compodoc documentation is available at:

https://oasisdigital.github.io/angular-enterprise-example/

Goals

  1. Show an example of a sprawling set of related Angular applications, divided into various libraries.
  2. Manage complexity, size, and scale.
  3. Provide a way to "bloat up" with numerous randomly generated additional modules/features/components, up to the size of the largest Angular applications.
  4. Initially use Angular CLI and Nx.
  5. Later, Bazel.

Contents so far

  • 3 applications, using overlapping sets of...
  • 10 libraries
  • dependencies between the libraries
  • A Node server, which serves REST/JSON, SSE, and GraphQL

Technologies used

  • Angular 5
  • Angular CLI
  • Nx
  • NgRx/Store, Store addons
  • RxJS
  • Lodash, Moment
  • REST
  • SSE (Server Sent Events)
  • GraphQL

Example application(s)

This set of example applications/features use Nx to wire up inter-project dependencies during development. Following the Nx convention, they are divided into "apps" and "libs".

There is a many-to-many relationship between applications and modules, and modules can use other modules.

In addition, there is a "servers" directory intended to contain one or more server-side example code bases that support the Angular example. These are not managed using Nx, which is Angular specific. However, in a sprawling set of related servers and libraries, Lerna could be used too much the same effect.

The example applications are not very complex - certainly not complex enough to warrant the amount of complexity used to build it. Real application of this modest complexity could easily be written as a single project (each).

Still, the example applications reuse blocks of functionality, so they show the value of this multi-package approach.

There are three application to run:

  • Admin - bundles 5 feature modules
  • Agent - bundles 2 feature module
  • Portal - bundles 1 feature module

To understand how they are cross wired, look at the tsconfig.json file for each.

Two of the modules use ngrx/store for state management, With appropriate lazy loading of feature modules.

Running

In one window:

yarn
yarn start
# add --app=agent or --app=portal if desired

In another window:

cd servers/node
yarn
yarn start

Contact us

Main author: Kyle Cordes

Much help from the team at: Oasis Digital

... who teach Angular Boot Camp

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].