Giter Site home page Giter Site logo

nationalbankbelgium / stark Goto Github PK

View Code? Open in Web Editor NEW
53.0 9.0 23.0 144.54 MB

Modern client-side Web application framework based on Angular, Angular Material / Material Design, TypeScript, Redux, RxJS, ...

Home Page: https://stark.nbb.be

License: Other

Shell 1.40% JavaScript 2.77% TypeScript 83.15% CSS 0.15% HTML 7.91% SCSS 4.62%
angular stark webpack typescript angular-material framework front-end ui-router angular7 material

stark's Introduction

Stark: a powerful front-end framework

An Angular 6+ based front-end framework built on top of Angular... Stark features an awesome reusable build using Webpack and built-in support for state of the art front-end tech

NPM version npm Build Status Coverage Status Dependency Status devDependency Status taylor swift Commitizen friendly code style: prettier License Dependabot Status BrowserStack Status

Stark provides main building blocks for accelerating front-end development:

Stark modules are like LEGO blocks: add what you need, no less, no more. If you don't like our defaults then you may replace/override/ignore anything you fancy.

Stark's build

Stark's reusable build integrates support for:

Stark packaging

All the Stark packages are built following the Angular Package Format so the following bundles are provided:

  • FESM2015
  • FESM5
  • ESM2015
  • ESM5
  • UMD

So they can be consumed by Angular CLI, Webpack or SystemJS.

Developer guide

Stark monorepo documentation

Releases

Stark releases are available on npm: https://www.npmjs.com/settings/nationalbankbelgium/packages

Snapshot builds

Each and every day, a new snapshot of Stark is built, tested and published on npm: https://www.npmjs.com/settings/nationalbankbelgium/packages See this page for more information about the process behind this.

Contributing

Please follow our contribution guidelines.

To know how to release Stark, refer to this page.

Authors

Sebastien Dubois

Alexis Georges

Christopher Cortes

Olivia Tournois

License

This project and all associated source code is licensed under the terms of the MIT License.

Showcase and Documentation

The Stark Showcase can be found here. There, you'll also find links about:

Thank you notes :)

We'd like to thank the following companies who support the open source community with great tools and platforms.

Jetbrains

We're supported by Jetbrains and their awesome support for open source, thanks to which we are able to use the best products on the market to work on this open source project!

GitHub Actions

We're supported by GitHub Actions

BrowserStack

We're supported by BrowserStack

stark's People

Contributors

ageorges-nbb avatar carlo-nomes avatar catlabs avatar christophercr avatar dedepon avatar dependabot-preview[bot] avatar dependabot[bot] avatar dm148 avatar dsebastien avatar greenkeeper[bot] avatar lab900-senn-lambrecht avatar mallikki avatar mhenkens avatar nbb-bot avatar ncedric avatar nicanac avatar robbydelaet avatar superitman avatar tenretc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stark's Issues

starter: add setup script to starter

Should we have our setup script again in the starter?

If so, add it and update the starter/README.md. Also explain which packages are needed in global (if any)

build: document stylesheets processing

What we have for now: a bit of docs (not up to date nor correct in starter/README.md)
What we want:

  • explanation about how stylesheets are loaded
  • explanation about how stylesheets are processed/bundled... (webpack, TS, ...)
  • explanation about the differences in processing/bundling between dev and prod)

This doc can be put in the starter's readme for now

doc: update and publish training materials

Update and publish stark training and tie with the build to make sure that stark training still at least compiles and that tests are ok with each new release of stark in the making

  • review/update existing training materials
  • tie training materials with the build to make sure it always works
  • add section about e2e testing
  • add section about debugging and troubleshooting

admin: add badges

Add the following badges (edit to see links)

  • npm version
  • downloads
  • Travis
  • Coveralls (#249)
  • BrowserStack (#274)
  • Dependencies up to date

NPM version
Downloads
Coverage Status

build: add support for environments

Assuming the build specifies the environment (either default value or provided as CLI argument), make sure we have support for finding out the current environment within Stark apps (programmatically)

This requires some cleanup as we currently have (at least) these:

  • webpack options
  • Define plugin
  • src/environments/environments.ts: provides programmatic checks (if env === ...)
  • custom-typings.d.ts: probably doesn't need any typings for the env anymore!
  • HTML templating
  • polyfills.browser.ts

i18n & l10n: add support

Goals

  • find a replacement for the current angular-translate in AngularJS for Angular 4+
  • keep support for translation files
  • isolate in a dedicated module?
  • integrate stark translations (split per module? #39)
  • add translation loading support

Later:

  • add support for remote translations: #200

Possible options:

build: add a clean script

Goals:

  • be able to clean everything from stark's root (dist, node_modules, ...)
  • be able to clean each package (e.g., npm run clean from packages/stark-core)
  • be able to clean the starter
  • be able to clean the demo

build: review all build scripts

Review all scripts:

  • align with what we had before and make sure we don't lose anything
  • HMR: review webpack config and code/comments in starter/src/hmr.ts
  • make sure we have a clean script: #47

core: config

Add support for Stark configuration
Revisit stark config files

Do we keep the concept? (vs angular.json usage/extension)
Consider impact on our deploy tool.

  • design (e.g., eliminate metadata config file)?
  • load config files
  • validate config files on app startup

build: publish nightly builds

Integrate generation/publication of nightly builds.
How? npm script as we had in Stark "v1" ?
How does Angular create its nightly builds?

Publish nightly through Travis

pre-reqs:

  • needs NPM token to publish
  • should only publish to npm if
    • nightly build (should add the "next" tag)
    • slug = NationalBankBelgium/stark

steps:

  • release-publish.sh: check if TRAVIS_EVENT_TYPE == "cron". If so:
    • don't check for TRAVIS_TAG
    • publish with "next" tag

build & starter: review linting config

Review / finalize our tslint config:

  • currently we have codelyzer in our deps (from Angular starter) and two different tslint config files (root & starter/). We should clean this up and decide if we keep codelyzer or not
  • tslint config files should be present in all parts (root, stark packages, starter) (extends)
  • contents of the tslint config should be fully reviewed
  • pcss code should also have dedicated configs in each part with the same logic as for prettier & tslint)

If we drop it we'll need to adapt the project's readme

starter: clean up

Goal:

  • get rid of everything we don't need in the current starter
  • remove icons (same)
  • Create a simple home page with routes and submodules

core: add paths for core modules to stark core

Goal: make sure packages that depend on the stark core module have access to it through this trick:

    "paths": {
      "@angular/core": ["../../dist/packages/core"],
      "@angular/common": ["../../dist/packages/common"],
      "@angular/platform-browser": ["../../dist/packages/platform-browser"]
    },

build & starter: add Docker and Kubernetes support

Multiple ideas to look into:

  • docker: build & start starter in a container (npm start)
  • docker: build & start starter in a container (DEV build with an NGINX / Tomcat server)
  • docker: build & start starter in a container (PROD build with an NGINX / Tomcat server)
  • docker: build & start starter json-server in a container (npm start + npm run json-server)
  • kubernetes: build & start starter in a pod (npm start)
  • kubernetes: build & start starter json-server in a pod (npm run json-server)
  • kubernetes: build & start starter in a pod WITH json-server (npm start + npm run json-server)
  • kubernetes: build & start starter in a pod (DEV build with an NGINX / Tomcat server)
  • kubernetes: build & start starter AND json-server in a pod (DEV build with an NGINX / Tomcat server)
  • kubernetes: build & start starter in a pod (PROD build with an NGINX / Tomcat server)
  • update the readme files
  • demo: replicate all the above
  • execute unit tests in Docker/Kubernetes (need headless tests)
  • execute e2e tests in Docker/Kubernetes (need headless tests)

So for this we'll need:

  • Dockerfiles in the starter
  • k8s deployment descriptors in the starter
  • Dockerfiles in the root
  • k8s deployment descriptors in the root

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.