• Sistema para controle de filas

Sistema para controle de filas#

Avaliação:#

Este projeto deve ser feito pelo Git/Github individualmente.

Você deve enviar commits periodicamente e o professor fará checks regulares em sala de aula.

Calendário:

  • 23/09 - Github clonado com commits seus, consegue rodar o código base

  • 30/09 - Views, templates e rotas partes 1 e 2

O link para a atividade no Github Classroom é este: https://classroom.github.com/a/uStr7XWc

Não será fornecido nenhum código de base. Você deve implementar o sistema desde o início.

Descrição#

Sua equipe foi contrada para desenvolver um sistema de controle de filas de agências do correio. Depois de uma sessão de ideação com os principais envolvidos no projeto, tem-se a seguinte lista inicial de requisitos:

  • Eu como administrador da fila quero cadastrar tipos de fila (ex: geral, devolução de produtos, produtos grandes);
  • Eu como cliente quero colocar meu nome em uma fila;
  • Eu como cliente quero colocar meu nome em uma fila como atendimento prioritário (ex: checkbox);
  • Eu como administrador da fila quero chamar o próximo cliente de uma fila específica (não pode usar o Django Admin);
  • Eu como administrador da fila quero chamar o próximo cliente com atendimento prioritário de uma fila específica;

Para simplificar o desenvolvimento, vamos utilizar apenas um usuário, que realizará as ações do adminstrador e do cliente.

Setup do ambiente#

Faça o download do projeto em branco, descompacte o projeto e abra o mesmo no VSCode.

Codificação da camada de persistência#

Seu projeto deve definir no mínimo as classes TipoDeFila e LugarNaFila.

Restrições:

  • O tipo de fila deve conter um nome e uma descrição;
  • O lugar na fila deve estar obrigatoriamente associado a um tipo de fila;
  • O lugar na fila deve conter o nome do cliente e um indicador se é prioritário ou não.

Views, Templates e Rotas#

Implemente as views, templates e rotas necessárias que atendam às histórias de usuário. As seguintes páginas devem ser implementadas (se você preferir, mais do que uma funcionalidade pode ser implementada na mesma página):

  • Formulário de cadastro/edição de tipos de fila na página de admin (Django Admin);
  • Formulário de entrada na fila:
    • Alguma forma para indicar qual é a fila (pode ser um formulário por tipo de fila, se preferir);
    • Campo para o nome do cliente;
    • Alguma forma para indicar que o cliente tem atendimento prioritário.
  • Visualização das filas:
    • Os nomes devem ser apresentados na ordem da fila;
    • Deve ser possível identificar quais são os clientes com atendimento prioritário.
  • Formulário de chamada do próximo cliente:
    • Alguma forma para indicar qual é a fila;
    • Alguma forma para escolher se é para chamar um cliente com atendimento prioritário ou não (note que se o próximo cliente da fila também for de atendimento prioritário, isso não faz diferença);
    • O cliente deve ser removido da fila.

Rubrica do Micro Projeto Web - Competência de Projeto 2#

Conceito Descrição
I Implementou no máximo uma história de usuário completa ou Github sem código.
D Implementou até 2 histórias de usuário.
Ou não conseguiu fazer funcionar.
C Implementou até 4 histórias de usuário.
B Implementou todas as histórias de usuário.
A Atende a todas as histórias de usuário sem usar admin pages e com customização do frontend usando técnicas de CSS e alterando o HTML.