Base project for Devpass' Dev Sprints

Overview

Foundations Kotlin Challenge

In this challenge, we're going to develop a simple Kotlin application where we'll apply language fundamental features.

Contributing

  1. Fork and clone this repository.
  2. Start a new feature branch.
  3. Open solutions folder and access your Dev Sprint's project.
  4. Build, run and code! 👩‍💻

About Devpass

Devpass is a diverse community of high-potential software developers accelerating their careers through real-world product development and mentorship from tech leaders of the best tech companies.

Interested? Access www.devpass.com.br for more information!

Comments
  • Feature/resource reader

    Feature/resource reader

    O que é

    Criar um object chamado ResourceReader, que implemente a interface IResourceReader, e consiga fazer a leitura de arquivos de dentro da pasta resources.

    A sua implementação deve, ao final da execução, retornar uma lista de todas as linhas de um dado arquivo dentro da pasta resources.

    Minha maior dúvida quanto a essa tarefa foi como acessar a pasta resources e ler o arquivo txt. Para isso usei o File IO, mas a dúvida persiste. Não sei se está exatamente correto.

    Critério de aceitação

    • [ ] A implementação funciona adequadamente
    • [ ] O object foi criado no package adequado
    opened by Pedroajs 4
  • extension function que imprime os valores da classe NetAmountResult

    extension function que imprime os valores da classe NetAmountResult

    O que é

    Implementar uma extension function no data class ResultadoSalarioLiquido para fazer um print mais estruturado do resultado do cálculo.

    Essa task tem relação com a task [KT1-6] pois o que foi definido lá como propriedade importante, deve ser utilizado aqui na mostragem.

    Critérios de aceitação

    • [ ] Implementação utiliza todas as propriedades do data class para mostrar uma mensagem informativa ao usuário do sistema.
    opened by Pedroajs 2
  • [KT1-7] Criar OwnedException

    [KT1-7] Criar OwnedException

    Criar uma classe que herde a exceção padrão do Kotlin, a Exception. Utilizaremos essa classe customizada sempre que precisarmos criar erros próprios para nossas regras de negócio.

    Ex.: Ao inputar o valor do salário bruto, caso ele seja negativo, devemos validar isso e levantar uma exceção, mas essa exceção precisa ser customizada, então criaremos algo do tipo:

    class InvalidRawSalaryException(message: String) : OwnedException(message)
    //          vamos utilizar aqui a classe que você criou ⬆️
    

    Critérios de aceitação

    • [x] A classe está em um package adequado para sua função.
    • [x] A classe herda de Exception
    • [x] A classe possui um parâmetro do tipo String em seu construtor.
    opened by elainemattos 2
  • [KT1-2] Cria open class Loggable

    [KT1-2] Cria open class Loggable

    Essa classe deve ter uma propriedade pública chamada logger, essa propriedade é uma implementação inline da interface ILogger.

    Critérios de aceitação

    • [x] A classe implementada é open.
    • [x] A classe implementada tem uma propriedade chamada logger, que implementa a interface ILogger de maneira inline.
    • [x] A implementação inline de ILogger é útil e cada método faz log de uma maneira condizente com sua funcionalidade.

    Dev Notes

    @Incognitowski , @victorsilva95 Quando rodei o teste da logger, só consegui o retorno esperado quando inicializei cada propriedade com String vazia, mas não entendi o porquê. Caso a entrega esteja correta, podem me explicar?

    opened by t4lu 1
  • Feature/user input reader

    Feature/user input reader

    O que é

    Esse object deve ter dois métodos:

    1. readRawSalary() : Double, essa função deve utilizar o método de leitura de input no terminal para pedir o salário bruto do usuário do sistema.
    2. readUserName() : String, essa função deve utilizar o método de leitura de input no terminal para pedir o nome do usuário do sistema

    Importante: você deve fazer a validação dos valores inputados nos dois métodos, e, em caso de invalidade, levantar exceções específicas que herdam OwnedException, para termos controle das exceções que estamos levantando.

    Validações:

    • Nome em branco.
    • Nome com números.
    • Salário negativo.
    • Salário com valores não numéricos.

    Critérios de aceitação

    • [x] A classe implementa adequadamente os dois métodos indicados.
    • [x] Os métodos validam as informações inputadas de maneira condizente e levantam exceções que herdam OwnedException nos casos necessários.
    opened by marianaccn 1
  • contador nas mensagens de erro

    contador nas mensagens de erro

    [KT1-20] Alterar implementação interna de ILogger dentro de Loggable para conter um contador que atualiza a cada log gerado

    Critérios de aceitação

    • [ ] Números na ordem correta são mostrados ao lado das mensagens de log.
    • [ ] Números não repetem durante o ciclo de vida do programa.
    • [ ] Nenhuma mensagem de log precisou ser alterada para que os números fossem mostrados na ordem.
    opened by Pedroajs 0
  • [KT1-18] Refactor ResourceReader.kt

    [KT1-18] Refactor ResourceReader.kt

    Descrição

    O object ResourceReader foi alterado para que a função de leitura de arquivos seja envolvida em um try/catch.

    No bloco de catch, é gerado log do erro, e levantada uma exceção específica que herde OwnedException, com uma mensagem indicando que houve falha na leitura do arquivo

    opened by RiellyCM 0
  • [WIP] Fluxo principal com entrada de dados

    [WIP] Fluxo principal com entrada de dados

    Implementa o fluxo principal com entrada de dados feita pelo usuário.

    A entrada de dados foi feita, porém, como ainda falta a classe que calcula o Salário Líquido efetivamente, fiz umas alterações temporárias para conseguir testar esse fluxo.

    Em seguida, calcula salário líquido e exibe na tela a dataClass NetAmountResult

    opened by livioqueiroz 0
  • mudando o logger de property para object

    mudando o logger de property para object

    O que é

    Originalmente, logger era uma propriedade da open class Loggable, no entanto, precisamos que só exista uma implementação de ILogger durante o ciclo de vida da aplicação para uma feature futura.

    Para isso, Loggable precisa ser alterado para que logger deixe de ser uma propriedade, e vire um object dentro de Loggable.

    Critérios de aceitação

    • [ ] logger deixou de ser uma property e virou um object dentro de Loggable.
    opened by Pedroajs 0
  • [KT1-15] Criar classe para calcular salário líquido

    [KT1-15] Criar classe para calcular salário líquido

    O que é

    Implementar a classe que calcule o valor do salário líquido, dado o salário bruto. Essa classe vai utilizar as classes criadas nas tasks [KT1-13] e [KT1-14] para calcular os valores de INSS e IRRF.

    Sugestão de nome: LiquidSalaryCalculator

    O retorno da função de cálculo deve ser o data class definido na task [KT1-6]

    Consulte o README do projeto para entender melhor sobre como calcular o salário líquido.

    Critérios de aceitação

    • [ ] Sua classe implementa adequadamente o cálculo do salário líquido
    opened by elainemattos 0
  • [KT1-14] Add class to calculate IRRF

    [KT1-14] Add class to calculate IRRF

    Descrição

    Implementa a classe que calcula o valor do IRRF, dado um salário com dedução de INSS. Essa classe vai utilizar o object criado na task [KT1-10] para buscar a lista de faixas de IRRF para o cálculo.

    opened by RiellyCM 0
Owner
Devpass
A plataforma ideal para profissionais de tecnologia compartilharem e monetizarem conhecimento 🚀
Devpass
MaterialDesignColorPalette 4.2 0.0 L3 Java This is a dev tool to visualize the colours of Material design defined on

MaterialDesignColorPalette This is a dev tool to visualize the colours of Material design defined on http://www.google.com/design/spec/style/color.htm

Guillaume Imbert 256 Oct 2, 2022
An Open-Source repository that contains all the Android Dev and Kotlin concepts and several projects on android ranging in difficulty making this repo completely beginner-friendly.

An Open-Source repository that contains all the Android Dev and Kotlin concepts and several projects on android ranging in difficulty making this repo completely beginner-friendly. The main aim of this repository is to help students who are learning Android Development or preparing for an Android Developer role-based job.

Mimo Patra 15 Dec 29, 2022
Lightning Dev Kit Android Demo Wallet

uMlando-wallet Lightning Dev Kit Android Demo Wallet This project uses a .aar package for the Android platforms that provide language bindings for the

Conor Okus 6 Dec 23, 2022
Dev Experience is a set of projects to make life easier for developers, in order to import, configure and use.

Dev Experience The experience that all developer need Dev Experience is a set of projects to make life easier for developers, in order to import, conf

Wagner Fernando Costa 3 Aug 31, 2022
Codice Java - CORSO VIANOVA/EXPERIS ANDROID APP DEV - KOTLIN

REPOSimoneDiMeglioCORSOJAVA CORSO VIANOVA/EXPERIS ANDROID APP DEV - KOTLIN 11/11/22 ---> Creata Repository - Simone Di Meglio 11/11/22 ---> Caricato P

simonedimeglio 4 Nov 14, 2022
An Android base project building on MVVM Architecture Pattern. This can help you build new apps faster

MVVM Explanation If you can't imagine what is MVVM, please read my medium article here first. It can fully explain the revolution of Software architec

Danh Dev 29 Sep 21, 2022
Android Chinese TTS Engine Base On Tensorflow TTS , use for TfLite Models Test。安卓离线中文TTS引擎,在TensorflowTTS基础上开发,用于TfLite模型测试。

Chinese TTS TF Lite 介绍 使用Kotlin + JetPack Compose + Tensorflow Lite开发的TTS引擎,可以完全离线使用。 可选两种模型:FastSpeech和Tacotron,这两种模型均来自TensorFlowTTS 文字转拼音方法来自:Tenso

benjamin wan 116 Jan 2, 2023
Android Bitcoin market app base on Jetpack Compose and MVI. The app displays current bitcoin market price and history price k-line charts.

compose-bitcoin Android Bitcoin market app base on Jetpack Compose and MVVM & MVI. Features Current bitcoin market price. K-line charts of history pri

Chen Pan 3 May 20, 2022
A code base to retrieve flight schedules and demonstrate heavy modularisation.

FS2020 Flight Scheduler This will eventually produce an application that allows us to convert real life traffic from any source into traccic that can

Jordan Terry 6 Dec 5, 2022
Abel Suviri 6 Dec 16, 2022
Forage-project - This is a project given by Google Android Developers team. It's specifically created for data persistance.

Forage - Starter Code Starter code for the fifth independent project for Android Basics in Kotlin. This project pairs with Unit 5 of Android Basics in

Espérant GADA 0 Jan 2, 2022
Civihelper-project - This is our first android project .

Civihelper-project Problem-- Time taking and cumbersome conventional way to submit your civil problems. Proposed soln--- A platform to provide the sub

Kunal Kumar 1 Jun 6, 2022
Connect is an Android Application to connect people for a project and can then work on the application to efficiently complete the project

Connect is an Android Application to connect people for a project and can then work on the application to efficiently complete the project

Shubhaprasad Padhy 1 Jan 9, 2022
Idaesbasic - An all in one project manager that stores everything in files directly into your project! 🤯

Idaesbasic - Project-Managment redefined Idaesbasic Everything is a file ?? With this project managment tool, everything is a file. Your todolists are

Ben Herbst 123 Nov 11, 2022
FoldingNavigationDrawer-Android This is a sample project present how to use Folding-Android to add Folding Efect to Navigation Drawer.

FoldingNavigationDrawer-Android Sample (Play Store Demo) This is a sample project present how to use Folding-Android to add Folding Efect to Navigatio

null 242 Nov 25, 2022
📱 Android Library to implement Rich, Beautiful, Stylish 😍 Material Navigation View for your project with Material Design Guidelines. Easy to use.

Material NavigationView for Android ?? ?? Android Library to implement Rich, Beautiful Material Navigation View for your project with Material Design

Shreyas Patil 198 Dec 17, 2022
It is a project that contains lessons and examples about Kotlin programming language. 🇰

Kotlin Tutorials What is Kotlin? I added the platforms it supports and great resources. You can access the article from the link below: https://medium

Halil Özel 94 Dec 22, 2022
This is a first kotlin project

SmallPocket This is a first kotlin app, help user to save links easily, and can export to Evernote as weekly. Steps: copy link anywhere open SmallPock

KotlinChina 31 Dec 17, 2022
Example of Android project showing integration with Kotlin and Dagger 2

kotlin-dagger-example This project demonstrate how to setup an Android Project with Kotlin and Dagger 2. It's based on Dagger 2 example ##Known issues

Damian Petla 533 Nov 11, 2022