Git Product home page Git Product logo

minnemi-back's Introduction

PhP version License

Sobre o repositório

Esta API desenvolvida em PHP permite autenticar usuários, registrar cartas e controlar as permissões dos mesmos. Essa API é projetada para a aplicação frontend que necessita de um sistema de autenticação seguro e deseja oferecer aos usuários a funcionalidade de criar e armazenar cartas para serem enviadas em momentos posteriores.

Clonando e executando aplicação

⚠ Regras:

  • Toda pull-request deve conter uma issue!

📝 Requisitos:

Siga essas etapas

  1. Faça o fork do repositório minnemi-back
  2. Agora você pode clonar o projeto no seu ambiente de desenvolvimento com o comando:
# Substitua [username] pelo seu nome de usuário no GitHub
$ git clone https://github.com/[username]/minnemi-back.git
  1. Acesse a pasta gerada:
$ cd ./minnemi-back
  1. Crie um arquivo .env com base no .env.example disponível na raiz do projeto. Você pode usar o seguinte comando para criar uma cópia:
$ cp .env.example .env
  1. Agora verifique se o Docker já está rodando na sua máquina
  2. Vamos iniciar o Docker da aplicação, isso realizará todas as instalações necessárias:
docker-compose build
docker-compose up -d
  1. Verifique no navegador se a aplicação está rodando na porta local 80, use o link:
$ http://localhost:80/

🎊 Congratulations!

Agora é só encontrar ou abrir novas ISSUES para resolver.


Conheça nosso FLOW completo 🌻 FLOW Minnemi;

minnemi-back's People

Contributors

hugollemos avatar arraysarrais avatar hugoversiani avatar viniciuscosmome avatar dropedev avatar fabinhoizzy avatar

Watchers

Johnny Seabra avatar

minnemi-back's Issues

[resource] - insert letter

Descrição

A API deve submeter/armazenar uma carta no bando de dados através de uma método POST.

Requisitos:

  • Todos os campos da tabela Letters devem ser preenchidos;
  • Quando algum campo estiver vazio a API deve retornar um código de erro (estarei especificando o padrão de código de erros abaixo);
  • Se tudo estiver certo, a API devera retornar sucess = true;
  • O campo "recipient_email" na tabela de letters, deverá ser preenchido com o próprio e-mail do usuário.
  • Os campos read e received deverão por padrão serem igual a 0.
  • O campo "visibility_type_id" deverá por padrão corresponder ao ID "private" da tabela "visibililty_type".
  • As mensagens de erro deverão ser em portugues ou em ingles a depender do idioma enviado na requisição.

[resource] - insert draft

Descrição

A API deve submeter/armazenar uma carta no bando de dados através de uma método POST, na tabela DRAFTS.

Requisitos:

Todos os campos da tabela Drafts devem ser preenchidos;
Quando algum campo estiver vazio a API deve retornar um código de erro (estarei especificando o padrão de código de erros abaixo);
Se tudo estiver certo, a API devera retornar success = true;

[resource] - migration letter

Image

Modificação de migration

Já existe uma migration "letter", deve-se modificar com as especificações da imagem acima.

Requisitos:

  • Deve-se modificar com as especificações da imagem acima;

  • Nenhum dos campos devem aceitar valores nulos (manter como "not null");

  • Deve haver uma chave estrangeira (1:N) em user_id;

  • Deve haver uma chave (1:1) em visibility_id;

  • Obs: os campos "updated" e "created" vem da função Timestamps() do Laravel.

[resource] - Autenticação JWT

Implementar autenticação JWT. Esta autenticação deve possuir os métodos abaixo:

  • Login
  • Resgatar usuário
  • Resgatar payload JWT
  • Invalidar token

Considerar a tabela "credentials" para checar as credenciais enviadas na request.

Migration de Carta

Criar uma migration para gerar uma tabela com o nome "Letter". Com os campos:

  • id;
  • user_id;
  • letter_title;
  • letter
  • visibility(publica ou não);
  • date_to_send;
  • datetime/timestamps.

A relação com a tabela usuários sera de 1:N. (Um usuário pode escrever N cartas)

[resource] - migration visibility_type

Image

Criação de migration

Deve-se criar uma migration com as especificações da imagem acima.

Requisitos:

  • Deve-se criar com as especificações da imagem acima;
  • Nenhum dos campos devem aceitar valores nulos (manter como "not null");
  • Deve haver dois dados inseridos:
id |  type
---------
1  |  public
2  |  private

Obs: os campos "updated" e "created" vem da função Timestamps() do Laravel.

[test] - api automated tests

Escrever feature tests automatizados para:

  • endpoint de login
  • endpoint de logout
  • endpoint para criação de carta
  • funcionalidade de suporte a múltiplas linguagens nas respostas de validação da api

[resource] - migration credential

Image

Criação de migration

Deve-se criar uma migration com as especificações da imagem acima.

Requisitos:

  • Deve-se criar com as especificações da imagem acima;
  • Nenhum dos campos devem aceitar valores nulos (manter como "not null");
  • Deve haver uma chave (1:1) em user_id

Obs: os campos "updated" e "created" vem da função Timestamps() do Laravel.

[resource] - migration draft

Image

Criação de migration

Deve-se criar uma migration com as especificações da imagem acima.

Requisitos:

  • Deve-se criar com as especificações da imagem acima;
  • Nenhum dos campos devem aceitar valores nulos (manter como "not null");
  • Deve haver uma chave (1:N) em user_id

Obs: os campos "updated" e "created" vem da função Timestamps() do Laravel.

[resource] - migration user

Image

Modificação de migration

Já existe uma migration padrão "user" do Laravel, deve-se modificar com as especificações da imagem acima.

Requisitos:

  • Deve-se modificar com as especificações da imagem acima;
  • Nenhum dos campos devem aceitar valores nulos (manter como "not null");
  • O campo profile_picture deve ter um valor default chamado "default.png".

Obs: os campos "updated" e "created" vem da função Timestamps() do Laravel.

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.