ร้านอาหาร ลิตเติ้ลโฟร์
ระบบจองร้านอาหารของ TEAM4
ตรวจสอบบนเว็บไซต์
(หากเว็บเซิร์ฟเวอร์ถูกปิด การเชื่อมต่อจะไม่เกิดขึ้น)
มหาวิทยาลัย Kyonggi ภาควิชา AI และวิศวกรรมคอมพิวเตอร์
ศาสตราจารย์กีฮยอน ควอน 2021-1 วิศวกรรมซอฟต์แวร์ข้อ 4
นักพัฒนา Team4
- ซง ซองโฮ (201713866)
github@ssh10032
- จูฮยอน ยุน (201713919)
github@gabrielyoon7
- คิม วูจอง (201912039)
github@Kimwoojung11
- ชเว เยซึล (201912149)
github@yeseul9231
- ซูบิน ฮอ (201912161)
github@heo5620
ประวัติศาสตร์
- 2021.06.06
- [จูฮยอน ยุน] สร้างส่วนหนึ่งของคลาส TEST แก้ไขข้อผิดพลาดรายการรอที่ค้นพบ
- [ฮอซูบิน] การปรับปรุงการออกแบบ
- [ชเว เยซึล] การปรับเปลี่ยนการออกแบบ
- [คิมอูจุง] แก้ไขข้อบกพร่องในการจอง คลาส TEST เสร็จสมบูรณ์
- 2021.06.05
- [ซงซองโฮ] การปรับเปลี่ยนฟังก์ชั่นการลบการจองเสร็จสิ้น
- [ฮอซูบิน] การปรับเปลี่ยนการออกแบบ
- [ชเว เยซึล] การปรับเปลี่ยนการออกแบบ
- [คิมอูจุง] แก้ไขข้อบกพร่องในฟังก์ชั่นที่เกี่ยวข้องกับตารางเวลา
- [จูฮยอน ยุน] แก้ไขปัญหาที่ไม่สามารถตรวจสอบบันทึกการมาถึงใน customerManager ได้
- 2021.06.04
- [อูจุง คิม] เพิ่มฟังก์ชั่นแต้ม
- [จูฮยอน ยุน] เพิ่มฟังก์ชันตรวจสอบสถิติรายสัปดาห์ จำกัดการลงทะเบียนสมาชิกซ้ำ แก้ไขข้อบกพร่องที่เกี่ยวข้อง
- 2021.06.03
- [Heo Soo-bin] ปรับปรุงการออกแบบ เพิ่มแนวทางปฏิบัติ
- [ซงซองโฮ] ตาราง DAO, เพิ่ม DTO, ลบตาราง, ใช้ฟังก์ชันเพิ่มเติม
- [จูฮยอน ยุน] เพิ่มฟังก์ชันการมาถึง เพิ่มการป้อนข้อมูลอุณหภูมิ ฟังก์ชันที่เกี่ยวข้องกับตารางที่เชื่อมโยง และเพิ่มการสอบถามแบบสอบถามเกี่ยวกับโควิด-19 (การจัดการร้านค้า)
- 2021.06.02
- [คิมวูจอง] แปลงรายการรอเป็นโมดอล เพิ่มฟังก์ชันวอล์กอิน แก้ไขการจอง และลบ
- [ซองซองโฮ] CovidLogDTO, DAO เพิ่มช่องป้อนข้อมูลอุณหภูมิร่างกายของหน้าต่าง Modal แล้ว
- [จูฮยอน ยุน] การเชื่อมโยงฐานข้อมูลเข้ากับสถิติ (ยอดขายรายวัน) ปรับปรุงข้อผิดพลาดของตาราง แก้ไขข้อผิดพลาดวันที่ที่เกิดขึ้นเมื่อเชื่อมโยงไปยังเซิร์ฟเวอร์
- 2021.06.01
- [คิมวูจอง] เพิ่มตารางรายการรอและใช้ฟังก์ชันตาราง
- [ชเว เยซึล] แก้ไขแถบเมนู หน้าสถิติฉบับร่าง
- [ฮอซูบิน] การปรับปรุงการออกแบบ การสร้างเค้าโครงหน้าสถิติ
- [จูฮยอน ยุน] เปลี่ยนกิริยาเพื่อตอบสนองเมื่อคลิกที่เนื้อหาของตารางกำหนดการ
- 2021.05.31
- [คิมอูจุง] ฟังก์ชั่นเพิ่มเติม Waitlist DB
- 2021.05.30
- [จูฮยอน ยุน] เชื่อมต่อข้อมูลต่างๆ กับ userReservationInfo
- 2021.05.29
- [Heo Soo-bin] ปรับปรุงการออกแบบและเค้าโครง userReservationInfo
- [จูฮยอน ยุน] แก้ไขการเชื่อมต่อ DB และข้อผิดพลาดการจองคำขออย่างสมบูรณ์ในหน้า userManager
- 2021.05.28
- [ชอยเยซึล] เพิ่มฐานข้อมูลเครื่องดื่ม ปรับปรุงการจำแนกหน้าเมื่อสั่งซื้อ
- [ฮอซูบิน] แก้ไขส่วนหัวสำหรับแขก เพิ่มเค้าโครงหน้าสอบถามการจอง
- [Kim Woo-jung] เพิ่มเอาต์พุตข้อมูล WalkIn และ WalkIn ฟังก์ชั่นป้องกันการทำซ้ำการจอง
- [จูฮยอน ยุน] แก้ไขข้อบกพร่องของตารางบูตสแตรปอย่างสมบูรณ์ เพิ่มฟังก์ชันการกำหนดตารางการจองอัตโนมัติ
- 2021.05.27
- [ฮอซูบิน] ปรับปรุงการแจ้งเตือน
- [คิม วู-จุง] เอาต์พุตตารางเพจ CustomerManager
- [จูฮยอน ยุน] เปิดใช้งานปุ่มมุมมองเมนู (การใช้งานการพิมพ์ข้อมูลเมนูหน้าเดียว) เพิ่มฟังก์ชั่นการพิมพ์ตามประเภทเมนู เพิ่มฟังก์ชั่นการพิมพ์กำหนดการตามวันที่
- 2021.05.26
- [ซงซองโฮ] แก้ไขการสำรองวันที่ของวิธีการจองDAOเพิ่มผ่าน
- [จูฮยอน ยุน] แก้ไขข้อผิดพลาด BootstrapTable และการเปิดใช้งานฟังก์ชัน
- 2564.05.25
- [Heo Soo-bin] ปรับปรุงการออกแบบต่างๆ ใหม่ทั้งหมด
- [Kim Woo-jung] การใช้งานปุ่ม WalkIn บนหน้า customerManager
- 2021.05.23
- [Choi Ye-seul] ลิงก์โมดอลไปยังหน้า WalkIn ลิงก์รูปภาพไปยังหน้าการบรรจุ
- [จูฮยอน ยุน] แก้ไขข้อบกพร่องและเค้าโครง Modal ฟังก์ชันที่เกี่ยวข้องกับคำขอจอง จำกัดการเข้าถึงสำหรับผู้ใช้ที่ไม่ได้เข้าสู่ระบบ
- 2021.05.22
- [คิม วูจุง] เสร็จสมบูรณ์และเชื่อมต่อเลย์เอาต์เพื่อรับรายการคำขอจาก customerManager
- [จูฮยอน ยุน] ปรับปรุงเลย์เอาต์เพื่อให้ตารางกำหนดการถูกวาดโดยอัตโนมัติใน customerManager แก้ไขข้อผิดพลาดที่เกี่ยวข้องกับการจอง
- [Song Seong-ho] ใช้ฟังก์ชัน (completeReservationRequest) ที่ส่งข้อมูลคำขอจองจาก jsp ไปยัง Ajaxaction เพิ่มคำสั่ง case คำสั่งreservationRequest case ไปยัง AjaxAction
- 2021.05.21
- [จูฮยอน ยุน] เพิ่มฟังก์ชั่นในการส่งข้อมูลและแสดงข้อมูลการเข้าสู่ระบบไปยังการจอง
- [ซองซองโฮ] แก้ไขตาราง DB คำขอจอง (ลบ table_id, arrivalTime, เพิ่มข้อความ, แก้ไขเค้าโครงข้อมูลการจอง
- [ชเว เยซึล] แก้ไขข้อมูลการจอง
- 2021.05.20
- [ทั้งหมด] เปลี่ยนชื่อโครงการเป็นร้านอาหาร Little4
- [ซองซองโฮ] เพิ่มการจอง DTO เพิ่มวิธีการจอง DAO เพื่อส่งข้อมูลการจองของลูกค้าไปยัง DB (addReservationRequest) เพิ่มตารางคำขอจองของลูกค้า DB (ReservationRequest)
- 2021.05.19
- [คิมอูจุง] การสร้างเพจการจัดการโต๊ะ
- 2021.05.16
- [Heo Soo-bin] ฐานข้อมูลเมนูและการปรับปรุงรูปภาพ
- [จูฮยอน ยุน] เพิ่มความสามารถในการข้ามวันที่ในหน้าการจอง ใช้ฟังก์ชันการคลิกบางอย่าง (จำเป็นต้องปรับปรุง)
- [Kim Woo-joong] การสร้างหน้าการชำระเงินเสร็จสิ้นและหน้าการจัดการการรับสินค้า (รวมถึงการเชื่อมโยง DB)
- 2021.05.15
- [ชอยเยซึล] เพิ่มเค้าโครงหน้าสอบถามกำหนดการ
- [จูฮยอน ยุน] กำลังลิงก์รูปภาพไปที่หน้าจอเมนู
- 2021.05.14
- [คิมอูจุง] การสร้างหน้าชำระเงินเสร็จสิ้น
- [ฮอซูบิน] การสร้างส่วนท้ายที่ย้ายจากหน้าการบรรจุไปยังตะกร้า การสร้างหน้าคำสั่งซื้อ/การชำระเงิน แก้ไขแถบคงที่ที่ด้านล่าง และแก้ไขข้อความที่ด้านบน
- [ชอยเยซึล] เพิ่มเค้าโครงหน้าการจองและหน้าจอเสร็จสิ้นการจอง
- [จูฮยอน ยุน] เพิ่มฟังก์ชันตะกร้าสินค้าในการบรรจุ (การดำเนินการของผลลัพธ์ทั้งหมดจากหน้าจอการชำระเงินโดยการส่ง DB) การสร้างกระบวนการในการส่ง DB จากตะกร้าสินค้าไปยังหน้าจอการชำระเงินเสร็จสิ้น การเพิ่มหน้าข้อผิดพลาดและตรรกะเพื่อป้องกันข้อผิดพลาด
- 2021.05.13
- [ซงซองโฮ] บูรณาการหน้าการจอง
- [คิมอูจุง] การเชื่อมโยงหน้าการบรรจุและตะกร้า
- 2021.05.12
- [ชเว เยซึล] การสร้างเพจแบรนด์
- [ทั้งหมด] การสร้างหน้าเมนูและการเชื่อมโยงฐานข้อมูล / การปรับปรุงโครงสร้างฐานข้อมูลบางส่วน / เพิ่มฟังก์ชันการจัดการบัญชีดำ
- 2021.05.11
- [จูฮยอน ยุน] หลังจากสร้างสภาพแวดล้อมด้วย ubuntu20.04 LTS, Tomcat9.0, mariaDB และ openJDK14 บนเซิร์ฟเวอร์พีซี การอัปโหลดเซิร์ฟเวอร์ก็เสร็จสมบูรณ์ (เพื่อใช้ในช่วงการนำเสนอและประเมินผล)
- 2021.05.10
- [จูฮยอน ยุน] เพิ่มฟังก์ชั่นการลงทะเบียนสมาชิก / เพิ่มหน้าผู้ดูแลระบบและฟังก์ชั่น
- 2021.05.08
- [Choi Ye-seul] ปรับปรุงการออกแบบส่วนหัว/เพิ่มส่วนท้าย/เพิ่มแถบเลื่อนรูปภาพ
- [จูฮยอน ยุน] เพิ่มฟังก์ชันล็อกเอาต์/แนะนำบูทสแตรป
- 2021.05.07
- [จูฮยอน ยุน] เพิ่มฟังก์ชั่นล็อกอิน/เพิ่มตาราง User สร้างส่วนหัวชั่วคราว
- 2021.05.06
- [ซงซองโฮ] อัพเดทโครงสร้าง DB ตามผลการประชุม
- 2021.05.05
- [ทั้งหมด] เปลี่ยนจาก Spring เป็น JSP
- [จูฮยอน ยุน] สร้างโปรเจ็กต์ JSP ด้วย Java ee และ Tomcat, โครงสร้างพื้นฐานอินพุต, ร่าง README
กฎเกณฑ์การพัฒนาโครงการ
- เมื่อใช้ Github ให้ดึงก่อน
- เขียนความคิดเห็นและส่งข้อความอย่างระมัดระวัง
- เขียนชื่อตัวแปรให้ละเอียดที่สุด
- จัดการกับตัวแปรให้ได้มากที่สุด
- หากคุณไม่ทราบหรือติดขัดให้หารือ
- สนใจและมีส่วนร่วมนอกสาขาของคุณ
- ลองแก้ไขดูก่อน (ถ้าไม่ได้ผลก็ใช้ฟังก์ชัน Rollback ได้)
มีอะไรอีกบ้าง?
โครงสร้างโครงการ
วีดีโอการวิเคราะห์โครงสร้างโครงการ
https://drive.google.com/file/d/1lWJpXaAh7shmv10t9AoQUbhHaI2ocUy0/view?usp=sharing
.ความคิด
การตั้งค่าที่เกี่ยวข้องกับ IntelliJ
เนื่องจากสภาพแวดล้อมของคอมพิวเตอร์แต่ละเครื่องแตกต่างกัน จึงมักจะได้รับการแก้ไขโดยอัตโนมัติ ถ้าเป็นไปได้ อย่ากดไปที่ GitHub
lib
นี่คือโฟลเดอร์ที่มีไลบรารีภายนอก (*.jar) ที่ใช้ในโปรเจ็กต์ Java หากต้องการใช้คลาสเฉพาะ จำเป็นต้องมีไลบรารีที่เกี่ยวข้อง และหากเพิ่มเข้าไป จะต้องลงทะเบียนกับคอมไพลเลอร์
ออก
นี่คือโฟลเดอร์ปฏิบัติการพิเศษของ IntelliJ ที่สร้างขึ้นระหว่างการคอมไพล์ จะเริ่มต้นทุกครั้งที่คุณเรียกใช้เซิร์ฟเวอร์ อาจเป็นไปได้ว่าเกิดข้อผิดพลาดกับคอมพิวเตอร์เครื่องอื่น เมื่อทำการคอมไพล์ ไฟล์ทั้งหมดจะถูกส่งไปยังโฟลเดอร์ออกและจะทำงานจากโฟลเดอร์นี้
อย่าส่งไปที่ Github ข้อผิดพลาดอาจเกิดขึ้น
src
รับผิดชอบในส่วนของเว็บเซิร์ฟเวอร์ เขียนด้วยภาษาจาวา
- com.se.team4
- แอปพลิเคชัน
แพ็คเกจนี้ได้รับการออกแบบเพื่อใช้ในโครงสร้างที่คล้ายกับโปรแกรม booksys ที่ได้รับจากอาจารย์มากที่สุด
โดเมน
นี่คือส่วนควบคุม โดยทั่วไปแล้ว คอนโทรลเลอร์จะถูกร้องขอจาก JSP และ DAO จะถูกเรียกจากคอนโทรลเลอร์นั้น
ส่วนที่ร้องขอคอนโทรลเลอร์ถูกกล่าวถึงอีกครั้งใน 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" ;
}
}
- หลัก
นี่คือตัวควบคุมที่เกี่ยวข้องกับหน้าแรกหลัก
ความคงอยู่
นี่คือส่วนโมเดล มีคลาสสำหรับการสื่อสารกับ MariaDB
- ดี.เอ.โอ.
เหล่านี้เป็นคลาสที่เขียนคำสั่งแบบสอบถามโดยตรง
ฉันคิดว่าฉันต้องคิดว่าจะส่งแบบสอบถามไปยังคลาส Database เหมือนไฟล์ที่อาจารย์ให้ฉันมาหรือไม่
>() {
}.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 ;
}
}
- ดีทีโอ
นี่คือคลาสสำหรับโหลดฐานข้อมูลที่ได้รับจาก mariaDB ลงในคลาส Java
สะดวกในการคิดว่ามีหนึ่ง DTO ต่อตาราง 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 ;}
}
- ทั่วไป
เหล่านี้เป็นคลาสที่สร้างกรอบงานของโปรเจ็กต์นี้ กรุณาอย่าแก้ไขมัน
เมื่อทำการเปลี่ยนแปลง อย่าลืมแชร์เหตุผลในการแก้ไขด้วย
- ตัวควบคุม
- กรอง
- ดัชนี
- ฐานข้อมูล SQL
เว็บ
รับผิดชอบในการดู. เขียนใน JSP.
- ซีเอสเอส
นี่คือโฟลเดอร์ที่มี CSS ที่จะใช้ใน JSP (รวม Bootstrap 5.0)
- เจส
นี่คือโฟลเดอร์ที่มี js ที่จะใช้ใน JSP (Bootstrap 5.0, รวม JQuery)
- เว็บ-INF
เจเอสพี
JSP ร้องขอคลาสโดเมนในรูปแบบ *.do
เส้นทางในรูปแบบ *.do สามารถพบได้ใน booksys.properties
ได้รับฐานข้อมูลที่กำหนดไว้ในคลาสโดเมนก่อนหน้า ประมวลผลเป็น JS แล้วแทรกลงใน 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 >
- ทั่วไป
เราได้รวบรวม JSP ที่ใช้กันทั่วไป เช่น) ส่วนหัว ส่วนท้าย
- หน้าหนังสือ
คอลเลกชันของหน้าพื้นฐานต่างๆ
lib
ฉันเจอสิ่งนี้ตอนทำโปรเจ็กต์ แต่ฉันไม่รู้ว่ามันคืออะไร
วิธีการปรับใช้
- วิธีการติดตั้ง IntelliJ
https://leirbag.tistory.com/50
- วิธีการติดตั้ง Tomcat
ดูส่วนที่ 1 ของ https://leirbag.tistory.com/52
- วิธีการติดตั้ง mariaDB
https://leirbag.tistory.com/46
- วิธีการสมัครดีบี
https://leirbag.tistory.com/47
- เมื่อเกิดข้อผิดพลาด db ในคอมไพเลอร์
https://leirbag.tistory.com/48
- วิธีติดตั้งโคลนและโปรเจ็กต์
https://leirbag.tistory.com/56
เครื่องมือ
- IntelliJ2021.1
- ทอมแคท 9.0.45
- เจเอสพี
- MariaDB (ลืมเวอร์ชัน)
- ดีบีทูลส์
- จาวา EE
- บูทสแตรป
- เจคิวรี่
- อาแจ็กซ์
อ้างอิง
- สร้างโครงการ JSP ด้วย 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%อีซี%84%B1
- ประวัติความเป็นมาของ *.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
- คลาสแอ็คชั่น
https://m.blog.naver.com/PostView.nhn?blogId=eroicaplus&logNo=90029919122&proxyReferer=http:%2F%2F210.217.72.119%2F
- เซิร์ฟเล็ต
https://themach.tistory.com/68
- การเปรียบเทียบระหว่างเซิร์ฟเล็ตและ JSP
https://m.blog.naver.com/acornedu/221128616501