Application: SLA report This application calculates, based on an input, the average duration per service of Axon.

Related tags

App SLA-report
Overview

SLA-report

Application: SLA report This application calculates, based on an input, the average duration per service of Axon. This is needed for our SLA report.

Input The input contains the duration of several service calls of Axon. It should support CSV, JSON and XML files. The input files should always contain a list of the following three values:

The timestamp of the event The service called The duration of the event in milliseconds Examples of each format are located in the src/test/resources directory. Note that all the examples have two services, but many more may be added in the future.

Output This application should output the average of the durations per service. The output should either be a CSV or HTML file.

The CSV should look as follows:

Service;AverageDuration PolicyService;123 FinancialService;123 The HTML should have more information, just like the reports from Gatling. It should state the number of calls per category: 0ms - 300ms, 300ms - 800ms, 800+. You can use the following template (not very pretty, can be improved):

Template

PolicyService

Average: 999ms. Libraries It is highly advised to use libraries for parsing the input files to Java objects. I suggest the following:

commons-csv for CSV files jackson for JSON files XML can be parsed using JAXB classes, which are part of the JDK.

Usage The final result should be a single jar that can be run via the command line. The command looks like this:

java -cp SLA-report.jar com.keylane.Main To convince the business to use this application, you have to supply a code coverage report with a coverage of at least 95%.

Github project I want you to create a Github project to work on this. This way you can:

Create tickets (called issues in Github) Use a sort of kanban bord (called Projects in Github) Use free CI tooling (Github actions, travis-ci, codecov, etc) Review each other pull requests with automatic CI checks Create documentation (wiki or Github pages) We are going to work on this as if it is an actual application or library you publish to the outside world! Try to think about release notes, versioning, etc.

Note: make sure you have your CI configuration working before you start programming the entire application. This will help you a lot while programming. Also, if you configure something like code coverage beforehand, you can see which pull requests increase or decrease code coverage (you can use codecov.io or google how to do this with Github actions).

Note 2: it is ok if figuring this out takes a lot of time. You will learn a lot from this (configuring this the second time is considerably faster, trust me). This will also help you understand why Bamboo or TeamCity is so important and takes a lot of time to maintain.

Comments
  • Implement FileWriter

    Implement FileWriter

    Describe the solution you'd like As developer I want a FileWriter class, which receives a List of Strings and a filename as a destination so that it creates the corresponding file as output.

    opened by lyberakis 2
  • ConvertFromSLARecord#convert should not be a void method

    ConvertFromSLARecord#convert should not be a void method

    Describe the bug ConvertFromSLARecord#convert returns a void. This means that it will convert the output and write to a file. However, this is a violation of the single responsibility principle.

    Expected behavior ConvertFromSLARecord It should only convert and not write to a file. Writing to a file should be done in another class.

    opened by ricoapon 1
  • Github action automatic gradle build gives an error

    Github action automatic gradle build gives an error

    Describe the bug After adding the GitHub actions to automatic build a branch an error occurred.

    To Reproduce Steps to reproduce the behavior:

    • commit a change to a random branch

    Expected behavior Build is successful

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    Smartphone (please complete the following information):

    • Device: [e.g. iPhone6]
    • OS: [e.g. iOS8.1]
    • Browser [e.g. stock browser, safari]
    • Version [e.g. 22]

    Additional context Error Run gradle/gradle-build-action@937999e9cc2425eddc7fd62d1053baf041[14](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:14)7db7 14 Restore Gradle state from cache [16](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:16) Error: Error: Gradle script '/home/runner/work/SLA-report/SLA-report/gradlew' is not executable. [17](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:17) Error: Gradle script '/home/runner/work/SLA-report/SLA-report/gradlew' is not executable. [18](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:18) at constants (/home/runner/work/_actions/gradle/gradle-build-action/937999e9cc2425eddc7fd62d1053baf041147db7/dist/src/execution.ts:69:1) [19](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:19) at Object.locateGradleWrapperScript (/home/runner/work/_actions/gradle/gradle-build-action/937999e9cc2425eddc7fd62d1053baf041147db7/dist/src/execution.ts:47:1) [20](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:20) at Generator.next (<anonymous>) [21](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:21) at rejected (/home/runner/work/_actions/gradle/gradle-build-action/937999e9cc2425eddc7fd62d1053baf041147db7/dist/src/execution.ts:26:32) [22](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:22) at new Promise (<anonymous>) [23](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:23) at P (/home/runner/work/_actions/gradle/gradle-build-action/937999e9cc[24](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:24)[25](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:25)eddc7fd62d1053baf041147db7/dist/src/execution.ts:22:28) 24 at Object.executeGradleBuild (/home/runner/work/_actions/gradle/gradle-build-action/937999e9cc2425eddc7fd62d1053baf041147db7/dist/src/execution.ts:40:1) 25 at parseCommandLineArguments (/home/runner/work/_actions/gradle/gradle-build-action/937999e9cc2425eddc7fd62d1053baf041147db7/dist/src/main.ts:50:1) [26](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:26) at Generator.next (<anonymous>) [27](https://github.com/wverveer/SLA-report/runs/5632832945?check_suite_focus=true#step:4:27) at fulfilled (/home/runner/work/_actions/gradle/gradle-build-action/937999e9cc2425eddc7fd62d1053baf041147db7/dist/src/main.ts:24:1)

    bug 
    opened by wverveer 1
  • Create Interface FileWriter

    Create Interface FileWriter

    Describe the solution you'd like We will create an interface, which will be inherited by classes whose responsibility is to implement the process of writing to a file.

    Actions Create interface FileWriter.

    opened by lyberakis 0
  • create SLAReportGenerator

    create SLAReportGenerator

    Describe the solution you'd like We want the SLAReportGenerator to perform 3 steps:

    1. collect info for output
    2. read input (call input converter)
    3. create output (call output converter)
    opened by lyberakis 0
  • Convert methods should have the ability to throw exceptions

    Convert methods should have the ability to throw exceptions

    Describe the solution you'd like When the conversion goes wrong the exceptions have to be handled within the convert methods. This is not desired. Please change the skeleton framework to support throwing exceptions.

    opened by LL167 0
  • Codecoverage

    Codecoverage

    Describe the solution you'd like A clear and concise description of what you want to happen. As a reviewer I want to see the test codecoverage so that we dont have to do this manually

    Additional context Test coverage should be at 95%

    opened by wverveer 0
  • XML input conversions

    XML input conversions

    Describe the solution you'd like A clear and concise description of what you want to happen. As Product Development Team, I want classes that will read the xml input files and convert them to SLA records, so that we have a standardized way of storing our data.

    opened by lyberakis 0
Releases(v0.0.7)
Owner
null
This console based application calculates sales tax, import duty and provide a way to print the invoice

Sales Tax Problem This console based application calculates sales tax, import du

null 0 Dec 17, 2021
Android app with a simple NFC payment system to manage visitor consumption at short-duration events and festivals. (Research project)

Clevent Também disponível em Português Clevent is an Android application developed for a Undergraduate Research that uses NFC technology to create a p

Newton Scavazzini 9 Oct 19, 2022
An App based on MVVM architecture to track & store a user's runs using Google Maps, with options to view & sort the runs as per the user's choice along the with option to run the app in background.

An App based on MVVM architecture to track & store a user's runs using Google Maps, with options to view & sort the runs as per the user's choice along the with option to run the app in background.

Harshit Maheshwari 1 Jun 9, 2022
Abel Suviri 6 Dec 16, 2022
Weatherreport - Weather report app built with kotlin

Weather report app Foreword This app has been coded as a good way for me to play

Killian Theophile 0 Jan 2, 2022
TipTime - An App for Android that Calculates Tip

Project: Tip Time Introduction A Tip Calculator For Android That Will Help You F

null 0 Jan 22, 2022
An app that calculates which fuel is cheaper for the user, the basis used for the calculation was the famous formula ValorAlcool / ValorGasolina

An app that calculates which fuel is cheaper for the user, the basis used for the calculation was the famous formula ValorAlcool / ValorGasolina

Henrique Marinho Teixeira 2 Jan 19, 2022
HideDroid is an Android app that allows the per-app anonymization of collected personal data according to a privacy level chosen by the user.

HideDroid An Android App for preserving user privacy HideDroid is an Android app that allows the per-app anonymization of collected personal data acco

null 100 Dec 12, 2022
A template for Advent of Code challenge with input downloading and prepared test classes

Advent of Code Kotlin Template A template which will help you concentrate on the puzzle solutions. It brings Downloading and caching of the puzzle inp

Henning B 2 Dec 1, 2021
A Tip Calculator app written in Kotlin that takes Total cost as an input and calculate tip according to the feedbacks.

Create a Tip Calculator App Code for the Android Basics in Kotlin: Create a Tip Calculator app codelab. In this codelab, you will be writing code for

Hemant Sachdeva 1 Dec 4, 2021
A simple app to test your device input sample rate.

Android touch sample rate test tool This tool can help you check the touch sample rate of the Android device. Supported input method: Touch Mouse Styl

samnyan 4 Sep 28, 2022
Backend service for mobile/web application for a small cinema playing only movies

FFC - Fast & Furious Cinema Backend service for mobile/web application for a small cinema playing only movies from Fast & Furious franchise. Some assu

Łukasz Lipka 0 Dec 12, 2021
An advanced Kotlin (Android Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices

Dog-Playground Kotlin An advanced Kotlin (Android Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads

Amose Suwali 1 Jan 10, 2022
🐦 Loritta's Social media relayer via Discord Webhooks micro-service

?? SocialRelayer ?? SocialRelayer is a social media relayer to Discord via webhooks, pulling Loritta's guild configurations to automatically register

Loritta 6 Jun 2, 2022
Consuming Kanye West quotes REST API (Kanye as a Service)

Kanye Quotes A free REST API for random Kanye West quotes (Kanye as a Service) API

Eric G 5 Oct 23, 2021
This service provides first-class custom ROM integration for my Repainter app, which offers customizable dynamic theming for Android 12.

Repainter ROM integration This service provides first-class custom ROM integration for my Repainter app, which offers customizable dynamic theming for

Danny Lin 42 Jan 7, 2023
FDPClient-EDITED - A free mixin-based injection hacked-client for Minecraft using Minecraft Forge based on LiquidBounce

FDPClient A free mixin-based injection hacked-client for Minecraft using Minecra

SuperSkidder 7 Aug 29, 2022
❤️ A sample Marvel heroes application based on MVVM (ViewModel, Coroutines, LiveData, Room, Repository, Koin) architecture.

MarvelHeroes MarvelHeroes is a demo application based on modern Android application tech-stacks and MVVM architecture. Fetching data from the network

Jaewoong Eum 1.2k Dec 19, 2022