/prepara-todos-best-dev

Projeto de teste para a vaga da prepara todos

Primary LanguagePHP

License

Prévia da aplicação

Link da aplicação em produção (Funcionando apenas no firefox)

Teste prepara

Credenciais

Login: admin@gmail.com
Senha: 123456

Sobre

A empresa prepara todos está em busca de novos desenvolvedores para o seu processo seletivo, e por conta da demanda de filtrar perfis de devs, foi desenvolvido esse sistema para ajudar nesse fluxo. A aplicação basicamente faz o uso do github para pegar esses perfils de desenvolvedores e apartir disso guardar em sua base os perfils. Além disso, a aplicação conta com todo um sistema de gerenciamento de usuário, onde o usuário com permissão de administrador, pode criar outros usuários e os gerenciar para ter mais agilidade no processo.

  • O usuário admin pode Ver/Cadastrar/Atualizar e apagar outros usuários
  • O usuário atendente pode atualizar suas informações
  • O usuário admin pode atualizar suas informações
  • O usuário atendente pode ver a listagem de devs
  • O usuário atendente pode fazer votação no perfil do dev
  • Um dev só pode receber uma votação
  • A listagem são os 500 primeiros devs do github
  • Os perfis disponíveis para voto são RUIM, BOM, MUITO BOM
  • Há uma listagem de devs que já receberam votação
  • Na listagem de devs que já receberam votação há um filtro por perfil de usuário

Tecnologias usadas

Pré requisitos

Esse projeto está previsto para ser executado em ambientes UNIX (Linux ou Mac), ficará como trabalho futuro a configuração em ambientes windows.

  • Servidor web apache
$ sudo apt install apache2
  • Banco de dados MySQL
$ sudo apt install mysql-server
  • Composer (Gerenciador de componentes do PHP)
$ sudo apt install composer
  • PHP e bibliotecas necessárias
sudo apt install php libapache2-mod-php php-mbstring php-xmlrpc php-soap php-gd php-xml php-cli php-zip php-bcmath php-tokenizer php-json php-pear

Lembrando que a versão do PHP e de seus pacotes deve ser PHP 7.3+

Configuração de banco de dados

  • Crie uma base de dados chamada "prepara" sendo com colação de utf_8_general_ci. (Caso esteja em algum interpretador de SQL pode usar o seguinte comando)
CREATE DATABASE prepara;
  • Copie o seu arquivo .env.example com o nome de .env
  • Configure o seu arquivo .env localizado na raiz do projeto com as suas credenciais de banco de dados

  • Depois disso você pode rodar as migrações com o comando
php artisan migrate

Configuração do github

  • Para autenticar a aplicação no github você deve fornecer seu usuário e token no arquivo .env
  • Coloque as duas seguintes variáveis no seu .env e coloque os dados
GITHUB_API_TOKEN=token
GITHUB_USER=usergithub

  • O seu user do github é o que tem após github.com

  • Para pegar o seu token do github basta seguir esse link

Executando o projeto

  • Dentro da raiz do projeto, execute o seguinte comando para puxar as dependências composer, caso necessite.
$ composer install
  • Ainda dentro da raiz do projeto, execute o seguinte comando para iniciar o servidor da aplicação:

  • Agora você pode rodar um seed que vai criar 1 usuário admin e 10 usuários atendentes:
    login admin: admin@gmail.com
    senha: 123456

php artisan db:seed

Agora você pode rodar o projeto

$ php artisan serve
  • Esse comando irá abrir um servidor em localhost na porta 8000
  • Caso você queria abrir em alguma porta de sua preferência execute o seguinte comando
$ php artisan serve --host localhost:porta

Testes

  • O Laravel já vem por padrão equipado com o PHPUnit que é o componente para testes mais conhecido do PHP.

  • Para esta aplicação foram feitos alguns testes de integração.

  • Estes ficam localizados na pasta tests que fica na raiz do projeto.

  • Para rodar os testes execute o seguinte comando na raiz do projeto:

 $ php artisan test

Autor



Jefferson C. Severo

Feito com ❤️ por Jefferson Severo 👋🏽 Entre em contato!

Linkedin Badge Gmail Badge