Skip to content

JoelMarSDS/remotecontroller

Repository files navigation

Projeto GAMA ACADEMY + ACCENTURE - DESAFIO FINAL 🚀

Team CusCuz com Java 😄

Team 👊

@DeMesquita

@SpinnerZ

@mgsoares2020

@JoelMarSDS

@lucaslfarias

Descrição do projeto 🎬

📌 Desenvolvemos um sistema de controle de habilidades e salários de uma emissora de TV, com as seguintes funcionalidades:

✔️ Cadastro de novo perfil de usuário (ator/atriz);

Login e logout admin (produtor) e de usuário (ator/atriz); (WIP)

✔️ Busca na qual um admin (produtor) pode colocar o número de profissionais que precisa, o gênero de sua obra, a data na qual precisará iniciar as gravações e o orçamento máximo, e receber uma indicação de quais atores e atrizes contratar que se encaixem nos requisitos

✔️ Possibilidade de reservar a data de um ator ou atriz e exibição de status;

✔️ Filtro por status e classificação por relevância e preço;

✔️ Alguns outros filtros úteis;

API 🔑

✔️ Spring boot com a seguintes dependências: Spring Data JPA, Spring Security, Spring Web.

✔️ Banco de dados: H2.

✔️ Ferramenta de gerenciamento de dependência de projeto: Gradle.

✔️ Para os tratamentos de exceções foi decidido usar uma abordagem centralizada. Foi inserido também uma customização para retornar o status https devido para o momento do erro.

Planning 📜

🏆 Divisão e priorização de tarefas.

🏆 Durante os dias de desenvolvimento utilizamos ferramentas como Github, Trello, Slack, XMind e Jitsi para para nos auxiliar.

🏆 Encontros todos os dias, onde discutíamos pendências, dificuldades e estratégias para as próximas tarefas. Após o encontro, retornávamos para nossas atividades e quando necessário, fazíamos pair programming.

🏆 Não definimos um scrum master para semana, todos acompanhávamos o desenvolvimento do projeto.

GitHub 📂

  • Mantivemos a main como branch principal.
  • Cada tarefa tinha que ser feita em nova branch, após a conclusão, era aberta a pull Request e um outro membro da equipe precisava aprovar, assim podendo "mergear" para a branch principal.

Requirements:

Para iniciar a API será necessário ter em sua máquina instalado a versão JDK11 e configurar as variáveis de ambiente.

Endpoints:

Atrizes

Criar atriz:

POST /actress/create

{
    "name": "Nome",
    "gender": "Gênero",
    "price": 0,
    "relevance": 0,
    "genre": "Gênero que atua",
    "status": true,
    "user": {
        "login": "login",
        "password": "senha"
    }
}

Listar todas as atrizes:

GET /actress/list

Consultar dados de uma atriz pelo id:

GET /actress/{id}

Atualizar dados de uma atriz:

PUT /actress/update/{id}

{
    "name": "Nome",
    "gender": "Gênero",
    "price": 0,
    "relevance": 0,
    "genre": "Gênero que atua",
    "status": true,
    "user": {
        "login": "login",
        "password": "senha"
    }
 }

Remover atriz:

DELETE /actress/delete?id=0

Filtros:

GET /actress/getByStatus?status=true

GET /actress/getMostRelevant

GET /actress/getLessRelevant

GET /actress/getMostExpensive

GET /actress/getLessExpensive

Produtores

Criar produtor:

POST /producer/create

{
    "name": "Nome",
    "user": {
        "login": "login",
        "password": "senha"
    }
}

Consultar dados de um produtor pelo id:

GET /producer/{id}

Atualizar dados de uma produtor:

PUT /producer/update/{id}

{
    "name": "Nome",
    "user": {
        "login": "login",
        "password": "senha"
    }
}

Remover produtor:

DELETE /producer/delete?id=0

Receber indicação de cast:

GET /producer/getCast?quantity=0&budget=0&genre=genero&date=2020-11-09

Reservas

Criar reserva:

POST /reserve/save/{idDaAtriz}

{
    "reserveDate": "2020-11-09",
    "producer": {
        "id": 0
    }
}

Listar todas as reservas:

GET /reserve/list

Atualizar reserva:

PUT /reserve/update/{idDaReserva}

{
    "reserveDate": "2020-11-09",
    "actress": {
    "id": 0
    },
    "producer": {
        "id": 0
    }
}

Deletar reserva:

DELETE /reserve/delete?id=0

Filtros:

GET /reserve/listByActress/{idDaAtriz}

GET /reserve/listByProducer/{idDoProdutor}

GET /reserve/countByProducer/{idDoProdutor}

GET /reserve/getMostReservedDatesByProducer/{idDoProdutor}

GET /reserve/getMostReservedActressesByProducer/{idDoProdutor}

Experiência:

As maiores dificuldades foram relacionadas à modelagem, divisão de tarefas e ordem de execução das atividades. Precisamos remodelar o projeto e redistribuir as entregas mais de uma vez.

E vimos que nossa maior produtividade e aprendizado foi utilizando pair programming. A troca de experiências, qualidade de código e até velocidade de desenvolvimento foram muito proveitosas com essa técnica.

A equipe foi bastante agradável e unida, proporcionando sempre um ambiente leve e bem humorado, onde cada um supriu a deficiência existente no outro. Não fomos muito independentes, mas bastante colaborativos!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages