Please go to https://github.com/proustibat/fbrgsmn.mobile.app
Sources of our web radio applications: android and ios with Ionic 2.
Table of Contents
- Demo
- Features
- Installation
- Linter for the TypeScript
- Continuous Code Quality
- Feel free to improve the app with us
- Contribute
- Support
- License
- Dependencies
- Dev Dependencies
- Listening to our radio
- See content of our website: Pola / Calepins / Dans le casque
Install the app by running:
npm install -g ionic cordova
npm i
ionic platform ios android
ionic state restore
tslint --type-check --project tsconfig.json
Note that our tslint config extends SonarTS rules
We use Sonarqube on Sonarcloud.io to keep our code safe. The dashboard is available here: https://sonarcloud.io/dashboard?id=faubourgsimone_ionic_app
Be sure you have downloaded and installed the Sonarqube Scanner.
You need to add sonar-project.properties to the root of the project as following:
sonar.projectName=Faubourg Simone Ionic App
sonar.projectKey=faubourgsimone_ionic_app
sonar.host.url=https://sonarcloud.io
sonar.organization=faubourgsimone-github
sonar.login=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
sonar.sources=src
sonar.java.source=1.8
sonar.java.binaries=.
When it's done, use the following command to generate results on the dashboard:
sonar-scanner -X -Dsonar.projectVersion=x.x.x
Please contact us if you want a public login for our project.
How simple or complicated the control flow of the application is.
Cyclomatic Complexity measures the minimum number of test cases requiref for full test coverage. Cognitive Complexity is a measure of how difficult the application is to understand
Complexity for Javascript or typescript is incremented by one for each:
- function (i.e non-abstract and non-anonymous constructors, functions, procedures or methods)
- if statement
- short-circuit (AKA lazy) logical conjunction (&&)
- short-circuit (AKA lazy) logical disjunction (||)
- ternary conditional expressions
- loop
- case clauses of a switch statement
- throw and catch statement
- return statement (except when it is the very last statement of a function)
Complexity of the web page is measured by counting the decision tags (such as if and forEach) and boolean operators in expressions (&& and ||), plus one for the body of the document. The decision tags and the operators are configurable through the Complexity rule.
Issues in this domain mark code that will be more difficult to update competently than it should
Rating given to the project related to the value of the Technical Debt Ratio. The default Maintainability Rating grid is:
- A=0-0.05,
- B=0.06-0.1,
- C=0.11-0.20,
- D=0.21-0.5,
- E=0.51-1
The Maintainability rating scale can be alternately stated by saying that if the outstanding remediation cost is:
- <=5% of the time that has already gone into the application, the rating is A
- between 6 to 10% the rating is a B
- between 11 to 20% the rating is a C
- between 21 to 50% the rating is a D
- anything over 50% is an E
Effort to fix all maintainability issues. The measure is stored in minutes. An 8-hour day is assumed when values are shown in days. (The value of the cost to develop a line of code is 0.06 days)
Issues in this domain mark code where you will get behavior other than what was expected.
Reliability remediation effort
Effort to fix all bug issues. The measure is stored in minutes. An 8-hour day is assumed when values are shown in days.
Reliability rating
- A or 1 = 0 Bug
- B or 2 = at least 1 Minor Bug
- C or 3 = at least 1 Major Bug
- D or 4 = at least 1 Critical Bug
- E or 5 = at least 1 Blocker Bug
Security remediation effort
Effort to fix all vulnerability issues. The measure is stored in minutes in the DB. An 8-hour day is assumed when values are shown in days.
Security rating
- A = 0 Vulnerability
- B = at least 1 Minor Vulnerability
- C = at least 1 Major Vulnerability
- D = at least 1 Critical Vulnerability
- E = at least 1 Blocker Vulnerability
- Run
ionic serve -l
- We recommand to test your code by running
ionic run android
orionic run ios
to see results on simulators. If you're not familiar with Ionic framework, please read the Ionic documentation: https://ionicframework.com/docs/ - We use commitizen, so if you wanna contribute to the project and create a pull request, use it by running
git cz
instead ofgit commit
.
- Issue Tracker: https://github.com/FaubourgSimone/ionic-app/issues
- Source Code: https://github.com/FaubourgSimone/ionic-app
If you are having issues, please let us know: [email protected]
The project is licensed under the GNU Affero General Public License v3.0 license
- @angular/common: Angular - commonly needed directives and services
- @angular/compiler: Angular - the compiler library
- @angular/compiler-cli: Angular - the compiler CLI for Node.js
- @angular/core: Angular - the core framework
- @angular/forms: Angular - directives and services for creating forms
- @angular/http: Angular - the http service
- @angular/platform-browser: Angular - library for using Angular in a web browser
- @angular/platform-browser-dynamic: Angular - library for using Angular in a web browser with JIT compilation
- @angular/platform-server: Angular - library for using Angular in Node.js
- @ionic-native/app-rate: Ionic Native - Native plugins for ionic apps
- @ionic-native/app-version: Ionic Native - Native plugins for ionic apps
- @ionic-native/background-mode: Ionic Native - Native plugins for ionic apps
- @ionic-native/core: Ionic Native - Native plugins for ionic apps
- @ionic-native/google-analytics: Ionic Native - Native plugins for ionic apps
- @ionic-native/in-app-browser: Ionic Native - Native plugins for ionic apps
- @ionic-native/media: Ionic Native - Native plugins for ionic apps
- @ionic-native/music-controls: Ionic Native - Native plugins for ionic apps
- @ionic-native/screenshot: Ionic Native - Native plugins for ionic apps
- @ionic-native/social-sharing: Ionic Native - Native plugins for ionic apps
- @ionic-native/splash-screen: Ionic Native - Native plugins for ionic apps
- @ionic-native/status-bar: Ionic Native - Native plugins for ionic apps
- @ionic/cloud-angular: Ionic Cloud Client for Angular 2
- @ionic/storage: Ionic Storage utility
- @ngx-translate/core: The internationalization (i18n) library for Angular 2
- @ngx-translate/http-loader: A loader for ngx-translate that loads translations using http
- angular2-swing: Angular 2 Component for Swing (Tinder style cards)
- com.darktalker.cordova.screenshot: screenshot PhoneGap Plugin for Android
- cordova-ios: cordova-ios release
- cordova-plugin-app-version: Cordova plugin to return the version number of the current app
- cordova-plugin-apprate: A plugin to provide rate this app functionality into your Cordova / Phonegap application<br>
- cordova-plugin-background-mode: Prevent app from going to sleep in background.
- cordova-plugin-compat: This repo is for remaining backwards compatible with previous versions of Cordova.
- cordova-plugin-console: Cordova Console Plugin
- cordova-plugin-device: Cordova Device Plugin
- cordova-plugin-dialogs: Cordova Notification Plugin
- cordova-plugin-file: Cordova File Plugin
- cordova-plugin-globalization: Cordova Globalization Plugin
- cordova-plugin-google-analytics: Google Universal Analytics Plugin
- cordova-plugin-inappbrowser: Cordova InAppBrowser Plugin
- cordova-plugin-media: Cordova Media Plugin
- cordova-plugin-music-controls: Music controls for Cordova apps
- cordova-plugin-splashscreen: Cordova Splashscreen Plugin
- cordova-plugin-statusbar: Cordova StatusBar Plugin
- cordova-plugin-whitelist: Cordova Whitelist Plugin
- cordova-plugin-x-socialsharing: Share text, images (and other files), or a link via the native sharing widget of your device. Android is fully supported, as well as iOS 6 and up. WP8 has somewhat limited support.
- cordova-windows: cordova-windows release
- es6-promise-plugin: ES6-Promises polyfill for Cordova/PhoneGap
- ionic-angular: A powerful framework for building mobile and progressive web apps with JavaScript and Angular 2
- ionic-plugin-deploy: Ionic Deploy Plugin
- ionic-plugin-keyboard: Ionic Keyboard Plugin
- ionicons: Premium icons for Ionic.
- ng2-translate: An implementation of angular translate for Angular 2
- rxjs: Reactive Extensions for modern JavaScript
- sw-toolbox: Service Worker Toolbox provides some simple helpers for use in creating your own service workers.
- zone.js: Zones for JavaScript
- cordova-android: cordova-android release
- @ionic/app-scripts: Scripts for Ionic Projects
- @ionic/cli-plugin-cordova: Ionic Cordova Plugin for Ionic CLI
- @ionic/cli-plugin-ionic-angular: Ionic CLI build plugin for Ionic Angular projects
- commitizen: Git commit, but play nice with conventions.
- cz-conventional-changelog: Commitizen adapter following the conventional-changelog format.
- tslint-sonarts: SonarTS rules for TSLint
- typescript: TypeScript is a language for application scale JavaScript development