Skip to content

Update development standards (Frontend) #29

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Nov 27, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions platform/frontend/angular.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Angular

## Useful Libraries

* [Angular CDK](https://material.angular.io/cdk/categories)
* [ng2-file-upload](https://github.com/valor-software/ng2-file-upload)
* [ngx-translate](https://github.com/ngx-translate/core)
* [ngx-gallery](https://github.com/murhafsousli/ngx-gallery)
* [ngx-device-detector](https://koderlabs.github.io/ngx-device-detector/)

## State management

* [NgRx](https://ngrx.io/)
* [NGXS](https://www.ngxs.io/)
* [Akita](https://github.com/datorama/akita)
35 changes: 12 additions & 23 deletions platform/frontend/frontend.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,12 @@
* [Node.js](https://nodejs.org/en) v12.x.x (LTS)
* [npm](https://www.npmjs.com) package manager for Node.js _(deprecated; using in support projects)_
* [yarn](https://yarnpkg.com/) package manager for Node.js
* [bower](http://bower.io) package manager for web development _(deprecated; using in support projects)_
* [AngularJS](https://angularjs.org) 1.7.х framework _(deprecated; using in support projects)_
* [Angular](https://angular.io/) 8.0.0 as main framework
* [Angular](https://angular.io/) for complex Enterprise solutions
* [Vue.js](https://vuejs.org/) for simple-to-moderate complexity web sites
* [Pug](https://pugjs.org) - HTML template engine
* [Stylus](http://stylus-lang.com/) - CSS preprocessor
* [Gulp](http://gulpjs.com) - streaming build system _(deprecated; using in support projects)_
* [Webpack](https://webpack.js.org/) 4.x.x - JavaScript module bundler
* [Babel](https://babeljs.io/) - JavaScript compiler
* [TypeScript](https://www.typescriptlang.org/) 3.x.x - optional types, classes, and modules to JavaScript
* [TypeScript](https://www.typescriptlang.org/) 4.x.x - optional types, classes, and modules to JavaScript


## Development OS
Expand All @@ -36,32 +33,31 @@ We don’t recommend use Windows as OS for development machines. We use latest M

## IDE

* [WebStorm](https://www.jetbrains.com/webstorm) (not required)
* [VSCode](https://code.visualstudio.com/)
* [WebStorm](https://www.jetbrains.com/webstorm)


## Coding Conventions

* [JavaScript Style Guide](https://github.com/airbnb/javascript)
* [Angular 1.x style guide](https://github.com/rwwagner90/angular-styleguide-es6) (good [article](https://www.sitepoint.com/writing-angularjs-apps-using-es6/))
* [Angular 8.x style guide](https://angular.io/docs/ts/latest/guide/style-guide.html)
* [Angular style guide](https://angular.io/guide/styleguide)
* [CSS and SASS style guide](https://github.com/airbnb/css)
* [Stylus style guide](https://github.com/skyout/stylus-styleguide)


## Unit testing

Use these frameworks:
* [Karma](http://karma-runner.github.io)
* [Jasmine](http://jasmine.github.io)
* [Jest](https://jestjs.io/)


## Preferred Libraries

* [EventEmitter](https://github.com/Olical/EventEmitter)
* [RxJS](https://github.com/ReactiveX/rxjs)
* [Underscore](http://underscorejs.org) / [lodash](https://lodash.com)
* [ui-router](https://ui-router.github.io/ng1/) 1.x - routing in AngularJS
* [ng-file-upload](https://github.com/danialfarid/ng-file-upload) 12.x.x - Angular directive to upload files
* [ngx-translate](http://www.ngx-translate.com) - The internationalization (i18n) library for Angular
* [date-fns](https://date-fns.org/)
* [normalize.css](https://github.com/necolas/normalize.css/)
* [For Angular](./angular.md)
* [For Vue.js](./vuejs.md)


## Best Practices
Expand All @@ -80,13 +76,8 @@ Use these frameworks:

__Web sites that we develop should be *responsive and adaptive* by default.__

#### Screen sizes:
* Desktop min size: 1024x768
* Mobile min size: 320x480

#### We support these browsers:
Desktop:
* Internet Explorer 11
* Edge - last 2 major versions
* Firefox - last 2 major versions, ESR
* Chrome - last 2 major versions
Expand All @@ -107,7 +98,6 @@ _This section is not finished yet._

* Properly setup `robots.txt` file. See [robotstxt.org](http://www.robotstxt.org)
* Generate `sitemap.xml` file. See [sitemaps.org](https://www.sitemaps.org)
* Use [prerender.io](https://prerender.io)
* Use tags: `h1...h6`, `p`, `meta`, `title` etc.


Expand All @@ -129,6 +119,5 @@ Firebase:

* [Frontend Dev Bookmarks](https://github.com/dypsilon/frontend-dev-bookmarks) - a _LOT_ of useful links
* [Material Design Icons](https://material.io/resources/icons)
* [AngularJS API Reference](https://docs.angularjs.org/api)
* [W3C](http://w3.org)
* [The Twelve-Factor App](http://12factor.net/)
7 changes: 7 additions & 0 deletions platform/frontend/vuejs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Vue.js

* [Vue CLI](https://cli.vuejs.org/)
* [Vue Router](https://router.vuejs.org/)
* [Vuex](https://vuex.vuejs.org/)
* [Vue.js SSR (Server-Side Rendering)](https://ssr.vuejs.org/)
* [vue-devtools](https://github.com/vuejs/vue-devtools)