Git Product home page Git Product logo

api.ajudeum.pet's People

Contributors

duduribeiro avatar guicarvalho avatar raphaelpanta avatar samuelgrigolato avatar tfcorrea avatar wisner23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

api.ajudeum.pet's Issues

Configurar: WebApp

Devido ao projeto Mão Aberta, resolves utilizar de basicamente a mesma prototipação de telas para poupar tempo e manter consistencia entre os Admins do OpenSanca <3 Por isso todos os componentes serão criados no burro: https://github.com/opensanca/burro

  • Configurar Rollup para gerar um bundle
  • Configurar JEST pra testes
  • Configurar REDUX
  • Configurar Travis para gerar build
  • Criar HTML com imports
  • Configurar Flask para servir estáticos

Implementar: Endpoints Account

É necessario criar endpoints para acessar o modelo de Account #5. O método GET cru com filtros aqui não faz muito sentido.

  • / post (create)
  • /:id get (findById)
  • /:id put (update)
  • /:id delete (delete)

Implementar: integração com Auth0

Realizar integração com o Auth0, toda integração está dividida em 3 seções:

Após o login no Auth0 será obtido 3 informações,

  • access_token
    
  • id_token
    
  • expires_in: Numero de segundos para o token expirar.
    

Estas informações são utilizadas para configurar e gerenciar a autenticação via app.

Cada request feito na API em python deverá conter o access token no header desta forma:

const headers = { 'Authorization': Bearer ${getAccessToken()}}

Implementar: Model Report

API Flow

Um Report serve para armazenar informações do status do animal a ser "socorrido". No caso é o report que define regras basicas como "se ele esta perdido, para adoção ou doação":

tipo do report (se ele esta perdido, adoção temporaria ou adoção plena)
onde foi visto pela última vez (obrigatório se for cachorro perdido),
com quem ele está em lar temporário (aponta para um cadastro, opcional)

Implementar: Endpoints Adoption

A API de adoption é a que tera de certa forma mais recursos :) O unico método que eu não implementaria aqui seria o update, pelo menos não de forma abstrata:

  • / get (find)
  • / post (create)
  • /:id get (findById)
  • /:id delete (deleter)
  • /:id/reject/:kind put (muda status da adoção p/ rejected sendo que KIND é se foi pelo doador ou por quem estava querendo adotar)
  • /:id/approve put (muda status da adoção p/ aprovado)

Implementar: Model Animals

API Flow

É importante entender que o Animal é um "sideeffect" de um report, o motivo desse approach é: para que um animal entre no sistema ele precisa ter dados que não necessariamente são do animal e pra manter histórico caso o mesmo venha a aparecer novamente no nosso sistema fica mais facil dar a opção para o usuario localizar esse animal ou cadastra-lo durante a criação do report.

nome (se souber), 
tipo de animal (cachorro/gato/coelho/sonic), 
raça (se souber), 
idade (estimada), 
descrição (obrigatório)

Implement: Endpoints Report

É necessario criar API basica para acessar o model de report #17, diferente das demais o método GET aqui é um dos mais relevantes uma vez que a tela principal vai consumir ele para possamos listar nossos animalzenhos, proponho fazer-mos uma paginação simples baseada em:

{ 
   items: [],
   nextPage: 0,
}

Sendo que na falta do nextPage seja indicado que não temos mais animalzineos para serem carregados.

Vale resaltar tabem que o método post podera criar como sideeffect um animal :) Caso o usuario esteja cadastrando o mesmo pela primeira vez.

  • / get (find)
  • / post (create) *
  • /:id get (findById)
  • /:id put (update)
  • /:id delete (delete)

Implementar: Model Adoption

API Flow

É necessario criar o modelo de Adoption nesse caso esse modelo servira tambem como nosso log para os requests de adoção:

doador (conta que esta doando)
dono (conta de quem esta no processo da adoção)
report (report que tem os dados do cachorro das informações pra adoção)
status (se a adoção foi recusada - e por quem -, aceita ou ainda esta pendente) : pendente é o default

Implementar: Endpoints Animals

É necessario implementar todos os métodos básicos para acessar o model de Animal #6 , no caso o unico método realmente necessario é o get com filtros, para que durante o cadastro de report seja possivel localizar o animal em questão, os outros métodos podem ser feito diretamente dentro dos endpoints de Report :)

  • / get (find)

Implementar: Modelos de ONG e User

No nosso caso o nosso model Account vai ser responsavel pelas ações, as collections ongs e users vão referenciar uma account e guardar dentro delas dados relevantes pro tipo de conta.

Para um ONG é interessante termos documentação para identificação legal da mesma, local obrigatório.

Para o User algo como CPF/RG ou CNH, Data de Aniversario, Preferencias de animal :)

Prototipar Telas

É necessario prototipar as telas para que possamos criar o front-end:

  • Landpage
  • Tela de Cadastro de Conta
  • Tela de Cadastro de Animal
  • Tela de Listagem de Catiorrineos/Gatineos
  • Tela de Listagem interesse em adoção
  • Tela de Configuração de Usuario/Ong

Implementar: Component ReportCard

ReportCard sera o component que ira trazer as informações do nosso animalzinho, algo similar a isso (lembrando que usaremos o UI do Burro que sera baseado nos prototipos feitos para o mão aberta)

screen shot 2018-01-13 at 3 51 48 pm

Configurar: React Router

É necessario que seja criado um arquivo com as rotas da aplicação, e arquivos js que representem as paginas onde posteriormente iremos inserir o containers REDUX :)

Rotas:

  • / index (listagem de reports)
  • /report/:id (pagina para detalhes do report)
  • /report/new (pagina para cadastro do report)
  • /adoptions/ (pagina para listagem das suas adoções)
  • /adoptions/:id (pagina com informações da adoção)
  • /animal/:id (pagina com informações do animal)
  • /adoptions/:id/edit (pagina de alteração do animal)
  • /settings (pagina de configuração da conta)

OBS: Todas as rotas são autenticadas

Configurar: CORS

Precisamos de CORS na API pois ela vai responder em um domínio diferente da aplicação web, que estará hospedada no domínio ajudeum.pet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.