Restaurante Little4
Sistema de reservas de restaurantes do TEAM4
Confira no site
(Se o servidor web for desligado, a conexão não será estabelecida.)
Departamento de IA e Engenharia da Computação da Universidade Kyonggi
Professor Kihyun Kwon 2021-1 Engenharia de Software Artigo 4
Desenvolvedores Team4
- Canção Seong-ho (201713866)
github@ssh10032
- Joohyun Yoon (201713919)
github@gabrieloon7
- Kim Woo-jung (201912039)
github@Kimwoojung11
- Choi Ye Seul (201912149)
github@yeseul9231
- Subin Heo (201912161)
github@heo5620
História
- 2021.06.06
- [Joohyun Yoon] Parte da classe TEST foi criada, bug de lista de espera corrigido descoberto
- [Heo Soo-bin] Melhoria de design
- [Choi Ye-seul] Modificação de design
- [Kim Woo-joong] Bug de modificação de reserva corrigido, aula de TESTE concluída
- 2021.06.05
- [Song Seong-ho] Modificação da função de exclusão de conclusão de reserva
- [Heo Soo-bin] Modificação de design
- [Choi Ye-seul] Modificação de design
- [Kim Woo-joong] Corrigir bugs em funções relacionadas à programação
- [Joohyun Yoon] Resolveu o problema de não ser possível verificar os registros de chegada no customerManager
- 2021.06.04
- [Woojoong Kim] Adicionada função de ponto
- [Joohyun Yoon] Adicionada função de verificação semanal de estatísticas, registro de associação duplicado limitado, bugs relacionados corrigidos
- 2021.06.03
- [Heo Soo-bin] Design aprimorado, diretrizes adicionadas
- [Song Seong-ho] Tabela DAO, adicionar DTO, excluir tabela, implementar funções adicionais
- [Joohyun Yoon] Adicionada função de chegada, adicionada entrada de temperatura, funções vinculadas relacionadas à mesa e adicionada consulta de questionário COVID-19 (gerenciamento de loja)
- 2021.06.02
- [Kim Woo-jung] Converter lista de espera em modal, adicionar funções de entrada, edição de reserva e exclusão
- [Song Seong-ho] CovidLogDTO, DAO adicionado campo de entrada de temperatura corporal da janela modal adicionado
- [Joohyun Yoon] Vinculando o banco de dados às estatísticas (vendas diárias), melhorando erros de tabela, resolvendo erros de data que ocorrem ao vincular a servidores
- 2021.06.01
- [Kim Woo-jung] Adicionar tabela de lista de espera e implementar função de tabela
- [Choi Ye-seul] Editar barra de menu, rascunho da página de estatísticas
- [Heo Soo-bin] Melhoria de design, criação de layout de página de estatísticas
- [Joohyun Yoon] Altere o modal para responder ao clicar no conteúdo da tabela de agendamento
- 2021.05.31
- [Kim Woo-joong] Função adicional do banco de dados da lista de espera
- 2021.05.30
- [Joohyun Yoon] Conectando várias informações ao userReservationInfo
- 2021.05.29
- [Heo Soo-bin] Design aprimorado e layout userReservationInfo aprimorado
- [Joohyun Yoon] Bugs de solicitação de reserva e conexão de banco de dados completamente corrigidos na página userManager
- 2021.05.28
- [Choi Ye-seul] Adicionado banco de dados de bebidas, classificação de página aprimorada ao fazer pedidos
- [Heo Soo-bin] Editar cabeçalho para hóspedes, adicionar layout de página de consulta de reserva
- [Kim Woo-jung] Adicionada saída de dados WalkIn e WalkIn, função de prevenção de duplicação de reserva
- [Joohyun Yoon] Bugs de tabela de bootstrap completamente corrigidos, função de atribuição automática de tabela de reserva adicionada
- 2021.05.27
- [Heo Soo-bin] Notificações de aviso aprimoradas
- [Kim Woo-jung] Saída da tabela de páginas do CustomerManager
- [Joohyun Yoon] Ative o botão de visualização do menu (implementação da impressão de uma única página de informações do menu), adicione função de impressão por tipo de menu, adicione função de impressão programada por data
- 2021.05.26
- [Song Seong-ho] Editar passagem de data do método ReservationDAO addReservation
- [Joohyun Yoon] Correção de bug do BootstrapTable e ativação de função
- 2021.05.25
- [Heo Soo-bin] Renovou completamente vários designs
- [Kim Woo-jung] Implementação do botão walkIn na página customerManager
- 2021.05.23
- [Choi Ye-seul] Link modal para a página WalkIn, link da imagem para a página Packing
- [Joohyun Yoon] Correções de bugs modais e layout, funções relacionadas a solicitação de reserva restringem o acesso a usuários não logados
- 2021.05.22
- [Kim Woo-joong] Layout concluído e conectado com sucesso para receber lista de solicitações do customerManager
- [Joohyun Yoon] Layout aprimorado para que a tabela de agendamento seja desenhada automaticamente no customerManager, corrigidos erros relacionados ao ReservationRequest
- [Song Seong-ho] Implementou uma função (completeReservationRequest) que envia dados de solicitação de reserva de jsp para Ajaxaction, adicionou case de instrução de case bookingRequest case para AjaxAction
- 2021.05.21
- [Joohyun Yoon] Adicionada a capacidade de passar informações e exibir informações de login para Reserva
- [Song Seong-ho] Modificar tabela de banco de dados ReservationRequest (excluir table_id, ArrivalTime, adicionar mensagem, modificar layout de informações de reserva
- [Choi Ye-seul] Editar informações de reserva
- 2021.05.20
- [Todos] Nome do projeto alterado para Restaurante Little4
- [Song Seong-ho] Adicionado ReservationDTO, adicionado método ReservationDAO para enviar dados de reserva do cliente ao banco de dados (addReservationRequest), adicionado solicitação de reserva do cliente do banco de dados (ReservationRequest) TABLE
- 2021.05.19
- [Kim Woo-joong] Criação de página de gerenciamento de tabela
- 2021.05.16
- [Heo Soo-bin] Menu DB e revisão de imagem
- [Joohyun Yoon] Adicionada a capacidade de pular datas na página de reserva, implementadas algumas funções de clique (precisa de melhorias)
- [Kim Woo-joong] Produção da página de conclusão de pagamento e página de gerenciamento de retirada (incluindo vinculação ao banco de dados)
- 2021.05.15
- [Choi Ye-seul] Adicionado layout de página de consulta de cronograma
- [Joohyun Yoon] Vinculando imagens à tela do menu
- 2021.05.14
- [Kim Woo-joong] Criando uma página de conclusão de pagamento
- [Heo Soo-bin] Criando um rodapé que passa da página Embalagem para a Cesta, criando uma página de pedido/pagamento, fixando a barra inferior e editando a postagem superior
- [Choi Ye-seul] Layout da página de reserva e tela de conclusão da reserva adicionados
- [Joohyun Yoon] Adicionada função de carrinho de compras no Packing (implementação da produção total da tela de pagamento passando pelo banco de dados), criado processo de passagem do banco de dados do carrinho de compras para a tela de conclusão do pagamento, adicionada página de erro e lógica para evitar erros
- 2021.05.13
- [Song Seong-ho] Integração da página de reservas
- [Kim Woo-joong] Vinculando páginas de embalagem e cesta
- 2021.05.12
- [Choi Ye-seul] Criação de página de marca
- [Todos] Criação de página de menu e vinculação de banco de dados / Melhoria de algumas estruturas de banco de dados / Adição de função de gerenciamento de lista negra
- 2021.05.11
- [Joohyun Yoon] Depois de construir um ambiente com ubuntu20.04 LTS, Tomcat9.0, mariaDB e openJDK14 no PC do servidor, o upload do servidor foi concluído. (Para ser usado durante o período de apresentação e avaliação)
- 2021.05.10
- [Joohyun Yoon] Adicionada função de registro de membro / Adicionada página e funções de administrador
- 2021.05.08
- [Choi Ye-seul] Design de cabeçalho aprimorado/Rodapé adicionado/Controle deslizante de imagem adicionado
- [Joohyun Yoon] Adicionada função de logout/Introduzido bootstrap
- 2021.05.07
- [Joohyun Yoon] Adicionada função de login/tabela de usuário adicionada, cabeçalho temporário criado
- 2021.05.06
- [Song Seong-ho] Atualização da estrutura do banco de dados de acordo com os resultados da reunião
- 2021.05.05
- [Todos] Mudança de Spring para JSP
- [Joohyun Yoon] Construa um projeto JSP com Java ee e Tomcat, insira a estrutura básica, rascunho do README
Regras de desenvolvimento de projetos
- Puxe primeiro ao usar o Github
- Anote comentários e envie mensagens com cuidado
- Escreva os nomes das variáveis com o máximo de detalhes possível.
- Lide com variáveis tanto quanto possível
- Se você não sabe ou está travado, discuta
- Esteja interessado e participe fora da sua área
- Tente modificá-lo primeiro (se não funcionar, você pode usar a função Rollback)
O que mais poderia haver?
Estrutura do Projeto
Vídeo de análise da estrutura do projeto
https://drive.google.com/file/d/1lWJpXaAh7shmv10t9AoQUbhHaI2ocUy0/view?usp=sharing
.ideia
Configurações relacionadas ao IntelliJ
Como o ambiente de cada computador é diferente, muitas vezes isso é corrigido automaticamente. Se possível, não envie para o github.
biblioteca
Esta é uma pasta que contém bibliotecas externas (*.jar) usadas em projetos Java. Para utilizar uma classe específica é necessária a biblioteca correspondente e, se adicionada, deve ser registrada no compilador.
fora
Esta é a pasta executável exclusiva do IntelliJ criada durante a compilação. Ele é inicializado toda vez que você executa o servidor. É possível que o erro tenha ocorrido em outro computador. Durante a compilação, todos os arquivos são enviados para a pasta out e funcionarão a partir desta pasta.
Nunca envie para o Github. Podem ocorrer erros.
fonte
Responsável pelo servidor web. Escrito em Java.
- com.se.team4
- aplicativo
Este pacote foi projetado para ser aplicado em uma estrutura o mais semelhante possível ao programa booksys ministrado pelo professor.
domínio
Esta é a parte do controlador. Normalmente, um controlador é solicitado ao JSP e o DAO é chamado a partir dele.
A parte que solicita o Controlador é mencionada novamente no WEB-INF.
//domain 코드 예시
public class TestAction implements Action {
@ Override
public String execute ( HttpServletRequest request , HttpServletResponse response ) throws Exception {
Gson gson = new Gson ();
request . setAttribute ( "getSomething" , gson . toJson ( TestDAO . getInstance (). getSomething ( 1 )));
return "RequestDispatcher:test.jsp" ;
}
}
- principal
Este é um Controlador relacionado à página inicial principal.
persistência
Esta é a parte do modelo. Contém classes para comunicação com MariaDB.
- D.A.O.
Estas são classes que escrevem diretamente instruções de consulta.
Acho que preciso pensar se devo enviar uma consulta para a classe Banco de Dados como o arquivo que o professor me deu.
>() {
}.getType());
return result;
}
}">
//DAO클래스 예시
public class TestDAO {
public static TestDAO it ;
public static TestDAO getInstance () { //인스턴스 생성
if ( it == null )
it = new TestDAO ();
return it ;
}
//테스트 메소드
public ArrayList < TestDTO > getSomething ( int num ) {
ArrayList < TestDTO > result = null ;
List < Map < String , Object >> list = null ;
Connection conn = Config . getInstance (). sqlLogin ();
try {
QueryRunner queryRunner = new QueryRunner ();
list = queryRunner . query ( conn , "SELECT * FROM customer WHERE oid=?" , new MapListHandler (), num );
} catch ( SQLException e ) {
e . printStackTrace ();
} finally {
DbUtils . closeQuietly ( conn );
}
Gson gson = new Gson ();
result = gson . fromJson ( gson . toJson ( list ), new TypeToken < List < TestDTO >>() {
}. getType ());
return result ;
}
}
- DTO
Esta é uma classe para carregar o banco de dados recebido do mariaDB em uma classe Java.
É conveniente pensar que existe um DTO por tabela do banco de dados.
public class TestDTO {
private String oid ;
private String name ;
private String phoneNumber ;
public String getOid () { return oid ;}
public void setOid ( String oid ) { this . oid = oid ;}
public String getName () { return name ;}
public void setName ( String name ) { this . name = name ;}
public String getPhoneNumber () { return phoneNumber ; }
public void setPhoneNumber ( String phoneNumber ) { this . phoneNumber = phoneNumber ;}
}
- comum
Estas são as classes que formam a estrutura deste projeto. Por favor, nunca edite.
Ao fazer alterações, certifique-se de compartilhar o motivo da revisão.
- controlador
- filtro
- índice
- SQL
rede
Responsável pela Visualização. Escrito em JSP.
- css
Esta é uma pasta contendo CSS para ser usado em JSP. (Bootstrap 5.0 incluído)
- js
Esta é uma pasta contendo js para ser usado em JSP (Bootstrap 5.0, JQuery incluído)
- WEB-INF
jsp
JSP solicita a classe de domínio no formato *.do.
O caminho no formato *.do pode ser encontrado em booksys.properties.
O banco de dados definido na classe de domínio anterior é recebido, processado em JS e depois inserido em HTML.
//앞선 설정으로 setAttribute 된 자바 변수를 JSP에서 받는 예시 (JQuery와 JSP문법을 사용하여 데이터를 가공한 후, id에 넘겨서 삽입함.)
< script >
$ ( document ) . ready ( function ( ) {
makeinfo1 ( ) ;
} )
function makeinfo1 ( ) {
var data = < %= getSomething % > ;
var list = $('#testDataPrinter');
var text = '';
text+= ' < div > '+'oid : '+data[0].oid+'/ name : '+data[0].name+'/ phoneNumber : '+data[0].phoneNumber+' div > ';
list.append(text);
}
script >
- comum
Coletamos JSPs comumente usados. ex) cabeçalho, rodapé
- página
Uma coleção de várias páginas básicas.
biblioteca
Me deparei com isso enquanto fazia um projeto, mas não sei o que é.
Como implantar
- Como instalar o IntelliJ
https://leirbag.tistory.com/50
- Como instalar o Tomcat
Consulte a seção 1 de https://leirbag.tistory.com/52
- Como instalar o mariaDB
https://leirbag.tistory.com/46
- Como aplicar db
https://leirbag.tistory.com/47
- Quando ocorre um erro de banco de dados no compilador
https://leirbag.tistory.com/48
- Como instalar clones e projetos
https://leirbag.tistory.com/56
Ferramentas
- IntelJ 2021.1
- Tomcat 9.0.45
- JSP
- MariaDB (esqueci a versão)
- DBUtils
- JavaEE
- Inicialização
- JQuery
- Ájax
Referências
- Crie um projeto JSP com IntelliJ
https://velog.io/@ruddms936/IntelliJ%EB%A1%9C-JSP-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83 %9D%EC%84%B1
- História de *.do
https://withthisclue.tistory.com/entry/JSP-%EC%9B%B9%ED%8E%98%EC%9D%B4%EC%A7%80%EC%97%90%EC% 84%9C-%EA%B6%81%EA%B8%88%ED%96%88%EB%8D%98-do-%ED%8C%8C%EC%9D%BC%EC%9D%98- %EC%9D%98%EB%AF%B8
- Classe de ação
https://m.blog.naver.com/PostView.nhn?blogId=eroicaplus&logNo=90029919122&proxyReferer=http:%2F%2F210.217.72.119%2F
- Servlets
https://themach.tistory.com/68
- Comparação entre Servlet e JSP
https://m.blog.naver.com/acornedu/221128616501