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. |