Este codigo representa a minha solução do teste proposto pela GoWork
Coplace é uma aplicação para gerenciamento de clientes de coworking desenvolvida como resolução ao teste para a vaga de fullstack na empresa GoWork, desenvolvida com React para o front-end e duas versões para o back-end, uma em PHP com Laravel e outra em NodeJS e Express.
Ambas versões do projeto para backend foram desenvolvidas seguindo os princípios de TDD. 👮🏻♂️
A aplicação hoje contempla:
✅ Cadastro de Usuários
✅ Autenticação de usuários através de email e senha
✅ Cadastro de Unidades (Escritorios)
Foi criado o endpoint
/offices
onde o usuário pode consumir os dados das unidades já disponíveis e também cadastrar novas unidades.
✅ Cadastro de Planos de Coworking, contendo Nome do Plano, Valor Mensal
Foi criado o endpoint
/plans
onde o usuário realiza a gestão dos planos oferecidos pela empresa.
✅ Cadastro de Clientes (Pessoa Fisica e Juridica) vinculado com Plano Contratado e Unidade
Foi criado o endpoint
/customers
onde o usuário poderá listar seus clientes atuais e também adicionar novos.
✅ Cadastro de Funcionarios do Cliente/Pessoas que podem usar o Coworking
Foi criado o endpoint
/employees
onde o usuário realizará a gestão de funcionários de seus clientes.
Esse projeto foi desenvolvido com:
- PHP
- Laravel
Faça um clone desse repositório
- Execute
composer install
para instalar o composer; - Execute
cp .env.example .env
e preencha o arquivo.env
com suas variáveis ambiente; - Execute
php artisan key:generate
para gerar uma nova key. - Execute
php artisan jwt:secret
para gerar uma nova key JWT. - Execute
php artisan migrate
para executar as migrations do banco de dados. - Execute
php artisan storage:link
para criar um link público pasta storage (armazenamento de arquivos feito por upload).
Testes
- Execute
php artisian test
Realiza a autenticação do usuário administrador
Params Query Body Response null
null
application/json
application/json
Realiza a listagem de unidades/escritórios
Params | Query | Body | Response |
---|---|---|---|
null |
null |
null |
application/json |
Realiza o cadastramento de unidade/escritório
Params | Query | Body | Response |
---|---|---|---|
null |
null |
application/json |
application/json |
Realiza a listagem de planos
Params | Query | Body | Response |
---|---|---|---|
null |
null |
null |
application/json |
Realiza o cadastramento de planos
Params | Query | Body | Response |
---|---|---|---|
null |
null |
application/json |
application/json |
Realiza a listagem de clientes
Params | Query | Body | Response |
---|---|---|---|
null |
null |
null |
application/json |
Realiza o cadastramento de clientes
Params | Query | Body | Response |
---|---|---|---|
null |
null |
application/json |
application/json |
Realiza a listagem de funcionários de um cliente
Params | Query | Body | Response |
---|---|---|---|
null |
ID do cliente |
null |
application/json |
Realiza o cadastramento de um funcionário
Params | Query | Body | Response |
---|---|---|---|
null |
null |
application/json |
application/json |
Realiza o upload de um arquivo
Params | Query | Body | Response |
---|---|---|---|
null |
null |
multipart/form-data |
application/json |
Unidades
- Deleter unidade
- Editar unidade
Planos
- Deleter unidade
- Editar unidade
Clientes
- Deleter unidade
- Editar unidade
Funcionários
- Deleter unidade
- Editar unidade