Skip to content

lucastsudaka/betalabs-arrayEnterprises

Repository files navigation

ArrayEnterprises back-end

Cenário

A empresa ArrayEnterprises solicitou o desenvolvimento de um sistema de comentários para um novo produto que estão lançando. Como trata-se de um sistema que será utilizado por outros agentes então deve ser feito obrigatoriamente via API com entradas e saídas no formato JSON. Esse sistema deve manter os dados dos usuários que comentarem.

Requisitos do sistema

Obrigatórios:

  • O sistema deverá gerenciar os usuários, permitindo-os se cadastrar e editar seu cadastro;
  • O sistema poderá autenticar o usuário através do e-mail e senha do usuário e, nas outras requisições, utilizar apenas um token de identificação;
  • O sistema deverá retornar comentários a todos que o acessarem, porém deverá permitir inserir comentários apenas a usuários autenticados;
  • O sistema deverá retornar qual é o autor do comentário e dia e horário da postagem;
  • O sistema não deverá possuir número mínimo de comentário por usuário.

Desejáveis:

  • O sistema deverá permitir o usuário editar os próprios comentários (exibindo a data de criação do comentário e data da última edição);
  • O sistema deverá possuir histórico de edições do comentário;
  • O sistema deverá permitir o usuário excluir os próprios comentários;
  • O sistema deverá possuir um usuário administrador que pode excluir todos os comentários;
  • O sistema deverá criptografar a senha do usuário;
  • O sistema deverá permitir o usuário fazer o upload de uma foto de perfil e exibi-la nos comentários desse usuário.

Instalação

Configure o arquivo .env de acordo com o DB Mysql/Mariadb que deseja utilizar

Utilize a collation "utf8mb4_unicode_ci"

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=arrayenterprises
DB_USERNAME=root
DB_PASSWORD=

Instale as dependências:
composer install
Execute os comandos do Artisan:
php artisan migrate // tabelas necessárias para o funcionamento
php artisan passport:install // para os tokens internos do laravel passport
php artisan db:seed --class=RoleTableSeeder // gerar as roles de permissões e usuário 'admin'.

Opcional:

php artisan db:seed --class=UsersTableSeeder
Seed para criação de dados de exemplo total: "usuários" que possuem "comentários", estes já possuindo um "histórico de edição".

Uso

Com o Postman ou outro programa para teste de API:
Realizar cadastro em public/api/v1/auth/register , um bearer token será retornado, este é necessário para as ações que requerem login.

Usuário ADMIN (gerado automaticamente):

"email": "admin@mail.com",
"password": "admin"

Incompleto

O suporte a UUID foi adicionado como extra, apenas para demonstração.
Completar validação de sessão (autenticação), funcionando parcialmente .
Testes de unidade

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published