README.md
# CV Generator Front End
![CV Generator Front End](https://github.com/Yrkki/cv-generator-life-logo/blob/master/favicon/cv-generator-fe/favicon/favicon.ico?raw=true)
Dashboard-first multiplatform-backed edge-native zeroconf high-availability fault-tolerant reflowable-content dynamic-layout responsive hybrid-approach full-lifecycle CD-pipeline ephemeral-backend front-end decision support for the Project Server forward proxy solution of the LifeSpan℠ ecosystem
[![CV Generator](https://cv-generator-project-server.herokuapp.com/images/assets/CV%20Generator%20architecture.png)](http://cvgenerator.marinov.link/ "CV Generator")
[![Number of languages](https://img.shields.io/github/languages/count/Yrkki/cv-generator-fe.svg)](https://github.com/Yrkki/cv-generator-fe "Number of languages")
[![Top language](https://img.shields.io/github/languages/top/Yrkki/cv-generator-fe.svg)](https://github.com/Yrkki/cv-generator-fe "Top language")
[![Tech stack on StackShare](https://img.shields.io/badge/tech-stack-0690fa.svg)](https://stackshare.io/Yrkki/cv-generator "Tech stack on StackShare")
[![Angular version](https://img.shields.io/github/package-json/dependency-version/yrkki/cv-generator-fe/@angular/core)](https://github.com/Yrkki/cv-generator-fe/blob/master/package.json "Angular version")
[![Angular version](https://img.shields.io/npm/v/@angular/core.svg?label=latest)](https://www.npmjs.com/package/@angular/core "Angular version")
[![Angular next version](https://img.shields.io/npm/v/@angular/core/next.svg?label=next)](https://www.npmjs.com/package/@angular/core/v/next "Angular next version")
[![Angular node version required](https://img.shields.io/node/v/@angular/core)](https://www.npmjs.com/package/@angular/core "Angular node version required")
[![Angular CLI version](https://img.shields.io/github/package-json/dependency-version/yrkki/cv-generator-fe/dev/@angular/cli)](https://github.com/Yrkki/cv-generator-fe/blob/master/package.json "Angular CLI version")
[![Angular CLI version](https://img.shields.io/npm/v/@angular/cli.svg?label=latest)](https://www.npmjs.com/package/@angular/cli "Angular CLI version")
[![Angular CLI next version](https://img.shields.io/npm/v/@angular/cli/next.svg?label=next)](https://www.npmjs.com/package/@angular/cli/v/next "Angular CLI next version")
[![Angular CLI node version required](https://img.shields.io/node/v/@angular/cli)](https://www.npmjs.com/package/@angular/cli "Angular CLI node version required")
[![Node.js LTS version](https://img.shields.io/npm/v/node/lts.svg?label=node@lts)](https://www.npmjs.com/package/node/v/lts "Node.js LTS version")
[![Node.js version](https://img.shields.io/npm/v/node.svg?label=node)](https://www.npmjs.com/package/node "Node.js version")
[![NPM version](https://img.shields.io/npm/v/npm.svg)](https://www.npmjs.com/package/npm "NPM version")
[![GitHub actions](https://img.shields.io/gitlab/pipeline/Yrkki/cv-generator-fe/master?logo=github)](https://github.com/Yrkki/cv-generator-fe/actions "GitHub actions")
[![GitLab build status (@shields)](https://img.shields.io/gitlab/pipeline/Yrkki/cv-generator-fe/master?logo=gitlab)](https://gitlab.com/Yrkki/cv-generator-fe/-/pipelines "GitLab build status (@shields)")
[![GitLab build status](https://gitlab.com/Yrkki/cv-generator-fe/badges/master/pipeline.svg)](https://gitlab.com/Yrkki/cv-generator-fe/-/pipelines "GitLab build status")
[![Bitbucket build status](https://img.shields.io/bitbucket/pipelines/Yrkki/cv-generator-fe/master?logo=bitbucket&logoColor=0052cc)](https://bitbucket.org/Yrkki/cv-generator-fe/addon/pipelines/home "Bitbucket build status")
[![Travis build status](https://api.travis-ci.com/Yrkki/cv-generator-fe.svg?branch=master)](https://app.travis-ci.com/github/Yrkki/cv-generator-fe/builds "Travis build status")
[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/8jco03v5wvojnqu0?svg=true)](https://ci.appveyor.com/project/Yrkki/cv-generator-fe "AppVeyor build status")
[![CircleCI build status](https://img.shields.io/circleci/build/github/Yrkki/cv-generator-fe?logo=circleci&token=cecd81eb8377394888c00e076646a0801cd07712)](https://app.circleci.com/pipelines/github/Yrkki/cv-generator-fe "CircleCI build status")
[![CircleCI build status (old xp)](https://circleci.com/gh/Yrkki/cv-generator-fe.svg?style=svg)](https://circleci.com/gh/Yrkki/cv-generator-fe "CircleCI build status (old xp)")
[![Codecov code coverage status](https://codecov.io/gh/Yrkki/cv-generator-fe/branch/master/graph/badge.svg)](https://codecov.io/gh/Yrkki/cv-generator-fe?search=&trend=all%20time "Codecov code coverage status")
[![Coveralls code coverage status](https://coveralls.io/repos/github/Yrkki/cv-generator-fe/badge.svg?branch=master)](https://coveralls.io/github/Yrkki/cv-generator-fe?branch=master "Coveralls code coverage status")
[![Snyk vulnerability history db %F0%9D%8C%A1](https://img.shields.io/badge/vulnerability%20history-db%20%F0%9D%8C%A1-success?logo=snyk&logoColor=4c4a73)](https://snyk.io/vuln/npm:cv-generator-fe "Snyk vulnerability history db")
[![Snyk vulnerabilities](https://img.shields.io/snyk/vulnerabilities/github/yrkki/cv-generator-fe)](https://app.snyk.io/org/yrkki/project/fa16a2a4-b6e4-4261-9c6e-b02397763950 "Snyk vulnerabilities")
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/Yrkki/cv-generator-fe.svg?logo=lgtm)](https://lgtm.com/projects/g/Yrkki/cv-generator-fe/context:javascript "Language grade: JavaScript")
[![Total alerts](https://img.shields.io/lgtm/alerts/g/Yrkki/cv-generator-fe.svg?logo=lgtm)](https://lgtm.com/projects/g/Yrkki/cv-generator-fe/alerts/ "Total alerts")
[![Codacy code analytics](https://app.codacy.com/project/badge/Grade/7af76c2472f942b6a34eefe67507caed)](https://www.codacy.com/gh/Yrkki/cv-generator-fe?utm_source=github.com&utm_medium=referral&utm_content=Yrkki/cv-generator-fe&utm_campaign=Badge_Grade "Codacy code analytics")
[![Code Climate maintainability](https://api.codeclimate.com/v1/badges/f65c044a3966e1bccda6/maintainability)](https://codeclimate.com/github/Yrkki/cv-generator-fe/maintainability "Code Climate maintainability")
[![Quality Gate status](https://sonarcloud.io/api/project_badges/measure?project=Yrkki_cv-generator-fe&metric=alert_status)](https://sonarcloud.io/dashboard?id=Yrkki_cv-generator-fe "Quality Gate status")
[![Libraries.io dependency status](https://img.shields.io/librariesio/github/yrkki/cv-generator-fe?logo=libraries.io&logoColor=337ab7)](https://libraries.io/npm/cv-generator-fe "Libraries.io dependency status")
[![npm dependencies](https://img.shields.io/badge/dependencies-no%20longer%20available-A0A0A0.svg?logo=dependabot&logoColor=)](https://david-dm.org/Yrkki/cv-generator-fe "npm dependencies")
[![npm devDependencies](https://img.shields.io/badge/devDependencies-no%20longer%20available-A0A0A0.svg?logo=dependabot&logoColor=)](https://david-dm.org/Yrkki/cv-generator-fe?type=dev "npm devDependencies")
[![Heroku](https://img.shields.io/badge/heroku%20badges%20eu-no%20longer%20available-A0A0A0.svg?logo=heroku&logoColor=430098)](https://dashboard.heroku.com/apps/cv-generator-fe-eu "Heroku")
[![Netlify](https://api.netlify.com/api/v1/badges/ae6d4bad-8989-4718-aa4d-c67390782144/deploy-status)](https://app.netlify.com/sites/cv-generator-fe/deploys "Netlify")
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FYrkki%2Fcv-generator-fe.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FYrkki%2Fcv-generator-fe?ref=badge_shield "FOSSA Status")
[![FOSSA Open Source Report](https://img.shields.io/badge/FOSSA%20Open%20Source%20Report-report%20%F0%9D%8C%A1-brightgreen.svg)](https://app.fossa.com/reports/ae4aa42b-a271-4926-84a9-a00999f70100 "FOSSA Open Source Report")
[![Core Infrastructure Initiative (CII) best practices](https://bestpractices.coreinfrastructure.org/projects/4848/badge)](https://bestpractices.coreinfrastructure.org/projects/4848 "Core Infrastructure Initiative (CII) best practices")
[![Developer Certificate of Origin (DCO) %E5%88%B8](https://img.shields.io/badge/DCO-certificate%20%E5%88%B8-success)](https://developercertificate.org "Developer Certificate of Origin (DCO)")
[![Semantic Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release "Semantic Release")
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-brightgreen.svg)](https://conventionalcommits.org "Conventional Commits")
[![Changelog %F0%9D%8C%A1](https://img.shields.io/badge/changelog-log%20%F0%9D%8C%A1-success)](https://github.com/Yrkki/cv-generator-fe/blob/master/CHANGELOG.md "Changelog")
[![Last GitHub commit](https://img.shields.io/github/last-commit/Yrkki/cv-generator-fe.svg)](https://github.com/Yrkki/cv-generator-fe/commit/master "Last GitHub commit")
***
This is an ongoing-development personal CV generator tool with some basic BI analytics features like filtering, drill down, counting, layout, data hiding and visualization through charting and mapping.
## Prerequisites
The CV generator works closely together with an instance of or a farm of *Project Server* setups, another project of mine here, which provides, connects to, extracts, decrypts and reformats the raw data appropriately.
## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:5000/`. The app will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--configuration production` flag for a production build.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](https://www.protractortest.org/).
## Deployment
The app is currently easiest deployed on the Heroku cloud application platform with some build environment and commands already present. See `/src/environments/environment.heroku.ts` and `/package.json` files.
## Built With
The implementations is via an automation-kind cloud-based progressive web app built on top of the Angular front-end web application platform and the MEAN web application stack, and styled with the Bootstrap web builder. Dashboard-first approach.
This project was built with:
* [Angular](https://angular.io/) front-end web application framework.
* [Angular CLI](https://github.com/angular/angular-cli) command line interface.
* [Webpack](https://webpack.js.org/) module bundler.
* [Bootstrap](https://getbootstrap.com/) responsive, mobile-first projects web builder toolkit.
* [Chart.js](https://www.chartjs.org/) interactive charts and graphs.
* [Plotly](https://plot.ly/) interactive data visualization maps.
Documented with:
* [Compodoc](https://compodoc.app/) application documentation tool.
Developed mostly with:
* [Visual Studio Code](https://code.visualstudio.com/) code editor.
Analyzed with:
* [Codelyzer](https://www.npmjs.com/package/codelyzer/) static code analysis rules.
Tested with:
* [Karma](https://karma-runner.github.io/) test runner.
* [Jasmine](https://jasmine.github.io/) unit testing framework.
* [Protractor](https://www.protractortest.org/) end-to-end test framework.
Code-covered with:
* [Istanbul](https://istanbul.js.org/) unit-test instrumenter.
* [Codecov](https://codecov.io/) code coverage tracker.
* [Coveralls](https://coveralls.io) code coverage tracker.
CI'ed with:
* [Travis CI](https://www.travis-ci.com/) distributed continuous integration service .
* [AppVeyor](https://www.appveyor.com/) distributed continuous integration service.
And deployed to:
* [Amazon Web Services](https://aws.amazon.com/) cloud computing services.
* [Heroku](https://www.heroku.com/) cloud application platform.
## Contributing
Please read [CODE_OF_CONDUCT.md](https://github.com/Yrkki/cv-generator-fe/blob/master/CODE_OF_CONDUCT.md) and [CONTRIBUTING.md](https://github.com/Yrkki/cv-generator-fe/blob/master/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests.
## Versioning
We use [SemVer](https://semver.org/) for versioning. The build metadata is typically appended as an additional number in the form `.##`, as well. For the versions available, see the [tags on this repository](https://github.com/Yrkki/cv-generator-fe/tags).
## Authors
* **Georgi Marinov** - *Initial work* - [CV Generator](https://github.com/Yrkki/cv-generator-fe)
See also the list of [contributors](https://github.com/Yrkki/cv-generator-fe/contributors) who participated in this project.
## Acknowledgments
* The Internet! :)
* [GitHub](https://github.com/) hosting service for distributed version control using Git.
* And [Google](https://www.google.com) search engine. For the inspiration :)
## Keywords
Automation
Cloud
Web, PWA
Internet, Node.js, .NET Core
MEAN, Angular, Bootstrap, Webpack, BI
HTML, Markdown, SASS, CSS, TypeScript, JavaScript, JSON, YAML, Bash, PowerShell
Visual Studio Code, Microsoft Visual Studio, Notepad++, Chart.js, Plotly, LifeChart, LifeMap, LifeLog, ReactiveX, Git, GitHub, Heroku, Jekyll, GitHub Pages, Codelyzer, TLS/SSL, Karma, Jasmine, Istanbul, Protractor, Travis, AppVeyor, Codecov, Font Awesome, shields.io, AWS, TDD, SemVer
***
[![Progressive Web App](https://user-images.githubusercontent.com/3104648/28351989-7f68389e-6c4b-11e7-9bf2-e9fcd4977e7a.png) Progressive Web App](https://developers.google.com/web/progressive-web-apps/ "Progressive Web App")
[Project site](https://yrkki.github.io/cv-generator-fe/ "Project site")
[![Package version](https://img.shields.io/github/package-json/v/Yrkki/cv-generator-fe.svg)](https://github.com/Yrkki/cv-generator-fe "Package version")
[Made in Bulgaria](https://www.google.com/search?q=Bulgaria&tbm=isch "Bulgaria") [*🌹*](https://www.google.com/search?q=rose+valley+kazanlak&tbm=isch "Rose Valley")
[![Coverage sunburst](https://codecov.io/gh/Yrkki/cv-generator-fe/graphs/sunburst.svg)](https://codecov.io/gh/Yrkki/cv-generator-fe?search=&trend=all%20time "Coverage sunburst")
[![Quality Gate](https://sonarcloud.io/api/project_badges/quality_gate?project=Yrkki_cv-generator-fe)](https://sonarcloud.io/summary/new_code?id=Yrkki_cv-generator-fe "Quality Gate")
## License
This project is licensed under the Apache-2.0 License - see the [LICENSE](https://github.com/Yrkki/cv-generator-fe/blob/master/LICENSE) file for details.
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FYrkki%2Fcv-generator-fe.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FYrkki%2Fcv-generator-fe?ref=badge_large "FOSSA Status")
### Code
[![Apache-2.0 license](https://img.shields.io/badge/license-Apache--2.0-brightgreen.svg)](https://opensource.org/licenses/Apache-2.0 "Apache-2.0 license")
### Documentation
[![Documentation status](https://cv-generator-fe.herokuapp.com/documentation/images/coverage-badge-documentation.svg)](https://cv-generator-fe.herokuapp.com/documentation/index.html "Documentation status")
[![Documentation coverage list %F0%9D%8C%A1](https://img.shields.io/badge/documentation%20coverage-list%20%F0%9D%8C%A1-success.svg)](https://cv-generator-fe.herokuapp.com/documentation/coverage.html "Documentation coverage list")
[![Documentation license CC BY 4.0](https://img.shields.io/badge/documentation%20license-CC%20BY%204.0%20%F0%9D%8C%A1-brightgreen.svg)](https://creativecommons.org/licenses/by/4.0 "Documentation license CC BY 4.0")
### Third-party licenses
[![Third-party licenses list %F0%9D%8C%A1](https://img.shields.io/badge/Third--party%20licenses-list%20%F0%9D%8C%A1-brightgreen.svg)](https://cv-generator-fe.herokuapp.com/3rdpartylicenses.txt "Third-party licenses list")
***
© 2020 – 2023 [Marinov](http://marinov.link "Marinov"). All rights reserved.