Coder Social home page Coder Social logo

api-hoco's Introduction

🗒️ Documentação da API

A documentação com instruções de uso para requisições à API pode ser encontrada aqui.

Exemplo de API com Flask

Esse repositório serve para ilustrar a construção de APIs com Flask em Python. Testes utilizando a biblioteca Pytest também foram adicionados.

Como executar a API

Para executar, é preciso ter as dependências (Flask e Pytest) instaladas e executar o seguinte comando:

python3 -m backend

Você pode optar por instalar as dependências direto na sua máquina com o pip, ou utilizar um ambiente virtual (fortemente recomendado).

Como executar os testes

Basta utilizar o comando:

python3 -m pytest

Ambientes virtuais

Para que servem?

Um ambiente virtual serve para que nele seja possível encapsular os pacotes utilizados na API a fim de que eles não "poluam" sua máquina. Utilizar esses ambientes também se mostram úteis no processo de automatização da instalação das dependências do projeto, além de evitar interferências em pacotes de outros projetos.

Como criar um ambiente virtual e instalar os pacotes:

  1. Crie o ambiente virtual
python3 -m venv venv
  1. Ative o ambiente virtual
source venv/bin/activate
  1. Instale os pacotes (Flask e Pytest) presentes no requirements.txt
pip install -r requirements.txt

Para desativar o ambiente virtual, basta digitar o comando deactivate

api-hoco's People

Contributors

claudiodantas avatar dnlgomesl avatar gusttafs avatar leandraos avatar rodrigoec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

api-hoco's Issues

Resolução de bug de remoção de atividade

Durante testes de usabilidade alguns usuários reportaram a existência de um bug na remoção de uma atividade cadastrada, onde a atividade não era apagada.

Data de entrega: 22/03/2023

Feat - Exclusão de uma atividade

Uma vez cadastrada uma atividade no banco de dados deve ser possível ao usuário fazer a remoção dessa atividade.

Rota: DELETE /atividade?id=<atividade_id>

Para saber mais sobre o corpo da requisição, o tipo dessa e mais informações acesse a documentação dos constratos da API do HoCo.

Essa issue depende da resolução da issue: #4

Feat - Adicionar lógica de Login

Deve ser possível ao sistema que um usuário já cadastrado faça login no sistema para que esse tenha acesso as funcionalidades do sistema.

Para fazer o login o usuário deve prover as seguintes informações:

  • Matrícula;
  • Senha.

Já o sistema deve retornar como resposta da requisição de login o token de acesso do usuário.

⚠️ @RuanGOA possue um repositório de login em flask, basta traduzir o funcionamento desse repositório para o HoCO. Link para o repositório

Feat - Implementar recuperação de créditos do usuário dividido por categoria

Para cada atividade do usuário pode ser atribuído uma quantidade de créditos, a partir dessa informação é necessário implementar uma rota da API que retorne a quantidade de créditos de um usuário dividido por categoria.

Rota: /categories/credits

Para saber mais sobre o corpo da requisição, o tipo dessa e mais informações acesse a documentação dos contratos da API do HoCo.

Essa issue depende da resolução da issue: #4

Feat - Cadastro de atividade complementar

Deve ser possível ao aluno (usuário) fazer o cadastro de uma atividade complementar.

Para o cadastro de uma atividade complementar o usuário deve prover as seguintes informações:

  • Título da atividade complementar (obrigatório);
  • Categoria (obrigatório);
  • Número de horas (opcional);
  • Número de créditos (opcional);
  • Arquivo de certificado da atividade (obrigatório).

⚠️ OBS: Não deve ser possível ao usuário adicionar o número de horas e o número de créditos na mesma requisição, é um ou outro.

Para melhor guiar o desenvolvimento dessa issue existe a documentação das rotas do HoCo: Link do contrato das rotas do HoCo

Feat - Implementar recuperação de total de créditos do usuário

Para cada atividade do usuário pode ser atribuído uma quantidade de créditos, a partir dessa informação é necessário implementar uma rota da API que retorne a quantidade total de créditos de um usuário.

Rota: /credits

Para saber mais sobre o corpo da requisição, o tipo dessa e mais informações acesse a documentação dos constratos da API do HoCo.

Essa issue depende da resolução da issue: #4

Feat - Implementar cadastro de usuário

Deve ser possível à API o cadastre novos usuários. Dessa forma, as seguintes propriedades devem ser aceitas no corpo da requisição da rota:

  • Nome;
  • E-mail;
  • Matrícula (obrigatório);
  • Foto de perfil;

É Possível acessar como deve ser implementada a entrada e saída da rota de cadastro de usuário através do seguinte link: Documentação do HoCo API

Feat - Listagem de atividades de um aluno

Deve ser possível ao usuário listar as suas atividades complementares, dessa forma, a API precisa ter uma rota que retorna uma lista de atividades complementares relacionadas a um usuário específico.

Para a implementação dê uma olhada na documentação dos contratos da API do HoCO ❤️ Link da documentação

Essa issue depende da resolução da issue: #4

Feat - Edição da atividade do usuário

Uma vez cadastrada uma atividade no banco de dados deve ser possível ao usuário fazer a edição dessa atividade.

Rota: PATCH /atividade?id=<atividade_id>

Para saber mais sobre o corpo da requisição, o tipo dessa e mais informações acesse a documentação dos constratos da API do HoCo.

Essa issue depende da resolução da issue: #4

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.