Projet de centre commercial Internet JSP
Période du projet: 21.01.13 ~ 21.01.29
Lien de déploiement EC2: http://15.164.166.37/shop La licence gratuite expire à la distribution du serveur EC2.
Vidéo de démonstration: https://youtu.be/umdegow_ulq
environnement
- Windows 10
- JDK 1.8
- Tomcat 9.0
- Outil STS
- Mysql 8.0
- Lombok
- Gon
- JSTL
- Filtre Naver Lucy
- SHA-256
- Encodage: UTF-8
Conception et produit, image du produit, site de référence de description du produit
- Brandy
- https://www.brandi.co.kr/
- Trenbi
- Chauve
- https://www.balaan.co.kr/
Référence
- Le paiement réel est effectué lorsque le paiement est terminé sur l'écran de paiement et que le remboursement automatique est traité avant midi.
Utiliser l'API
- API de connexion Kakao
- https://developers.kakao.com/product/kakaologin
- API de connexion Naver
- https://nid.naver.com/user2/campaign/intronaveridlogin.nhn.nhn
- Dans le cas de la connexion Naver et Kakao, lorsque la connexion initiale est déplacée vers la fenêtre d'entrée d'information, l'insert a été inséré dans le tableau utilisateur pour la valeur d'entrée et la valeur ID reçue du serveur Naver / Kakao.
- Plus tard, pendant la connexion, l'ID unique de Kakao et les valeurs d'identification uniques de Naver ont été définies pour être connectées.
- API IMORT (service de paiement)
- https://www.iamport.kr/getstarted
- API Summernote
- SweetAlert2
- https://sweetalert2.github.io/
Création de base de données MySQL et création d'utilisateurs
CREATE USER ' shopuser '@ ' % ' identified by ' shop0805 ' ;
GRANT ALL privileges on * . * TO ' shopuser ' @ ' % ' ;
create database shopdb ;
Création de table 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()
); Fonctions implémentées
1. Inscrivez-vous à l'adhésion 
- Le mot de passe entré lors de l'enregistrement est codé en SHA-256 et stocké dans la base de données.
2. Connexion 
3. Connexion kakao 
4. Connexion Naver 
La première connexion de Naver / Kakao requise pour saisir des informations supplémentaires 
5. Déconnexion
6. Page principale 
- J'ai utilisé du carrousel.
- La disposition de la grille est utilisée.
7. Menu par marque de barre supérieure 
- Utilisez l'instruction SELECT pour afficher tout le nom de l'entreprise de la table de l'entreprise. (Même si l'entreprise est ajoutée, il n'est pas nécessaire de le modifier séparément.)
- Il y a des en-têtes et des barres supérieures sur toutes les pages, vous pouvez donc utiliser le filtre pour l'utiliser sur toutes les pages.
8. Page de menu de marque de marque 
9. Fonction de recherche 
- Il affiche tous les produits qui contiennent des termes de recherche et tous les résultats de l'entreprise.
10. Page de classement net de volume de vente 
- Lorsqu'un utilisateur achète un produit, le nombre d'achats de la table de produit augmentera et le résultat est le résultat du volume des ventes en utilisant la commande par SoldCount Desc.
11. Sur toute la page du produit, 
- C'est une fonctionnalité qui ne voit que les produits de la marque de marque sur le côté gauche.
12. Ajouter le menu supérieur lors de la connexion 
- Si la note de l'utilisateur est supérieure à l'administrateur, un menu d'enregistrement de produit et de modification du produit sera créé.
- Si l'utilisateur est plus que basique, cuit à la vapeur, panier d'achat, modification des informations et menu de déconnexion sera créé.
13. Reconfirmer le mot de passe lors de la clic sur les informations 
- Lorsque l'utilisateur entre le mot de passe qu'il a défini, la valeur d'entrée est appliquée au codage SHA-256 pour le comparer avec la valeur stockée dans la DB.
14. Modification des informations sur l'adhésion 
15. Page de produit détaillée -Top 
- Sélectionnez la valeur de la table du produit.
- Si vous cliquez sur le bouton d'achat correctement, accédez à la page de paiement. (Seulement au moment de la connexion)
- Si vous cliquez sur le bouton du panier, il est ajouté au chariot. (Seulement au moment de la connexion)
- Si vous cliquez sur le bouton de vapeur, il est ajouté à la liste de vapeur. (Seulement au moment de la connexion)

- Lorsque vous cliquez sur le bouton pendant la connexion

- Lorsque vous cliquez sur le bouton dans l'état
- Accédez à la page d'adhésion lorsque vous cliquez sur l'adhésion.
16. Page de produit détaillée -TAB 
- Cliquez sur chaque onglet pour aller à l'endroit où l'onglet est présent.
- J'ai utilisé une position collante.
- En allant à l'endroit où se trouve chaque onglet, la ligne noire s'affiche en bas de cet onglet.
17. Page de produit détaillée - Onglet Review et onglet Q&R 
- Cliquez sur le titre pour accéder à la page détaillée.
- Dans le cas de Q&R, si vous entrez votre mot de passe lorsque vous écrivez, vous ne pourrez pas voir le titre et le nom de l'auteur.
- Appuyez sur la flèche en bas à droite pour aller immédiatement en haut de la page.
18. Examen détaillé, Page de questions / réponses 
19. 
- Après avoir confirmé le mot de passe, si vous correspondez, accédez à la page de détail.
20. Lorsque vous cliquez sur l'ensemble de l'examen 
- Vous pouvez charger le contenu du produit que vous regardiez ensemble, et vous pouvez accéder à la page du produit lorsque vous cliquez sur la photo du produit.
21. Lorsque vous cliquez sur l'ensemble des questions et réponses 
- Vous pouvez charger le contenu du produit que vous regardiez ensemble, et vous pouvez accéder à la page du produit lorsque vous cliquez sur la photo du produit.
- Les secrets sont également cachés ici.
22. Lors de la rédaction d'une critique 
- Summernote a été utilisé à l'exception des photographies et des fonctions vidéo.
23. Lorsque vous cliquez sur les questions et réponses 
- Summernote a été utilisé à l'exception des photographies et des fonctions vidéo.
24. À la vapeur dans le menu en haut à droite 
- Seuls les produits dont les membres sont à la vapeur sont présentés.
- Seule la marque cuite à la vapeur par le membre de la radio gauche est également affichée.
25 
- Seuls les produits que le membre ont ajoutés au panier sont présentés.
- Cliquez sur le bouton Heart sur la liste pour ajouter des fonctionnalités cuites à la vapeur / de suppression.
- Cliquez sur le bouton du panier d'achat sur le côté droit de la liste de produits pour utiliser le panier.
- Lorsque vous cliquez pour commander, accédez à la page de paiement.
26. Page de paiement 
- Lorsque vous cliquez sur votre panier, obtenez le produit complet de votre panier.
- Si vous cliquez directement sur la page de détail du produit, seul le produit est importé.
- Lorsque vous cliquez sur Cliquez pour terminer la commande, accédez à la page de paiement.
27. Écran de paiement 
28. Lorsque l'échec du paiement 
- Une fenêtre de notification contenant l'erreur contient une fenêtre de notification.
29. Lorsque le succès du paiement 
- Il y a une fenêtre de notification comprenant les détails de réussite et les clics sur la confirmation iront à la page principale.
30 
- Vous pouvez voir l'histoire du succès / de l'échec.