Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Descrever os modelos/tabelas do projeto #10

Open
cristofersousa opened this issue Jul 13, 2016 · 9 comments
Open

Descrever os modelos/tabelas do projeto #10

cristofersousa opened this issue Jul 13, 2016 · 9 comments

Comments

@cristofersousa
Copy link
Contributor

Vamos adotar o PostgreSQL no projeto, então quem for trabalhar com o banco é uma boa fazer o MER disso ou alinhado com as outras pessoas.

@lamenezes
Copy link
Contributor

Modelos:

  • ONG
    • Nome, descrição, avatar, Coordenador (DjangoUser), projetos, ações, causa
  • Projeto
    • nome, data, descrição
  • Necessidade
  • Pessoa
    • user = models.ForeignKey(User)
    • contribui com projetos
    • apoiar instituções
  • Causas (categorias)

@tiagoamartins
Copy link

tiagoamartins commented Jul 15, 2016

Então, montei mais ou menos as definições para cada uma das classes do modelo. O que acham? Feedback? Talvéz montar os diagramas a partir disso?

Modelos

Instituição

Definição

É a representação de uma organização que busca ajuda através do Mão Aberta.

Atributos

  • Nome: Conjunto de no máximo 50 caractéres que definem o nome da Instituição.
  • Descrição: Texto longo no qual estão definidas a missão, valores e visão da Instituição.
  • Avatar: Imagem que representa visualmente a Instituição.
  • Coordenador: Pessoa responsável pelo contato e gerenciamento entre a Instituição e o Mão Aberta, relacionamento N -> 1.
  • Projetos: Lista de elementos Projeto que a Instituição organiza e/ou gerencia, relacionamento N -> M.
  • Necessidades: Lista de elementos Necessidade da Instituição, relacionamento N -> M.
  • Causa: Relacionamento N -> 1 das Causas existentes.

Projeto

Definição

Cada Projeto é uma atividade e/ou evento realizado por uma Instituição.

Atributos

  • Nome: Conjunto de 30 caractéres que definem o Projeto.
  • Data: Campo de marcação da data na qual o Projeto acontecerá.
  • Descrição: Texto longo de explicação do motivo e detalhes do Projeto.

Necessidade

Definição

Corresponde a itens ou serviços que uma Instituição precisa regularmente.

Atributos

  • Nome: Conjunto de 20 caractéres que definem a Necessidade.
  • Intervalo: Tempo no qual o item será necessário novamente.

Pessoa

Definição

É o modelo de representação dos usuários.

Atributos

  • Usuário: Representação básica da Pessoa com: primeiro nome, sobrenome, e-mail... Derivado do usuário do Django.
  • Projetos: Lista de elementos Projeto que a Pessoa já contribuiu.
  • Apoios: Lista de elementos_Instituição_ que a Pessoa apoia. Serve para divulgação.

Causa

Definição

É a classificação dada a uma Instituição com base no tipo de serviço ou auxílio prestado.

@lucasmatheustesta
Copy link
Contributor

eu gostei desse primeiro rascunho, criei um app chamado projetos e criei uma classe chamada Projeto, está no pull request.

@lamenezes
Copy link
Contributor

lamenezes commented Jul 19, 2016

Ficou bem legal a descrição! Agora dá para ter uma ideia melhor dos componentes sistema e de suas reslações.

Acho que algumas coisas mudaram futuramente, mas desse jeito para mim está OK. Já dá para criar as apps #13 e depois os modelos #14

@lamenezes
Copy link
Contributor

lamenezes commented Jul 19, 2016

Eita, acabei esquecendo que todo código é em inglês e coloquei os modelos com nomes em português, segue a tradução:

Modelos

Organization

Definição

É a representação de uma organização que busca ajuda através do Mão Aberta.

Atributos

  • name Conjunto de no máximo 50 caractéres que definem o nome da Instituição.
  • description Texto longo no qual estão definidas a missão, valores e visão da Instituição.
  • avatar Imagem que representa visualmente a Instituição.
  • coordinator Pessoa responsável pelo contato e gerenciamento entre a Instituição e o Mão Aberta, relacionamento N -> 1.
  • projects Lista de elementos Projeto que a Instituição organiza e/ou gerencia, relacionamento N -> M.
  • necessities Lista de elementos Necessidade da Instituição, relacionamento N -> M.
  • causes Relacionamento N -> 1 das Causas existentes.

Project

Definição

Cada Project é uma atividade e/ou evento realizado por uma Organization.

Atributos

  • name Conjunto de 30 caractéres que definem o Projeto.
  • date Campo de marcação da data na qual o Projeto acontecerá.
  • description Texto longo de explicação do motivo e detalhes do Projeto.

Necessity

Definição

Corresponde a itens ou serviços que uma Organization precisa regularmente.

Atributos

  • name Conjunto de 20 caractéres que definem a Necessity.
  • interval Tempo no qual o item será necessário novamente.

Contributor

Definição

É o modelo de representação dos usuários.

Atributos

  • user Representação básica de Contributor com: primeiro nome, sobrenome, e-mail... Derivado do usuário do Django.
  • projects Lista de elementos Project que o Contributor já contribuiu.
  • causes Causes de Organizations que o Contributor apoia apoia. Serve para divulgação.

Cause

Definição

É a classificação dada a uma Organization com base no tipo de serviço ou auxílio prestado.

@lucasmatheustesta
Copy link
Contributor

acho que poderiamos melhorar esse "Cause". O que acham ?

@tiagoamartins
Copy link

Concordo! Só estava sem saber o que acrescentar.

@lamenezes
Copy link
Contributor

Galera, fiz umas mudanças:

Modelos

Organization

Definição

É a representação de uma organização que busca ajuda através do Mão Aberta.

Atributos

  • name Conjunto de no máximo 50 caractéres que definem o nome da Instituição.
  • description Texto longo no qual estão definidas a missão, valores e visão da Instituição.
  • photo Imagem que representa visualmente a Instituição.
  • coordinator Pessoa responsável pelo contato e gerenciamento entre a Instituição e o Mão Aberta, relacionamento N -> 1.
  • projects Lista de elementos Projeto que a Instituição organiza e/ou gerencia, relacionamento N -> M.
  • necessities Lista de elementos Necessidade da Instituição, relacionamento N -> M.
  • causes (opcional) Relacionamento N -> 1 das Causas existentes.
  • homepage_url (opcional)
  • facebook_url (opcional)
  • twitter_url (opcional)
  • email
  • address Relacionamento 1 para 1 com a tabela Address
  • necessity_description Texto longo no qual a organização descreve por que precisam de ajuda e como as pessoas podem ajudar

Project

Definição

Cada Project é uma atividade e/ou evento realizado por uma Organization.

Atributos

  • title Conjunto de 30 caractéres que definem o Project.
  • date Campo de marcação da data na qual o Project acontecerá.
  • description Texto longo de explicação do motivo e detalhes do Project.
  • status Campo com 16 caracteres: open, running, closed, default=open
  • responsible Usuário que criou o projeto

ProjectHistory

Definição

Cada ProjectHistory representa uma mudança no status de Project.

Atributos

  • status Status do projeto: open, running, closed
  • created_at Data em que o status foi criado
  • project Project relacionado

Necessity

Definição

Corresponde a itens ou serviços que uma Organization precisa regularmente.

Atributos

  • name Conjunto de 20 caractéres que definem a Necessity.
  • satisfied Campo booleano que armazena se aquela necessidade foi suprida

Contributor

Definição

É o modelo de representação dos usuários.

Atributos

  • user Representação básica de Contributor com: primeiro nome, sobrenome, e-mail... Derivado do usuário do Django.
  • projects Lista de elementos Project que o Contributor já contribuiu.
  • causes Causes de Organizations que o Contributor apoia apoia. Serve para divulgação.

Cause

Definição

É a classificação dada a uma Organization com base no tipo de serviço ou auxílio prestado.

@lamenezes
Copy link
Contributor

Na mudança acima eu adicionei uns campos relavantes a alguns modelos.

Também removi Necessity.interval, pois uma organização poderá ter dezenas de necessidades e ter que controlar cada intervalo da necessidade vai dar um bom trabalho.

Adicionei Necessity.satisfied para indicar se aquela necessidade foi suprida. No wireframe #11 isso é exibido para o usuário no checkbox que aparece antes de cada necessidade.

@lamenezes lamenezes changed the title Precisa criar o Diagrama MER Descrever os modelos/tabelas do projeto Jul 23, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants