Desafio de desenvolvedor de pilha completa do UNTOP
Declaração de problemas
- Existem 80 assentos no treinador de um trem com apenas 7 assentos seguidos e a última fila de apenas 3 assentos. Por simplicidade, há apenas um treinador neste trem.
- Uma pessoa pode reservar até 7 assentos por vez.
- Se a pessoa estiver reservando assentos, a prioridade será reservar -os em uma linha.
- Se os assentos não estiverem disponíveis em uma linha, a reserva deverá ser feita de tal maneira que os assentos próximos sejam reservados.
Solução
- O cenário do problema envolve um treinador de trem com 80 assentos, dispostos em linhas. Cada assento pode estar em um dos dois estados: vazio ('0') ou reservado ('1'). O status do assento é representado por uma sequência chamada "All_seats" com um comprimento de 80 .
- Para persistir o status do assento, a string "All_Seats" é armazenada em um banco de dados. Isso permite que o programa salve as alterações feitas nas reservas do assento.
- Lógica no código, a função ARESEATSAVALEBLE () verifica se uma determinada linha possui um bloco consecutivo de assentos vazios que podem acomodar um número específico de assentos. É preciso uma fileira de assentos ($ Row) e o número desejado de assentos a serem reservados ($ numSeats)
- A função ReserveSeats () é responsável por reservar assentos no treinador de trem. São necessários dois parâmetros: a matriz do treinador ($ Coach) e o número desejado de assentos a serem reservados ($ numSeats).
- Ao armazenar a string "All_seats" em um banco de dados, as reservas de assento podem ser persistidas em diferentes execuções de programas. Isso permite que o programa mantenha o status mais recente do assento, mesmo após reiniciar ou fechar o aplicativo.
Como executar o aplicativo
- Faça o download do zip do projeto do github [https://github.com/kunalpandharkar/unstop-challenge]
- Instale todas as dependências do projeto executando o comando
- Configure o arquivo de ambiente Copiar o arquivo * .env.example para .env na raiz do projeto.
- Atualize o arquivo .env com os detalhes de configuração apropriados (configurações de banco de dados etc.) para o seu ambiente local.
- Gerar uma chave de aplicativo:
- Inicie o servidor XAMPP. [MySQL]
- Executar migrações de banco de dados:
php artisan migrate:fresh
- * Muito importante: o semeador de banco de dados que insere a sequência com comprimento de 80 na tabela.
Arquivos usados no projeto
app/Http/Controllers/TicketBookingController
database/migrations/
database/seeders/TicketbookingSeeder
resources/views/welcome.blade.php
resources/views/ticket-info.blade.php
routes/web.php
Sobre mim
Desenvolvedor da Web de pilha completa, tendo uma experiência de desenvolver e implantar projetos bem -sucedidos de acordo com os requisitos e especificações do cliente, procurando um papel desafiador na organização respeitável para utilizar minhas habilidades
? Links