Restaurant Little4
Système de réservation de restaurants de TEAM4
Vérifiez sur le site
(Si le serveur Web est arrêté, la connexion ne sera pas établie.)
Département d'IA et de génie informatique de l'Université Kyonggi
Professeur Kihyun Kwon 2021-1 Génie logiciel Article 4
Développeurs Team4
- Chanson Seong-ho (201713866)
github@ssh10032
- Joohyun Yoon (201713919)
github@gabrielyoon7
- Kim Woo-jung (201912039)
github@Kimwoojung11
- Choi Ye-seul (201912149)
github@yeseul9231
- Subin Heo (201912161)
github@heo5620
Histoire
- 2021.06.06
- [Joohyun Yoon] Création d'une partie de la classe TEST, correction d'un bug de liste d'attente découvert
- [Heo Soo-bin] Amélioration de la conception
- [Choi Ye-seul] Modification de la conception
- [Kim Woo-joong] Bug de modification de réservation corrigé, cours TEST terminé
- 2021.06.05
- [Song Seong-ho] Modification de la fonction de suppression de fin de réservation
- [Heo Soo-bin] Modification de la conception
- [Choi Ye-seul] Modification de la conception
- [Kim Woo-joong] Correction de bugs dans les fonctions liées à la planification
- [Joohyun Yoon] Résolution du problème de l'impossibilité de vérifier les enregistrements d'arrivée dans customerManager
- 2021.06.04
- [Woojoong Kim] Fonction de point ajoutée
- [Joohyun Yoon] Ajout d'une fonction de vérification des statistiques hebdomadaires, enregistrement limité des adhésions en double, correction de bugs associés
- 2021.06.03
- [Heo Soo-bin] Conception améliorée, directives ajoutées
- [Song Seong-ho] Table DAO, ajouter DTO, supprimer la table, implémenter des fonctions supplémentaires
- [Joohyun Yoon] Ajout de la fonction d'arrivée, ajout de la saisie de la température, fonctions liées aux tables liées et ajout d'une demande de questionnaire COVID-19 (gestion du magasin)
- 2021.06.02
- [Kim Woo-jung] Convertir la liste d'attente en modale, ajouter des fonctions de visite sans rendez-vous, de modification et de suppression de réservation
- [Song Seong-ho] CovidLogDTO, DAO ajouté Champ de saisie de la température corporelle de la fenêtre modale ajouté
- [Joohyun Yoon] Liaison de la base de données aux statistiques (ventes quotidiennes), amélioration des erreurs de table, résolution des erreurs de date qui se produisent lors de la liaison aux serveurs
- 2021.06.01
- [Kim Woo-jung] Ajouter une table de liste d'attente et implémenter une fonction de table
- [Choi Ye-seul] Modifier la barre de menu, page de statistiques de brouillon
- [Heo Soo-bin] Amélioration de la conception, création de la mise en page des statistiques
- [Joohyun Yoon] Changez le modal pour répondre lorsque vous cliquez sur le contenu du tableau de planification
- 2021.05.31
- [Kim Woo-joong] Fonction supplémentaire de la base de données sur la liste d'attente
- 30/05/2021
- [Joohyun Yoon] Connexion de diverses informations à userReservationInfo
- 2021.05.29
- [Heo Soo-bin] Conception améliorée et mise en page userReservationInfo améliorée
- [Joohyun Yoon] Correction complète des bugs de connexion à la base de données et de réservationRequest sur la page userManager
- 2021.05.28
- [Choi Ye-seul] Ajout de la base de données sur les boissons, amélioration de la classification des pages lors de la commande
- [Heo Soo-bin] Modifier l'en-tête pour les invités, ajouter la mise en page de la demande de réservation
- [Kim Woo-jung] Ajout de la sortie de données WalkIn et de WalkIn, fonction de prévention de la duplication des réservations
- [Joohyun Yoon] Bugs de la table d'amorçage entièrement corrigés, fonction d'affectation automatique de la table de réservation ajoutée
- 2021.05.27
- [Heo Soo-bin] Notifications d'avertissement améliorées
- [Kim Woo-jung] Sortie du tableau de pages CustomerManager
- [Joohyun Yoon] Activer le bouton d'affichage du menu (implémentation de l'impression d'une seule page d'informations de menu), ajouter une fonction d'impression par type de menu, ajouter une fonction d'impression programmée par date
- 2021.05.26
- [Song Seong-ho] Modifier la date de la méthode addReservation de ReservationDAO
- [Joohyun Yoon] Correction d'un bug de BootstrapTable et activation de la fonction
- 2021.05.25
- [Heo Soo-bin] Divers designs complètement repensés
- [Kim Woo-jung] Implémentation du bouton walkIn sur la page customerManager
- 2021.05.23
- [Choi Ye-seul] Lien modal vers la page WalkIn, lien vers l'image vers la page Emballage
- [Joohyun Yoon] Corrections de bugs modaux et mise en page, les fonctions liées aux demandes de réservation restreignent l'accès aux utilisateurs non connectés
- 2021.05.22
- [Kim Woo-joong] Mise en page terminée et connectée avec succès pour recevoir la liste des demandes du customerManager
- [Joohyun Yoon] Mise en page améliorée afin que le tableau de planification soit automatiquement dessiné dans customerManager, correction des erreurs liées à ReservationRequest
- [Song Seong-ho] Implémentation d'une fonction (completeReservationRequest) qui envoie les données de demande de réservation de jsp à Ajaxaction, ajout de l'instruction de cas bookingRequest à AjaxAction
- 2021.05.21
- [Joohyun Yoon] Ajout de la possibilité de transmettre des informations et d'afficher les informations de connexion à la réservation
- [Song Seong-ho] Modifier la table de base de données ReservationRequest (supprimer table_id, ArrivalTime, ajouter un message, modifier la disposition des informations de réservation
- [Choi Ye-seul] Modifier les informations de réservation
- 2021.05.20
- [Tous] Le nom du projet a été modifié pour Little4 Restaurant
- [Song Seong-ho] Ajout de ReservationDTO, ajout de la méthode ReservationDAO pour envoyer les données de réservation client à la base de données (addReservationRequest), ajout de la demande de réservation client de la base de données (ReservationRequest) TABLE
- 2021.05.19
- [Kim Woo-joong] Création d'une page de gestion des tables
- 2021.05.16
- [Heo Soo-bin] Révision de la base de données du menu et des images
- [Joohyun Yoon] Ajout de la possibilité de sauter des dates sur la page de réservation, implémentation de certaines fonctions de clic (à améliorer)
- [Kim Woo-joong] Production de la page d'achèvement des paiements et de la page de gestion des retraits (y compris la liaison avec la base de données)
- 2021.05.15
- [Choi Ye-seul] Ajout de la mise en page de demande d'horaire
- [Joohyun Yoon] Lier les images à l'écran de menu
- 2021.05.14
- [Kim Woo-joong] Création d'une page d'achèvement de paiement
- [Heo Soo-bin] Création d'un pied de page qui passe de la page Emballage à la page Panier, création d'une page de commande/paiement, correction de la barre inférieure et modification du message supérieur
- [Choi Ye-seul] Mise en page de la page de réservation et écran de fin de réservation ajoutés
- [Joohyun Yoon] Ajout de la fonction de panier d'achat dans Packing (implémentation de la sortie totale de l'écran de paiement en passant la base de données), création d'un processus de passage de la base de données du panier à l'écran de fin de paiement, ajout d'une page d'erreur et d'une logique pour éviter les erreurs
- 2021.05.13
- [Song Seong-ho] Intégration de la page de réservation
- [Kim Woo-joong] Lier les pages d'emballage et de panier
- 2021.05.12
- [Choi Ye-seul] Création de page de marque
- [Tous] Création de pages de menu et liaison à la base de données / Amélioration de certaines structures de base de données / Ajout d'une fonction de gestion de liste noire
- 2021.05.11
- [Joohyun Yoon] Après avoir créé un environnement avec Ubuntu20.04 LTS, Tomcat9.0, mariaDB et openJDK14 sur le PC serveur, le téléchargement du serveur est terminé. (À utiliser pendant la période de présentation et d’évaluation)
- 2021.05.10
- [Joohyun Yoon] Ajout de la fonction d'enregistrement des membres / Ajout de la page et des fonctions de l'administrateur
- 2021.05.08
- [Choi Ye-seul] Conception d'en-tête améliorée/pied de page ajouté/curseur d'image ajouté
- [Joohyun Yoon] Ajout de la fonction de déconnexion/Introduit du bootstrap
- 2021.05.07
- [Joohyun Yoon] Ajout de la fonction de connexion/ajout de la table Utilisateur, création d'un en-tête temporaire
- 2021.05.06
- [Song Seong-ho] Mise à jour de la structure de la base de données en fonction des résultats de la réunion
- 2021.05.05
- [Tous] Changement de Spring vers JSP
- [Joohyun Yoon] Construire un projet JSP avec Java ee et Tomcat, saisir la structure de base, brouillon README
Règles de développement de projet
- Tirez d'abord lorsque vous utilisez Github
- Notez les commentaires et validez les messages avec soin
- Écrivez les noms de variables avec autant de détails que possible.
- Gérer les variables autant que possible
- Si vous ne savez pas ou êtes bloqué, discutez-en
- Soyez intéressé et participez en dehors de votre domaine
- Essayez d'abord de le modifier (si cela ne fonctionne pas, vous pouvez utiliser la fonction Rollback)
Que pourrait-il y avoir d'autre ?
Structure du projet
Vidéo d'analyse de la structure du projet
https://drive.google.com/file/d/1lWJpXaAh7shmv10t9AoQUbhHaI2ocUy0/view?usp=sharing
.idée
Paramètres liés à IntelliJ
L’environnement de chaque ordinateur étant différent, il est souvent corrigé automatiquement. Si possible, ne poussez pas vers github.
lib
Il s'agit d'un dossier contenant des bibliothèques externes (*.jar) utilisées dans les projets Java. Pour utiliser une classe spécifique, la bibliothèque correspondante est requise, et si elle est ajoutée, elle doit être enregistrée auprès du compilateur.
dehors
Il s'agit du dossier exécutable exclusif d'IntelliJ créé lors de la compilation. Il est initialisé à chaque fois que vous exécutez le serveur. Il est possible que l'erreur se soit produite sur un autre ordinateur. Lors de la compilation, tous les fichiers sont envoyés dans le dossier out et fonctionneront à partir de ce dossier.
N'envoyez jamais sur Github. Des erreurs peuvent survenir.
src
Responsable du serveur web. Écrit en Java.
- com.se.team4
- application
Ce package a été conçu pour être appliqué dans une structure aussi similaire que possible au programme booksys donné par le professeur.
domaine
C'est la partie contrôleur. En règle générale, un contrôleur est demandé à JSP et DAO est appelé à partir de celui-ci.
La partie sollicitant le Contrôleur est à nouveau mentionnée dans 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
Il s'agit d'un contrôleur lié à la page d'accueil principale.
persistance
C'est la partie modèle. Contient des classes pour communiquer avec MariaDB.
- D.A.O.
Ce sont des classes qui écrivent directement des instructions de requête.
Je pense que je dois réfléchir à l'opportunité d'envoyer une requête à la classe Database comme le fichier que le professeur m'a donné.
//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
Il s'agit d'une classe permettant de charger la base de données reçue de mariaDB dans une classe Java.
Il est pratique de penser qu’il existe un DTO par table DB.
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 ;}
}
- commun
Ce sont ces cours qui forment la charpente de ce projet. Veuillez ne jamais le modifier.
Lorsque vous apportez des modifications, assurez-vous de partager la raison de la révision.
- contrôleur
- filtre
- indice
- SQL
la toile
Responsable de la vue. Écrit en JSP.
- css
Il s'agit d'un dossier contenant du CSS à utiliser dans JSP. (Bootstrap 5.0 inclus)
- js
Il s'agit d'un dossier contenant des js à utiliser dans JSP (Bootstrap 5.0, JQuery inclus).
- WEB-INF
jsp
JSP demande la classe de domaine au format *.do.
Le chemin au format *.do se trouve dans booksys.properties.
La base de données définie dans la classe de domaine précédente est reçue, traitée en JS, puis insérée en 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 >
- commun
Nous avons collecté les JSP couramment utilisés. ex) en-tête, pied de page
- page
Une collection de diverses pages de base.
lib
Je suis tombé sur ça en réalisant un projet, mais je ne sais pas ce que c'est.
Comment déployer
- Comment installer IntelliJ
https://leirbag.tistory.com/50
- Comment installer Tomcat
Voir la section 1 de https://leirbag.tistory.com/52
- Comment installer MariaDB
https://leirbag.tistory.com/46
- Comment appliquer la base de données
https://leirbag.tistory.com/47
- Lorsqu'une erreur de base de données se produit dans le compilateur
https://leirbag.tistory.com/48
- Comment installer des clones et des projets
https://leirbag.tistory.com/56
Outils
- IntelliJ 2021.1
- Tomcat 9.0.45
- JSP
- MariaDB (version oubliée)
- DBUtils
- JavaEE
- Amorçage
- JQuery
- Ajax
Références
- Créer un projet JSP avec 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
- Histoire 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 d'action
https://m.blog.naver.com/PostView.nhn?blogId=eroicaplus&logNo=90029919122&proxyReferer=http:%2F%2F210.217.72.119%2F
- Servlet
https://themach.tistory.com/68
- Comparaison entre Servlet et JSP
https://m.blog.naver.com/acornedu/221128616501