-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create challenges + 1 from fullstack typescript
- Loading branch information
Showing
9 changed files
with
983 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
node_modules |
38 changes: 38 additions & 0 deletions
38
schools/challenges/1_fullstack_typescript/desafio-1/Readme.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Desenvolvendo o Dio Bank | ||
desenvolvido por [Nathally Souza](https://github.com/nathyts) | ||
|
||
#### Projeto desenvolvido com conceitos básicos de typescript | ||
|
||
### Tecnologias | ||
- Typescript | ||
|
||
### Como rodar o projeto | ||
|
||
1 - Clone o repositório | ||
|
||
2 - Instale as dependeências | ||
|
||
npm install | ||
|
||
3 - Execute o projeto | ||
|
||
npm run dev | ||
|
||
#### Desafios | ||
[ V ] Implementar os métodos de depósito (deposit) e saque (withdraw) na classe DioAccount | ||
- Os valores dos saldos devem ser alterados, de acordo com o valor informado para depósito | ||
- Apenas contas com o status true e saldo (balance) maior que o valor solicitado podem fazer saques | ||
|
||
[ V ] Implementar o método de empréstimo (getLoan) na classe CompanyAccount | ||
- Os valores do saldos deve ser acrescidos, de acordo com o valor informado para empréstimo | ||
- Apenas contas com o status true podem fazer empréstimo | ||
|
||
[ V ] Criar um novo tipo de conta a partir da DioAccount | ||
- Esta conta não deve receber novos atributos | ||
- Esta conta terá um método de depósito, que acresce 10 a mais ao valor informado para depósito. (Ex: Um depósito de 100, será de 110 no final) | ||
|
||
[ V ] Todos os atributos de qualquer conta devem ser privados | ||
|
||
[ V ] Os atributos name e accountNumber não podem ser alterados internamente ou externamente | ||
|
||
[ V ] Criar instancias para cada um dos tipos de conta no app.ts e executar os métodos possíveis. |
14 changes: 14 additions & 0 deletions
14
schools/challenges/1_fullstack_typescript/desafio-1/app.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import { CompanyAccount } from './class/CompanyAccount' | ||
import { PeopleAccount } from './class/PeopleAccount' | ||
|
||
// =>> Criar instâncias... | ||
const Nath: PeopleAccount = new PeopleAccount(1, 'Nath', 10) | ||
const Dio: CompanyAccount = new CompanyAccount('DIO', 20) | ||
|
||
const novaConta_Teste: PeopleAccount = new PeopleAccount(2,'Teste', 2) | ||
novaConta_Teste.deposit(12) | ||
novaConta_Teste.getBalance() | ||
|
||
Dio.getLoan() | ||
Dio.getBalance() | ||
Dio.getName() |
15 changes: 15 additions & 0 deletions
15
schools/challenges/1_fullstack_typescript/desafio-1/class/CompanyAccount.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import { DioAccount } from "./DioAccount" | ||
|
||
export class CompanyAccount extends DioAccount { | ||
|
||
constructor(name: string, accountNumber: number){ | ||
super(name, accountNumber) | ||
} | ||
|
||
getLoan = (): void => { | ||
if(this.validateStatus()) { | ||
console.log(`Sua conta está ativa e é possivel realizar o empréstimo!`) | ||
} | ||
|
||
} | ||
} |
56 changes: 56 additions & 0 deletions
56
schools/challenges/1_fullstack_typescript/desafio-1/class/DioAccount.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
export abstract class DioAccount { | ||
private readonly name: string | ||
private readonly accountNumber: number | ||
private balance: number = 0 | ||
private status: boolean = true | ||
|
||
constructor(name: string, accountNumber: number){ | ||
this.name = name | ||
this.accountNumber = accountNumber | ||
} | ||
|
||
getName = (): string => { | ||
return this.name | ||
} | ||
|
||
deposit = (money: number): void => { | ||
// Conta VIP | ||
if (this.accountNumber == 2) { | ||
console.log('Você está em uma conta especial :)') | ||
console.log('Cada depósito receberá 10 reais a mais!') | ||
const juros = this.balance += money + 10 | ||
return console.log(`Foi depositado R$10 + R$${money} = R$${juros}.`) | ||
} | ||
|
||
// Conta comum | ||
if(this.validateStatus()){ | ||
this.balance += money | ||
console.log(`Voce depositou R$${money} com sucesso.`) | ||
} | ||
|
||
} | ||
|
||
withdraw = (money: number): void => { | ||
if(this.validateStatus()) { | ||
if (this.balance >= money) { | ||
this.balance -= money | ||
return console.log(`Saque de R$${money} efetuado com sucesso!`) | ||
} | ||
|
||
console.log('Saque Inválido! Você não possui fundos suficientes :(') | ||
} | ||
|
||
} | ||
|
||
getBalance = (): void => { | ||
console.log(this.balance) | ||
} | ||
|
||
readonly validateStatus = (): boolean => { | ||
if (this.status) { | ||
return this.status | ||
} | ||
|
||
throw new Error('Error: Sua conta não é válida!') | ||
} | ||
} |
10 changes: 10 additions & 0 deletions
10
schools/challenges/1_fullstack_typescript/desafio-1/class/PeopleAccount.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import { DioAccount } from "./DioAccount" | ||
|
||
export class PeopleAccount extends DioAccount { | ||
doc_id: number | ||
|
||
constructor(doc_id: number, name: string, accountNumber: number){ | ||
super(name, accountNumber) | ||
this.doc_id = doc_id | ||
} | ||
} |
Oops, something went wrong.