Skip to content

Commit

Permalink
Metodologia para os projetos
Browse files Browse the repository at this point in the history
  • Loading branch information
suissa committed Mar 5, 2016
1 parent ff17c5d commit 19776ea
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 2 deletions.
3 changes: 2 additions & 1 deletion Apostila/module-nodejs/pt-br/express.md
Original file line number Diff line number Diff line change
Expand Up @@ -1709,7 +1709,7 @@ Como já temos a parte do Mongoose atomizada, agora basta que integremos ela com

#### Routes

Para isso vamos definir quais são as informações necessárias definirmos em uma rota:
Para isso vamos analisar quais são as informações necessárias definirmos em uma rota:

- *method*: método HTTP;
- *path*: url da rota;
Expand Down Expand Up @@ -2104,6 +2104,7 @@ Assim deixando nossa arquitetura bem modular e reusável.
- Criar 1 módulo completo na arquitetura ensinada



## Performance


Expand Down
34 changes: 33 additions & 1 deletion Projects/Donations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,40 @@ Claro que não precisamos doar para Angular, React, MySQL e outros que são mant

## Arquitetura

## Entidades

- Projeto
+ Orçamento
+ Equipe
- Doador
+ Pessoa Física
+ Pessoa Jurídica
- Fornecedor
- Doação


### Projeto

A entidade Projeto representa qualquer projeto social que necessite de doações.


## Equipe

- [Carlos Machel](https://github.com/carlosmachel)
- [Ednilson Amaral](https://github.com/ednilsonamaral)
- [Eliel - Hc3](https://github.com/hc3)
- [Eliel - Hc3](https://github.com/hc3)

## Modelagem


## Planejamento

O planejamento é separado em etapas mensais.

### Etapa 1

Na primeira etapa criaremos a API REST do CRUD das entidades com integração com Pagseguro.

[https://github.com/Webschool-io/Project-Donations](https://github.com/Webschool-io/Project-Donations)


76 changes: 76 additions & 0 deletions Projects/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,79 @@ Sistemas que já existem mas podemos fazer melhor:
## Mapa Mental

![](mindmap.png)

## Metodologia

Como estamos utilizando a metodologia do Atomic Design a primeira coisa que precisamos fazer é definir seus Átomos.

Obviamente fica bem difícil sabermos quais os campos necessários sem conhecer as entidades, Moléculas.

Vamos pegar de exemplo o projeto de Doações, podemos dizer que usas entidades/moléculas são:

- Usuário
- Doador
- Projeto
- Doação
- Fornecedor

Após a definição dessas entidades já podemos começar a definir os Átomos, porém ainda não estamos atrelando os Átomos às Moléculas.

Vou listar apenas alguns para dar ideia:

- nome
- email
- password
- telefones: ddd, numero
- endereço:
- logradouro
- nome
- numero
- complemento
- cep
- estado
- pais
- cpf
- cnpj
- razao_social

Após definirmos quais os átomos precisamos agora definir os quarks de cada átomo.

Vamos pegar como exemplo o Átomo `nome`:

```js
const Atom = {
type: String
, get: require('./../quarks/quark-toUpper')
, set: require('./../quarks/quark-toLower')
, validate: require('./../quarks/quark-validate-string-lengthGTE3')
, required: true
, index: true
}

module.exports = Atom;
```

Sabemos que a estrutura acima é a estrutura padrão para qualquer Átomo do Mongoose, onde cada atributo do Átomo é um Quark.

Vamos ver como será alguns de seus Quarks:

```js
// quark-toUpper.js
module.exports = (v) => v.toUpperCase();

```

```js
// quark-toLower.js
module.exports = (v) => v.toLowerCase();
```

```js
// quark-validate-string-lengthGTE3
module.exports = {
validator: (v) => v >= 18
, message: 'Nome {VALUE} precisa ser maior que 3 caracteres'
};
```


0 comments on commit 19776ea

Please sign in to comment.