├── .github └── FUNDING.yml ├── src ├── app │ ├── app-shell │ │ ├── app-shell.component.css │ │ ├── app-shell.component.html │ │ ├── app-shell.component.ts │ │ └── app-shell.component.spec.ts │ ├── shared │ │ ├── components │ │ │ ├── navbar │ │ │ │ ├── navbar.scss │ │ │ │ ├── navbar.html │ │ │ │ └── navbar.component.ts │ │ │ ├── footer │ │ │ │ ├── footer.html │ │ │ │ ├── footer.component.ts │ │ │ │ └── footer.scss │ │ │ ├── page-header │ │ │ │ ├── page-header.html │ │ │ │ └── page-header.component.ts │ │ │ └── components.ts │ │ └── shared.module.ts │ ├── app.component.html │ ├── pages │ │ ├── 404 │ │ │ └── not-found.component.ts │ │ ├── sw │ │ │ ├── sw.html │ │ │ ├── sw.scss │ │ │ └── sw.component.ts │ │ ├── home │ │ │ ├── home.html │ │ │ ├── home.scss │ │ │ └── home.component.ts │ │ ├── lazy │ │ │ ├── lazy.scss │ │ │ ├── lazy.routes.ts │ │ │ ├── actions │ │ │ │ └── page-num.actions.ts │ │ │ ├── reducers │ │ │ │ ├── page-num.reducers.ts │ │ │ │ └── index.ts │ │ │ ├── lazy.module.ts │ │ │ ├── lazy.html │ │ │ └── lazy.component.ts │ │ ├── profile │ │ │ └── profile.scss │ │ └── components.ts │ ├── core │ │ ├── services │ │ │ ├── auth-guard.service.ts │ │ │ ├── services.ts │ │ │ ├── example.service.ts │ │ │ ├── github.service.ts │ │ │ └── auth.service.ts │ │ ├── actions │ │ │ └── hello-example.actions.ts │ │ ├── module-import-guard.ts │ │ ├── core.module.ts │ │ └── reducers │ │ │ └── hello-example.reducers.ts │ ├── app.server.module.ts │ ├── app.component.scss │ ├── app.component.ts │ ├── app-routing.module.ts │ ├── app.module.ts │ └── reducers │ │ └── index.ts ├── favicon.png ├── assets │ ├── giphy.gif │ ├── favicon.png │ ├── icons │ │ ├── icon-72x72.png │ │ ├── icon-96x96.png │ │ ├── icon-128x128.png │ │ ├── icon-144x144.png │ │ ├── icon-152x152.png │ │ ├── icon-192x192.png │ │ ├── icon-384x384.png │ │ └── icon-512x512.png │ └── ring.svg ├── browserconfig.xml ├── tslint.json ├── manifest.webmanifest ├── environments │ ├── environment.prod.ts │ ├── environment.ts │ └── environment.hmr.ts ├── index.html ├── theme │ └── _theme.scss ├── main.server.ts ├── hmr.ts ├── test.ts ├── styles.scss ├── main.ts ├── _variables.scss └── polyfills.ts ├── .dockerignore ├── .snyk ├── static.paths.ts ├── servers ├── node-koa-js │ ├── nodemon.json │ ├── jshintignore │ ├── src │ │ ├── routes │ │ │ ├── controllers │ │ │ │ ├── keepAlive.js │ │ │ │ ├── secret.js │ │ │ │ ├── index.js │ │ │ │ └── auth.js │ │ │ ├── apis.js │ │ │ ├── keepAlive-router.js │ │ │ ├── secret-router.js │ │ │ ├── auth-router.js │ │ │ └── index.js │ │ ├── utils │ │ │ ├── errors.js │ │ │ └── jwt.js │ │ ├── middlewares │ │ │ ├── auth-required.js │ │ │ └── jwt.js │ │ ├── db.json │ │ ├── db.js │ │ ├── app.js │ │ ├── bin │ │ │ └── www │ │ └── config.js │ ├── pm2.json │ ├── .env │ ├── .env_prod │ └── package.json ├── node-express-js │ ├── nodemon.json │ ├── .jshintignore │ ├── .editorconfig │ ├── src │ │ ├── db.json │ │ ├── routes │ │ │ ├── apis.js │ │ │ └── controllers │ │ │ │ ├── keepalive.js │ │ │ │ └── secret.js │ │ ├── passport.js │ │ ├── db.js │ │ └── config.js │ ├── pm2.json │ ├── .env │ ├── .env_prod │ ├── package.json │ └── bin │ │ └── www └── node-express-ts │ ├── nodemon.json │ ├── .editorconfig │ ├── tsconfig.json │ ├── .env │ ├── .env_prod │ ├── src │ ├── routes │ │ ├── apis.ts │ │ └── controllers │ │ │ ├── keepalive.ts │ │ │ └── secret.ts │ ├── passport.ts │ ├── db.ts │ ├── util.ts │ └── server.ts │ ├── tslint.json │ └── package.json ├── proxy.conf.json ├── .prettierrc.json ├── tsconfig.app.json ├── e2e ├── protractor-ci.conf.js ├── src │ ├── app.po.ts │ └── app.e2e-spec.ts ├── tsconfig.json └── protractor.conf.js ├── tsconfig.spec.json ├── tsconfig.server.json ├── .editorconfig ├── travisci ├── install.sh ├── after_success.sh ├── script.sh ├── before_install.sh └── before_script.sh ├── browserslist ├── tsconfig.json ├── .codeclimate.yml ├── .prettierignore ├── CHANGELOG.md ├── Dockerfile ├── LICENSE ├── ngsw-config.json ├── .gitignore ├── webpack.server.config.js ├── tslint.json ├── .sass-lint.yml ├── .travis.yml ├── .circleci └── config.yml ├── prerender.ts ├── server.ts └── karma.conf.js /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [Ks89] 2 | -------------------------------------------------------------------------------- /src/app/app-shell/app-shell.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .git 3 | dist/ 4 | -------------------------------------------------------------------------------- /.snyk: -------------------------------------------------------------------------------- 1 | version: v1.5.2 2 | ignore: {} 3 | patch: {} 4 | -------------------------------------------------------------------------------- /static.paths.ts: -------------------------------------------------------------------------------- 1 | export const ROUTES = ['/', '/lazy']; 2 | -------------------------------------------------------------------------------- /src/app/app-shell/app-shell.component.html: -------------------------------------------------------------------------------- 1 |
2 | app-shell works! 3 |
4 | -------------------------------------------------------------------------------- /servers/node-koa-js/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "verbose": true, 3 | "ignore": ["*.log"] 4 | } 5 | -------------------------------------------------------------------------------- /src/app/shared/components/navbar/navbar.scss: -------------------------------------------------------------------------------- 1 | .clickable { 2 | cursor: pointer; 3 | } 4 | -------------------------------------------------------------------------------- /src/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/favicon.png -------------------------------------------------------------------------------- /servers/node-express-js/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "verbose": true, 3 | "ignore": ["*.log"] 4 | } 5 | -------------------------------------------------------------------------------- /src/assets/giphy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/giphy.gif -------------------------------------------------------------------------------- /servers/node-express-ts/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "verbose": true, 3 | "ignore": ["*.log", "**/dist"] 4 | } 5 | -------------------------------------------------------------------------------- /src/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/favicon.png -------------------------------------------------------------------------------- /servers/node-express-js/.jshintignore: -------------------------------------------------------------------------------- 1 | bin 2 | docs 3 | node_modules 4 | public 5 | spec 6 | coverage 7 | .nyc_output 8 | -------------------------------------------------------------------------------- /servers/node-koa-js/jshintignore: -------------------------------------------------------------------------------- 1 | src/bin 2 | docs 3 | node_modules 4 | public 5 | spec 6 | coverage 7 | .nyc_output 8 | -------------------------------------------------------------------------------- /src/assets/icons/icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/icons/icon-72x72.png -------------------------------------------------------------------------------- /src/assets/icons/icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/icons/icon-96x96.png -------------------------------------------------------------------------------- /src/assets/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/icons/icon-128x128.png -------------------------------------------------------------------------------- /src/assets/icons/icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/icons/icon-144x144.png -------------------------------------------------------------------------------- /src/assets/icons/icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/icons/icon-152x152.png -------------------------------------------------------------------------------- /src/assets/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/icons/icon-192x192.png -------------------------------------------------------------------------------- /src/assets/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/icons/icon-384x384.png -------------------------------------------------------------------------------- /src/assets/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ks89/angular-cli-skeleton/HEAD/src/assets/icons/icon-512x512.png -------------------------------------------------------------------------------- /proxy.conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "/api": { 3 | "target": "http://localhost:3000", 4 | "secure": false, 5 | "logLevel": "debug" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /servers/node-koa-js/src/routes/controllers/keepAlive.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | async keepAlive(ctx) { 5 | ctx.body = { message: 'Koa is up!' }; 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": true, 3 | "printWidth": 155, 4 | "semi": true, 5 | "singleQuote": true, 6 | "tabWidth": 2, 7 | "trailingComma": "none", 8 | "useTabs": false 9 | } 10 | -------------------------------------------------------------------------------- /servers/node-koa-js/src/routes/controllers/secret.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | async getSecret(ctx) { 5 | ctx.body = { message: 'This is a secret message from an authenticated rest API' }; 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts", "src/polyfills.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /e2e/protractor-ci.conf.js: -------------------------------------------------------------------------------- 1 | const config = require('./protractor.conf').config; 2 | 3 | config.capabilities = { 4 | browserName: 'chrome', 5 | chromeOptions: { 6 | args: ['--no-sandbox'] 7 | } 8 | }; 9 | 10 | exports.config = config; 11 | -------------------------------------------------------------------------------- /servers/node-koa-js/src/routes/apis.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | BASE_API_PATH: '/api', 5 | 6 | GET_KEEP_ALIVE: '/keepAlive', 7 | POST_LOGIN: '/login', 8 | GET_SECRET: '/secret', 9 | 10 | GET_LOGOUT: '/logout' 11 | }; 12 | -------------------------------------------------------------------------------- /e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getTitle() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /servers/node-koa-js/src/routes/controllers/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const secret = require('./secret'); 4 | const keepAlive = require('./keepAlive'); 5 | const auth = require('./auth'); 6 | 7 | module.exports = { 8 | secret, 9 | keepAlive, 10 | auth 11 | }; 12 | -------------------------------------------------------------------------------- /tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/spec", 5 | "types": ["jasmine", "node"] 6 | }, 7 | "files": ["src/test.ts", "src/polyfills.ts"], 8 | "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/app/shared/components/footer/footer.html: -------------------------------------------------------------------------------- 1 |In this page I'm testing service workers :)
5 | 6 |Response from github.com/users/Ks89:
10 |Now try to shut down your internet connection, navigate to the homepage and go back here.
11 |Can you see the same data also offline? It's magical!!!! :)
12 | {{githubUser | async | json}} 13 |Login with username=admin and password=password
8 |To be able to login, you must run a server with 'npm start' in /servers folder of this project!!!
9 | 20 |Please, open your browser's console to see all features of this application!!!
13 | 14 |Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth 21 | master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh 22 | dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum 23 | iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.
24 |Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table 30 | craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl 31 | cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia 32 | yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean 33 | shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero 34 | sint qui sapiente accusamus tattooed echo park.
35 |Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth 40 | master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh 41 | dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum 42 | iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.
43 |