Little4 Restaurant
Restaurantbuchungssystem von TEAM4
Schauen Sie auf der Website nach
(Wenn der Webserver heruntergefahren wird, wird die Verbindung nicht hergestellt.)
Abteilung für KI und Computertechnik der Kyonggi-Universität
Professor Kihyun Kwon 2021-1 Software Engineering Artikel 4
Team4-Entwickler
- Song 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
Geschichte
- 06.06.2021
- [Joohyun Yoon] Teil der TEST-Klasse erstellt, Fehler in der Warteliste behoben
- [Heo Soo-bin] Designverbesserung
- [Choi Ye-seul] Designänderung
- [Kim Woo-joong] Fehler bei der Reservierungsänderung behoben, TEST-Klasse abgeschlossen
- 05.06.2021
- [Song Seong-ho] Änderung der Funktion zum Löschen des Reservierungsabschlusses
- [Heo Soo-bin] Designänderung
- [Choi Ye-seul] Designänderung
- [Kim Woo-joong] Beheben Sie Fehler in zeitplanbezogenen Funktionen
- [Joohyun Yoon] Das Problem, dass Ankunftsdatensätze im Kundenmanager nicht überprüft werden konnten, wurde behoben
- 04.06.2021
- [Woojoong Kim] Punktfunktion hinzugefügt
- [Joohyun Yoon] Wöchentliche Statistikprüfungsfunktion hinzugefügt, doppelte Mitgliedschaftsregistrierung eingeschränkt, damit verbundene Fehler behoben
- 2021.06.03
- [Heo Soo-bin] Verbessertes Design, zusätzliche Richtlinien
- [Song Seong-ho] Tabellen-DAO, DTO hinzufügen, Tabelle löschen, zusätzliche Funktionen implementieren
- [Joohyun Yoon] Ankunftsfunktion hinzugefügt, Temperatureingabe hinzugefügt, verknüpfte tabellenbezogene Funktionen und COVID-19-Fragebogenabfrage hinzugefügt (Geschäftsverwaltung)
- 2021.06.02
- [Kim Woo-jung] Warteliste in modal umwandeln, Walk-in-, Reservierungsbearbeitungs- und Löschfunktionen hinzufügen
- [Song Seong-ho] CovidLogDTO, DAO hat das Eingabefeld für die Körpertemperatur im modalen Fenster hinzugefügt
- [Joohyun Yoon] Verknüpfung der Datenbank mit Statistiken (Tagesverkäufe), Verbesserung von Tabellenfehlern, Behebung von Datumsfehlern, die bei der Verknüpfung mit Servern auftreten
- 01.06.2021
- [Kim Woo-jung] Wartelistentabelle hinzufügen und Tabellenfunktion implementieren
- [Choi Ye-seul] Menüleiste bearbeiten, Seite „Entwurfsstatistik“.
- [Heo Soo-bin] Designverbesserung, Erstellung des Statistikseitenlayouts
- [Joohyun Yoon] Ändern Sie das Modal, um zu reagieren, wenn Sie auf den Inhalt der Zeitplantabelle klicken
- 31.05.2021
- [Kim Woo-joong] Waitlist DB-Zusatzfunktion
- 30.05.2021
- [Joohyun Yoon] Verschiedene Informationen mit userReservationInfo verbinden
- 29.05.2021
- [Heo Soo-bin] Verbessertes Design und verbessertes UserReservationInfo-Layout
- [Joohyun Yoon] DB-Verbindungs- und Reservierungsanfragefehler auf der UserManager-Seite wurden vollständig behoben
- 28.05.2021
- [Choi Ye-seul] Getränke-DB hinzugefügt, verbesserte Seitenklassifizierung bei der Bestellung
- [Heo Soo-bin] Kopfzeile für Gäste bearbeiten, Seitenlayout für Reservierungsanfragen hinzufügen
- [Kim Woo-jung] WalkIn-Datenausgabe und WalkIn, Funktion zur Verhinderung von Duplikaten bei Reservierungen hinzugefügt
- [Joohyun Yoon] Bootstrap-Tabellenfehler vollständig korrigiert, automatische Zuweisungsfunktion für Reservierungstabellen hinzugefügt
- 27.05.2021
- [Heo Soo-bin] Verbesserte Warnbenachrichtigungen
- [Kim Woo-jung] Ausgabe der CustomerManager-Seitentabelle
- [Joohyun Yoon] Aktivieren Sie die Menüansichtsschaltfläche (Implementierung des Druckens einer einzelnen Seite mit Menüinformationen), fügen Sie eine Druckfunktion nach Menütyp hinzu und fügen Sie eine Zeitplandruckfunktion nach Datum hinzu
- 26.05.2021
- [Song Seong-ho] Bearbeiten Sie die Datumsübergabe der AddReservation-Methode von ReservationDAO
- [Joohyun Yoon] BootstrapTable-Fehlerbehebung und Funktionsaktivierung
- 25.05.2021
- [Heo Soo-bin] Verschiedene Designs komplett überarbeitet
- [Kim Woo-jung] Implementierung der WalkIn-Schaltfläche auf der CustomerManager-Seite
- 23.05.2021
- [Choi Ye-seul] Modal auf WalkIn-Seite verlinken, Bild auf Packing-Seite verlinken
- [Joohyun Yoon] Modale Fehlerbehebungen und Layout sowie Funktionen im Zusammenhang mit Reservierungsanfragen beschränken den Zugriff auf nicht angemeldete Benutzer
- 22.05.2021
- [Kim Woo-joong] Das Layout wurde erfolgreich fertiggestellt und verbunden, um eine Anfrageliste vom Kundenmanager zu erhalten
- [Joohyun Yoon] Verbessertes Layout, sodass die Zeitplantabelle automatisch im Kundenmanager gezeichnet wird, Fehler im Zusammenhang mit ReservationRequest behoben
- [Song Seong-ho] Eine Funktion (completeReservationRequest) implementiert, die Reservierungsanfragedaten von JSP an Ajaxaction sendet, hat die case-Anweisung „reservationRequest case“ an AjaxAction hinzugefügt
- 21.05.2021
- [Joohyun Yoon] Es wurde die Möglichkeit hinzugefügt, Informationen weiterzugeben und Anmeldeinformationen an die Reservierung anzuzeigen
- [Song Seong-ho] ReservationRequest-DB-Tabelle ändern (Table_ID, ArrivalTime löschen, Nachricht hinzufügen, Reservierungsinfo-Layout ändern).
- [Choi Ye-seul] Reservierungsinformationen bearbeiten
- 20.05.2021
- [Alle] Der Projektname wurde in Little4 Restaurant geändert
- [Song Seong-ho] ReservationDTO hinzugefügt, ReservationDAO-Methode zum Senden von Kundenreservierungsdaten an DB (addReservationRequest) hinzugefügt, DB-Kundenreservierungsanfrage (ReservationRequest) TABLE hinzugefügt
- 2021.05.19
- [Kim Woo-joong] Erstellung einer Tabellenverwaltungsseite
- 2021.05.16
- [Heo Soo-bin] Menü-DB und Bildüberarbeitung
- [Joohyun Yoon] Möglichkeit zum Überspringen von Terminen auf der Reservierungsseite hinzugefügt, einige Klickfunktionen implementiert (muss verbessert werden)
- [Kim Woo-joong] Erstellung der Zahlungsabschlussseite und der Abholverwaltungsseite (einschließlich DB-Verknüpfung)
- 2021.05.15
- [Choi Ye-seul] Seitenlayout für Terminanfragen hinzugefügt
- [Joohyun Yoon] Bilder mit dem Menübildschirm verknüpfen
- 2021.05.14
- [Kim Woo-joong] Erstellen einer Zahlungsabschlussseite
- [Heo Soo-bin] Erstellen einer Fußzeile, die von der Seite „Verpacken“ zur Seite „Warenkorb“ wechselt, Erstellen einer Bestell-/Zahlungsseite, Korrigieren der unteren Leiste und Bearbeiten des oberen Beitrags
- [Choi Ye-seul] Layout der Reservierungsseite und Bildschirm zum Abschluss der Reservierung hinzugefügt
- [Joohyun Yoon] Warenkorbfunktion in Packing hinzugefügt (Implementierung der Gesamtausgabe vom Zahlungsbildschirm durch Übergabe von DB), Prozess zur Übergabe von DB vom Warenkorb an den Zahlungsabschlussbildschirm erstellt, Fehlerseite und Logik hinzugefügt, um Fehler zu verhindern
- 13.05.2021
- [Song Seong-ho] Integration der Reservierungsseite
- [Kim Woo-joong] Verlinkung der Seiten „Packen“ und „Korb“.
- 2021.05.12
- [Choi Ye-seul] Erstellung einer Markenseite
- [Alle] Erstellung von Menüseiten und DB-Verknüpfung / Verbesserung einiger DB-Strukturen / Hinzufügung einer Blacklist-Verwaltungsfunktion
- 2021.05.11
- [Joohyun Yoon] Nachdem auf dem Server-PC eine Umgebung mit Ubuntu20.04 LTS, Tomcat9.0, MariaDB und OpenJDK14 erstellt wurde, wurde der Server-Upload abgeschlossen. (Zur Verwendung während der Präsentations- und Bewertungsphase)
- 2021.05.10
- [Joohyun Yoon] Funktion zur Mitgliedschaftsregistrierung hinzugefügt / Administratorseite und -funktionen hinzugefügt
- 08.05.2021
- [Choi Ye-seul] Verbessertes Header-Design/Fußzeile hinzugefügt/Bild-Slider hinzugefügt
- [Joohyun Yoon] Abmeldefunktion hinzugefügt/Bootstrap eingeführt
- 2021.05.07
- [Joohyun Yoon] Anmeldefunktion hinzugefügt/Benutzertabelle hinzugefügt, temporärer Header erstellt
- 2021.05.06
- [Song Seong-ho] Aktualisierung der DB-Struktur entsprechend den Besprechungsergebnissen
- 05.05.2021
- [Alle] Wechsel von Spring zu JSP
- [Joohyun Yoon] Erstellen Sie ein JSP-Projekt mit Java EE und Tomcat, geben Sie die Grundstruktur ein und entwerfen Sie eine README-Datei
Regeln der Projektentwicklung
- Ziehen Sie zuerst, wenn Sie Github verwenden
- Schreiben Sie Kommentare und Nachrichten sorgfältig auf
- Schreiben Sie Variablennamen so detailliert wie möglich.
- Behandeln Sie Variablen so weit wie möglich
- Wenn Sie es nicht wissen oder nicht weiterkommen, besprechen Sie es
- Seien Sie interessiert und beteiligen Sie sich auch außerhalb Ihres Fachgebiets
- Versuchen Sie zunächst, es zu ändern (wenn es nicht funktioniert, können Sie die Rollback-Funktion verwenden).
Was könnte es sonst noch sein?
Projektstruktur
Video zur Projektstrukturanalyse
https://drive.google.com/file/d/1lWJpXaAh7shmv10t9AoQUbhHaI2ocUy0/view?usp=sharing
.Idee
IntelliJ-bezogene Einstellungen
Da die Umgebung jedes Computers unterschiedlich ist, wird dies häufig automatisch korrigiert. Wenn möglich, pushen Sie nicht auf Github.
lib
Dies ist ein Ordner mit externen Bibliotheken (*.jar), die in Java-Projekten verwendet werden. Um eine bestimmte Klasse verwenden zu können, ist die entsprechende Bibliothek erforderlich. Wenn sie hinzugefügt wird, muss sie beim Compiler registriert werden.
aus
Dies ist der exklusive ausführbare Ordner von IntelliJ, der während der Kompilierung erstellt wird. Es wird jedes Mal initialisiert, wenn Sie den Server ausführen. Möglicherweise ist der Fehler auf einem anderen Computer aufgetreten. Beim Kompilieren werden alle Dateien an den Out-Ordner gesendet und von diesem Ordner aus ausgeführt.
Senden Sie niemals an Github. Es können Fehler auftreten.
src
Verantwortlich für den Webserver. Geschrieben in Java.
- com.se.team4
- Anwendung
Dieses Paket wurde so konzipiert, dass es in einer Struktur angewendet werden kann, die dem vom Professor vorgegebenen Booksys-Programm möglichst ähnlich ist.
Domain
Dies ist der Controller-Teil. Normalerweise wird ein Controller von JSP angefordert und DAO von dort aufgerufen.
Der den Controller anfordernde Teil wird in WEB-INF noch einmal erwähnt.
//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" ;
}
}
- hauptsächlich
Dies ist ein Controller im Zusammenhang mit der Haupthomepage.
Beständigkeit
Dies ist der Modellteil. Enthält Klassen für die Kommunikation mit MariaDB.
- D.A.O.
Dies sind Klassen, die Abfrageanweisungen direkt schreiben.
Ich denke, ich muss darüber nachdenken, ob ich eine Anfrage an die Datenbankklasse senden soll, wie die Datei, die mir der Professor gegeben hat.
>() {
}.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
Dies ist eine Klasse zum Laden der von mariaDB empfangenen Datenbank in eine Java-Klasse.
Es ist praktisch anzunehmen, dass es ein DTO pro DB-Tabelle gibt.
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 ;}
}
- gemeinsam
Dies sind die Klassen, die den Rahmen dieses Projekts bilden. Bitte bearbeiten Sie es niemals.
Geben Sie bei Änderungen unbedingt den Grund für die Überarbeitung an.
Web
Verantwortlich für Ansicht. Geschrieben in JSP.
- CSS
Dies ist ein Ordner, der CSS zur Verwendung in JSP enthält. (Bootstrap 5.0 enthalten)
- js
Dies ist ein Ordner mit js zur Verwendung in JSP (Bootstrap 5.0, einschließlich JQuery).
- WEB-INF
jsp
JSP fordert die Domänenklasse im *.do-Format an.
Den Pfad im *.do-Format finden Sie in booksys.properties.
Die in der vorherigen Domänenklasse definierte Datenbank wird empfangen, in JS verarbeitet und dann in HTML eingefügt.
//앞선 설정으로 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 >
- gemeinsam
Wir haben häufig verwendete JSPs zusammengestellt. Beispiel: Kopfzeile, Fußzeile
- Seite
Eine Sammlung verschiedener Basisseiten.
lib
Ich bin beim Erstellen eines Projekts darauf gestoßen, weiß aber nicht, was es ist.
So stellen Sie es bereit
- So installieren Sie IntelliJ
https://leirbag.tistory.com/50
- So installieren Sie Tomcat
Siehe Abschnitt 1 von https://leirbag.tistory.com/52
- So installieren Sie mariaDB
https://leirbag.tistory.com/46
- So wenden Sie db an
https://leirbag.tistory.com/47
- Wenn im Compiler ein Datenbankfehler auftritt
https://leirbag.tistory.com/48
- So installieren Sie Klone und Projekte
https://leirbag.tistory.com/56
Werkzeuge
- IntelliJ 2021.1
- Tomcat 9.0.45
- JSP
- MariaDB (Version vergessen)
- DBUtils
- Java EE
- Bootstrap
- JQuery
- Ajax
Referenzen
- Erstellen Sie ein JSP-Projekt mit 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
- Geschichte von *.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
- Aktionsklasse
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
- Vergleich zwischen Servlet und JSP
https://m.blog.naver.com/acornedu/221128616501