opensanca / api.ajudeum.pet Goto Github PK
View Code? Open in Web Editor NEWAjudando animalzineos a acharem um lar :cat: :dog: :heart:
License: MIT License
Ajudando animalzineos a acharem um lar :cat: :dog: :heart:
License: MIT License
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
É necessario criar endpoints para acessar o modelo de Account #5. O método GET cru com filtros aqui não faz muito sentido.
Realizar integração com o Auth0, toda integração está dividida em 3 seções:
Login
Profile
Calling an API
https://auth0.com/docs/quickstart/spa/react/03-calling-an-api
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()}}
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)
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:
É 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)
É 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.
Realizar a integração com o Auth0 na API python:
Seguir todas as recomendações padrão do PEP8, usando pylint.
É 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
O link do Travis no README está quebrado
É 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 :)
É necessario criar endpoints para acessar ONG/User, no caso os mesmos entpoints requiridos para #19 servem perfeitamente aqui :)
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 :)
É necessario prototipar as telas para que possamos criar o front-end:
As discussed on a pull request review here, there may be some security issues with the current model-centered strategy: #39.
É 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:
OBS: Todas as rotas são autenticadas
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
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.