Coder Social home page Coder Social logo

canil-woof's Introduction

Canil Woof

homepage

O Sistema Canil Woof é uma aplicação web desenvolvida para auxiliar os usuários a encontrarem o melhor petshop para suas necessidades com base na data, quantidade de cães pequenos e quantidade de cães grandes.

Tecnologias

backend

frontend

Como instalar

Pre requisitos:

Backend

Após clonar o projeto, vá para o diretório api que contém o arquivo pom.xml e utilize o seguinte comando: Ou deixe sua IDE instalar as dependências.

mvn install

Quando terminar, é só inicializar o projeto com a ajuda da IDE ou com o seguinte comando:

mvn spring-boot:run

a api estará na porta: 8080

Pelo Dockerfile

Para utilizar o docker é necessário instalar o docker.

No diretório da api que contém o arquivo dockerfile utilize o seguinte comando:

docker build . -t 'alexi/canil-woof'

Depois que o processo terminar, utilize o comando a baixo para iniciar a api.

porta: 8080

docker run -p 8080:8080 alexi/canil-woof

Frontend

Após clonar o projeto, vá para o diretório web que contém o arquivo package.json e rode o seguinte comando:

npm install

Quando terminar, é só inicializar o projeto com o seguinte comando:

npm run dev

o site estará na porta: 5173

Premissas

  • Não foi considerado a funcioalide de login
  • O Sistema é apenas para escolher o petshop, por isso não será densenvolvido a parte de agendamento
  • O usuário deverá informar os dados: data, quantidade de cães pequenos e quantidade cães grandes
  • As quantidades de cada tipo de cães não podem ser menor que 0
  • Só pode retornar um petshop, sendo que o critério de desempate será a distância da loja até o canil

Decisões de projeto

  • Os petshops são armazenados em um banco em memória - H2 console - populado na inicialização do projeto
  • O backend deve seguir o padrão REST
  • Os testes unitários serão voltados para o backend
  • As validações de campos serão feitas no frontend
  • Como a solução em força bruta é da ordem O(n), ela foi adota como solução da escolha do Petshop

Testes

Foi desenvolvido testes unitários para a funcionalide de escolha do petshop com auxílio do Mockito para mocar o retorno do banco de dados.

Os casos de teste foram:

Motivo Entrada Saída
controle data: 08/05/2024 - nº de cães pequenos: 1 - nº de cães grandes: 0 PetShop escolhido: Vai Rex
controle data: 08/05/2024 - nº de cães pequenos: 1 - nº de cães grandes: 2 PetShop escolhido: Meu Canino Feliz
Dia não útil data: 11/05/2024 - nº de cães pequenos: 0 - nº de cães grandes: 1 PetShop escolhido: ChowChawgas
Critério de desempate data: 08/05/2024 - nº de cães pequenos: 2 - nº de cães grandes: 1 PetShop escolhido: Vai Rex

canil-woof's People

Contributors

arthuralexi avatar

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.