휴대폰에 이미지로 저장하는 기프티콘을 까먹지 말고 쓰자는 취지에서 기획한
기프티콘 이미지를 업로드하면 사용 여부 및 사용 기한을 확인할 수 있도록 하는 서비스❣️
기프티콘을 유효기간 또는 등록 순으로 원하는 대로 정렬하여 확인할 수 있고,
유효기간이 임박했을 경우에는 사용자 디바이스에게 알림을 주어 기프티콘을 잊지 않고 사용할 수 있게 도와주는 것이 주 기능입니다.
또한 보유하고 있는 기프티콘을 다른 사용자에게 선물할 수 있으며 기프티콘을 사용완료 처리를 하여 사용내역도 확인할 수 있습니다.
기프티콘을 주로 사용하는 디바이스가 모바일이기 때문에 모바일 웹앱으로 개발하기로 결정하였습니다.
1️⃣ 회원가입/로그인
2️⃣ 이메일 찾기/비밀번호 찾기
3️⃣ 기프티콘을 등록하기
4️⃣ 기프티콘 카드 리스트 보기(마감날짜순, 가격순, 등록순)
5️⃣ 기프티콘 사용완료 처리하기 및 삭제하기
6️⃣ 로그아웃
📦
client
│ src
│ ├─ apis
│ │ ├─ auth.js
│ │ ├─ client.js
│ │ └─ post.js
│ ├─ assets
│ │ ├─ gifticonSample.jpeg
│ │ ├─ starbucks.jpg
│ │ ├─ starbucks2.jpg
│ │ └─ starbucks3.jpeg
│ ├─ components
│ │ ├─ auth
│ │ │ ├─ confirm.js
│ │ │ ├─ index.js
│ │ │ ├─ login.js
│ │ │ ├─ register.js
│ │ │ └─ verify.js
│ │ ├─ common
│ │ │ ├─ dropdownMenu.js
│ │ │ ├─ header.js
│ │ │ ├─ index.js
│ │ │ └─ inputForm.js
│ │ └─ main
│ │ ├─ cardDetail.js
│ │ ├─ cardList.js
│ │ └─ index.js
│ ├─ constants
│ │ └─ constant.js
│ ├─ core
│ │ └─ router.js
│ ├─ main.js
│ ├─ pages
│ │ ├─ AuthPage.js
│ │ ├─ HomePage.js
│ │ ├─ MainPage.js
│ │ ├─ NotFoundPage.js
│ │ ├─ PostPage.js
│ │ └─ index.js
│ ├─ styles
│ │ ├─ auth.scss
│ │ ├─ color.scss
│ │ ├─ common.scss
│ │ ├─ global.scss
│ │ ├─ header.scss
│ │ ├─ home.scss
│ │ ├─ main.scss
│ │ ├─ post.scss
│ │ └─ util.scss
│ └─ utils
│ ├─ EventMonad.js
│ ├─ IOMonad.js
│ ├─ Maybe.js
│ ├─ customFx.js
│ ├─ domFx.js
│ ├─ drag.js
│ ├─ index.js
│ ├─ screenSize.js
│ ├─ slider.js
│ ├─ templateGenerator.js
│ └─ timer.js
└─ vite.config.js
📦
src
├── main
│ ├── generated
│ ├── java
│ │ └── com
│ │ └── amatta
│ │ └── amatta_server
│ │ ├── AmattaServerApplication.java
│ │ ├── aop
│ │ │ ├── AuthorizationAop.java
│ │ │ ├── ClassRequiresAuth.java
│ │ │ └── MethodRequiresAuth.java
│ │ ├── exception
│ │ │ ├── DuplicateGifticonException.java
│ │ │ ├── GifticonNotSupportedException.java
│ │ │ └── NotAuthenticatedException.java
│ │ ├── fcm
│ │ │ ├── FCMInitializer.java
│ │ │ ├── controller
│ │ │ │ └── FCMController.java
│ │ │ ├── dto
│ │ │ │ └── TokenRegisterDto.java
│ │ │ ├── model
│ │ │ │ └── FCMToken.java
│ │ │ ├── repository
│ │ │ │ └── DeviceTokenRepository.java
│ │ │ └── service
│ │ │ └── FCMService.java
│ │ ├── gifticon
│ │ │ ├── controller
│ │ │ │ └── GifticonController.java
│ │ │ ├── dto
│ │ │ │ ├── GifticonDto.java
│ │ │ │ ├── GifticonImageDto.java
│ │ │ │ └── GifticonTextDto.java
│ │ │ ├── enums
│ │ │ │ └── GifticonMapperEnum.java
│ │ │ ├── model
│ │ │ │ └── Gifticon.java
│ │ │ ├── repository
│ │ │ │ └── GifticonRepository.java
│ │ │ ├── service
│ │ │ │ └── GifticonService.java
│ │ │ └── util
│ │ │ ├── GifticonMapper.java
│ │ │ ├── GifticonMapperFactory.java
│ │ │ ├── KakaoGifticonMapper.java
│ │ │ ├── NaverAPIRequestGenerator.java
│ │ │ ├── NoMatchMapper.java
│ │ │ └── RequestGenerator.java
│ │ ├── index
│ │ │ └── IndexController.java
│ │ └── user
│ │ ├── controller
│ │ │ └── UserController.java
│ │ ├── dto
│ │ │ ├── UserChangePasswordReq.java
│ │ │ ├── UserChangePasswordRes.java
│ │ │ ├── UserEmailExistRes.java
│ │ │ ├── UserFindEmailReq.java
│ │ │ ├── UserFindEmailRes.java
│ │ │ ├── UserFindPasswordByEmailReq.java
│ │ │ ├── UserFindPasswordByEmailRes.java
│ │ │ ├── UserJoinReq.java
│ │ │ ├── UserJoinRes.java
│ │ │ ├── UserLoginReq.java
│ │ │ ├── UserLoginRes.java
│ │ │ ├── UserLogoutRes.java
│ │ │ ├── UserMypageRes.java
│ │ │ └── UserPhoneNumExistRes.java
│ │ ├── model
│ │ │ └── Users.java
│ │ ├── repository
│ │ │ └── UserRepository.java
│ │ └── service
│ │ ├── MailService.java
│ │ └── UserService.java
│ └── resources
│ ├── application.properties
│ └── team7-amatta-firebase-adminsdk-pa4f5-612a44bb30.json
└── test
├── generated_tests
└── java
└── com
└── amatta
└── amatta_server
├── AmattaServerApplicationTests.java
├── DatabaseTest.java
├── FCMRepoTest.java
├── GifticonControllerTest.java
└── user
└── UserControllerTest.java
Name | Country | Where to find us | Role |
---|---|---|---|
MinJi Chang |
Republic of Korea | Github | FRONTEND |
JangOh Jeong |
Republic of Korea | Github | FRONTEND |
TaeWan Kim |
Republic of Korea | Github | BACKEND |
덕진 장 |
Republic of Korea | Github | BACKEND |