JSP Internet Shopping Mall Project
ระยะเวลาโครงการ: 21.01.13 ~ 21.01.29
ลิงค์การปรับใช้ EC2: http://15.164.166.37/shop ใบอนุญาตฟรีจะหมดอายุไปสู่การกระจายเซิร์ฟเวอร์ EC2
วิดีโอสาธิต: https://youtu.be/umdegow_ulq
สิ่งแวดล้อม
- Windows 10
- JDK 1.8
- Tomcat 9.0
- เครื่องมือ STS
- mysql 8.0
- ลอมบอก
- Gson
- jstl
- ตัวกรอง Naver Lucy
- Sha-256
- การเข้ารหัส: UTF-8
การออกแบบและผลิตภัณฑ์ภาพผลิตภัณฑ์เว็บไซต์อ้างอิงคำอธิบายผลิตภัณฑ์
- บรั่นดี
- https://www.brandi.co.kr/
- Trenbi
- หัวล้าน
- https://www.balaan.co.kr/
อ้างอิง
- การชำระเงินจริงจะเกิดขึ้นเมื่อการชำระเงินเสร็จสิ้นบนหน้าจอการชำระเงินและการคืนเงินอัตโนมัติจะดำเนินการก่อนเที่ยง
ใช้ API
- Kakao เข้าสู่ระบบ API
- https://developers.kakao.com/product/kakaologin
- NAVER LOGIN API
- https://nid.naver.com/user2/campaign/intronaveridlogin.nhn.nhn
- ในกรณีของการเข้าสู่ระบบ Naver และ Kakao เมื่อการเข้าสู่ระบบเริ่มต้นถูกย้ายไปยังหน้าต่างอินพุตข้อมูลแทรกถูกแทรกในตารางผู้ใช้สำหรับค่าอินพุตและค่า ID ที่ได้รับจากเซิร์ฟเวอร์ NAVER/KAKAO
- ต่อมาในระหว่างการเข้าสู่ระบบ ID ที่เป็นเอกลักษณ์ของ Kakao และค่า ID ที่ไม่ซ้ำกันของ Navao ได้รับการตั้งค่าให้เข้าสู่ระบบ
- IMORT API (บริการชำระเงิน)
- https://www.iamport.kr/getstarted
- Summernote API
- Sweetalert2
- https://sweetalert2.github.io/
การสร้างฐานข้อมูล MySQL และการสร้างผู้ใช้
CREATE USER ' shopuser '@ ' % ' identified by ' shop0805 ' ;
GRANT ALL privileges on * . * TO ' shopuser ' @ ' % ' ;
create database shopdb ;
การสร้างตาราง mysql
CREATE TABLE product (
id int primary key auto_increment,
productName varchar ( 120 ) unique not null ,
companyId int not null ,
price long not null ,
soldCount int default 0 ,
detail longtext not null ,
imgUrl_1 varchar ( 100 ) not null ,
imgUrl_2 varchar ( 100 ),
imgUrl_3 varchar ( 100 ),
imgUrl_4 varchar ( 100 ),
writerId int ,
createDate timestamp default now(),
updateDate timestamp default now()
); CREATE TABLE user (
id int primary key auto_increment,
username varchar ( 20 ) unique default null ,
name varchar ( 20 ) not null ,
email varchar ( 50 ) not null ,
phone varchar ( 13 ) not null ,
address varchar ( 120 ) not null ,
password char ( 64 ) not null ,
kakaoId long,
naverId long,
auth varchar ( 10 ) default ' user ' ,
createDate timestamp default now()
); CREATE TABLE company (
id int primary key auto_increment,
name varchar ( 40 ) unique not null ,
url varchar ( 80 ) unique
); CREATE TABLE favorite (
id int primary key auto_increment,
userId int not null ,
productId int not null ,
createDate timestamp default now()
); CREATE TABLE cart (
id int primary key auto_increment,
userId int not null ,
productId int not null ,
createDate timestamp default now()
); CREATE TABLE qna (
id int primary key auto_increment,
userId int not null ,
productId int not null ,
optionNo int not null ,
password varchar ( 4 ),
detail longtext,
createDate timestamp default now()
); CREATE TABLE review (
id int primary key auto_increment,
userId int not null ,
productId int not null ,
detail longtext not null ,
createDate timestamp default now(),
updateDate timestamp default now()
); ฟังก์ชั่นที่ใช้งาน
1. ลงทะเบียนเพื่อเป็นสมาชิก 
- รหัสผ่านที่ป้อนเมื่อลงทะเบียนจะถูกเข้ารหัสไปที่ SHA-256 และเก็บไว้ใน DB
2. เข้าสู่ระบบ 
3. Kakao เข้าสู่ระบบ 
4. เข้าสู่ระบบ Naver 
การเข้าสู่ระบบครั้งแรกของ Naver/Kakao จำเป็นต้องป้อนข้อมูลเพิ่มเติม 
5. ออกจากระบบ
6. หน้าหลัก 
- ฉันใช้ม้าหมุน
- ใช้เลย์เอาต์กริด
7. เมนูโดยแบรนด์บาร์ด้านบน 
- ใช้คำสั่ง SELECT เพื่อเรียกชื่อ บริษัท ทั้งหมดของตาราง บริษัท (แม้ว่าจะมีการเพิ่ม บริษัท แต่ก็ไม่จำเป็นต้องแก้ไขแยกต่างหาก)
- มีส่วนหัวและแถบด้านบนในทุกหน้าดังนั้นคุณสามารถใช้ตัวกรองเพื่อใช้ในทุกหน้า
8. แบรนด์ -by -brand Menu 
9. ฟังก์ชั่นการค้นหา 
- มันแสดงผลิตภัณฑ์ทั้งหมดที่มีคำค้นหาและผลลัพธ์ทั้งหมดของ บริษัท
10. หน้าการจัดอันดับปริมาณการขาย 
- เมื่อผู้ใช้ซื้อผลิตภัณฑ์จำนวนการซื้อของตารางผลิตภัณฑ์จะเพิ่มขึ้นและผลลัพธ์ที่ได้คือผลของปริมาณการขายโดยใช้คำสั่งซื้อโดย SoldCount DESC
11. ในหน้าผลิตภัณฑ์ทั้งหมด 
- มันเป็นคุณสมบัติที่เห็นเฉพาะผลิตภัณฑ์ของแบรนด์แบรนด์ทางด้านซ้าย
12. เพิ่มเมนูด้านบนเมื่อเข้าสู่ระบบ 
- หากเกรดของผู้ใช้อยู่เหนือผู้ดูแลระบบจะมีการสร้างเมนูการลงทะเบียนผลิตภัณฑ์และการปรับเปลี่ยนผลิตภัณฑ์
- หากผู้ใช้เป็นมากกว่าพื้นฐาน, การนึ่ง, ตะกร้าสินค้า, การปรับเปลี่ยนข้อมูลและเมนูออกจากระบบจะถูกสร้างขึ้น
13. ยืนยันรหัสผ่านอีกครั้งเมื่อคลิกที่ข้อมูล 
- เมื่อผู้ใช้ป้อนรหัสผ่านที่เขาตั้งค่าค่าอินพุตจะถูกนำไปใช้กับการเข้ารหัส SHA-256 เพื่อเปรียบเทียบกับค่าที่เก็บไว้ใน DB
14. การปรับเปลี่ยนข้อมูลสมาชิก 
15. หน้าผลิตภัณฑ์โดยละเอียด -ท็อป 
- เลือกค่าของตารางผลิตภัณฑ์
- หากคุณคลิกปุ่มซื้อถูกต้องไปที่หน้าการชำระเงิน (เฉพาะในช่วงเวลาของการเข้าสู่ระบบ)
- หากคุณคลิกที่ปุ่มตะกร้าสินค้าจะถูกเพิ่มลงในรถเข็น (เฉพาะในช่วงเวลาของการเข้าสู่ระบบ)
- หากคุณคลิกปุ่มนึ่งจะถูกเพิ่มลงในรายการ Steam (เฉพาะในช่วงเวลาของการเข้าสู่ระบบ)

- เมื่อคลิกปุ่มขณะเข้าสู่ระบบ

- เมื่อคลิกปุ่มขณะอยู่ในสถานะ
- ไปที่หน้าสมาชิกเมื่อคุณคลิกที่สมาชิก
16. หน้าผลิตภัณฑ์โดยละเอียด -แท็บ 
- คลิกที่แต่ละแท็บเพื่อไปยังตำแหน่งที่มีแท็บ
- ฉันใช้ตำแหน่งเหนียว
- ไปยังสถานที่ที่แต่ละแท็บตั้งอยู่เส้นสีดำจะแสดงที่ด้านล่างของแท็บนั้น
17. หน้าผลิตภัณฑ์โดยละเอียด -ทบทวนแท็บและแท็บคำถาม & คำตอบ 
- คลิกที่ชื่อเพื่อไปที่หน้ารายละเอียด
- ในกรณีของคำถามและคำตอบหากคุณป้อนรหัสผ่านเมื่อคุณเขียนคุณจะไม่สามารถดูชื่อและชื่อผู้แต่งได้
- กดลูกศรที่ด้านล่างขวาเพื่อไปที่ด้านบนของหน้าทันที
18. รีวิวโดยละเอียดหน้าถาม - ตอบ 
19. 
- หลังจากยืนยันรหัสผ่านถ้าคุณจับคู่ไปที่หน้ารายละเอียด
20. เมื่อคลิกการตรวจสอบทั้งหมด 
- คุณสามารถโหลดเนื้อหาของผลิตภัณฑ์ที่คุณกำลังดูร่วมกันและคุณสามารถไปที่หน้าผลิตภัณฑ์เมื่อคุณคลิกที่ภาพถ่ายผลิตภัณฑ์
21. เมื่อคลิกคำถามและคำตอบทั้งหมด 
- คุณสามารถโหลดเนื้อหาของผลิตภัณฑ์ที่คุณกำลังดูร่วมกันและคุณสามารถไปที่หน้าผลิตภัณฑ์เมื่อคุณคลิกที่ภาพถ่ายผลิตภัณฑ์
- ความลับยังซ่อนอยู่ที่นี่
22. เมื่อเขียนรีวิว 
- Summernote ถูกใช้ยกเว้นภาพถ่ายและฟังก์ชั่นวิดีโอ
23. เมื่อคลิกคำถาม & คำตอบ 
- Summernote ถูกใช้ยกเว้นภาพถ่ายและฟังก์ชั่นวิดีโอ
24. นึ่งในเมนูด้านบนขวา 
- เฉพาะผลิตภัณฑ์ที่สมาชิกนึ่งเท่านั้นที่จะแสดง
- เฉพาะแบรนด์ที่มีสมาชิกที่มีสมาชิกในกล่องวิทยุด้านซ้ายเท่านั้น
25. 
- เฉพาะผลิตภัณฑ์ที่สมาชิกเพิ่มลงในตะกร้าสินค้าเท่านั้น
- คลิกปุ่มหัวใจในรายการเพื่อเพิ่มคุณสมบัติการนึ่ง/การลบ
- คลิกปุ่มตะกร้าสินค้าทางด้านขวาของรายการผลิตภัณฑ์เพื่อใช้รถเข็น
- เมื่อคุณคลิกเพื่อสั่งซื้อไปที่หน้าการชำระเงิน
26. หน้าชำระเงิน 
- เมื่อคุณคลิกที่ตะกร้าสินค้าของคุณรับผลิตภัณฑ์เต็มรูปแบบของรถเข็นของคุณ
- หากคุณคลิกที่หน้ารายละเอียดผลิตภัณฑ์โดยตรงเฉพาะผลิตภัณฑ์จะถูกนำเข้า
- เมื่อคุณคลิกคลิกเพื่อเสร็จสิ้นการสั่งซื้อให้ไปที่หน้าการชำระเงิน
27. หน้าจอการชำระเงิน 
28. เมื่อการชำระเงินล้มเหลว 
- หน้าต่างการแจ้งเตือนที่มีข้อผิดพลาดมีหน้าต่างการแจ้งเตือน
29. เมื่อการชำระเงินประสบความสำเร็จ 
- มีหน้าต่างการแจ้งเตือนรวมถึงรายละเอียดความสำเร็จและการคลิกในการยืนยันจะไปที่หน้าหลัก
30. 
- คุณสามารถเห็นประวัติความสำเร็จ/ความล้มเหลว