-
주요 기능
- 명함 등록 : 명함 촬영하거나 생성하여 정보를 저장할 수 있음
- 명함 교환 : 서비스 이용자끼리 가지고 있는 명함을 교환하는 기능
- 포인트 적립 : 특정 물건 구매 시 탄소중립 포인트 제공
- 이체, 기부 : 적립된 포인트로 이체, 기부가 가능하며, 기부 시 캐릭터의 경험치가 상승
- 결제, 영수증 : NFC를 활용하여 결제 시 전자영수증 및 결제내역 생성
- 신분증 : 신분증을 촬영하여 OCR분석 후 내용을 저장
-
주요 기술
- Frontend
- Flutter
- TypeScript
- Backend
- Spring Boot
- JPA
- QueryDSL
- Spring Cloud Config
- Spring Security
- JWT
- Redis
- MongoDB
- MariaDB
- Infra
- AWS
- GCP
- OCI
- Nginx
- Docker
- Jenkins
- API
- Naver Cloval OCR
- Naver Cloud Platfrom SMS
- Naver Map API
- Tool
- GitLab
- Jira
- Figma
- Notion
- MatterMost
- Frontend
-
배포 환경
- HomePage: https://k9c107.p.ssafy.io/
- POS: https://ssok.site
1. 주요 서비스
2. 개발 기간
3. 서비스 시연
4. 팀원 및 역할
5. 주요 기술
6. 산출물
- 많은 사람들이 명함을 교환하고 정리하며 더이상 사용하지 않는 명함들은 폐기됩니다.
- 또한 구매를 한 후 생기는 영수증의 대부분은 사람에게 전달되는 것이 아닌 쓰레기통으로 버려집니다.
- 이렇게 낭비되는 자원을 줄여 환경을 보호하고, 사용자에게 보다 편리한 명함관리와 영수증 관리를 제공하기 위해 전자명함과 전자 영수증 서비스를 기획하였습니다.
- 그리고 위 기능에 카드와 주민등록증을 추가하여 현재의 서비스인 모바일 지갑 서비스를 만들게 되었습니다.
- SSOK은 사용자의 지갑에 들어가는 명함, 영수증, 카드, 신분증 등을 모바일로 이용하는 서비스입니다.
- 사용자는 본인의 명함을 등록하고 다른 사용자와 교환할 수 있으며, 편의를 위해 메모 기능과 교환한 위치 등 명함과 관련된 부가 정보를 기록할 수 있습니다.
- 사용자가 종이 명함을 받을 경우 이를 촬영하면 명함의 내용들을 기록하며 저장할 수 있습니다.
- NFC기능을 통해 결제를 진행할 수 있으며, 결제정보가 전자영수증으로 등록되고, 카드 결제 내역이 기록됩니다.
- 사용자가 결제한 영수증에서 특정 물건을 구매한 기록이 있으면 탄소중립포인트가 적립됩니다.
- 사용자는 생성된 포인트를 기부하거나 이체하여 사용할 수 있으며, 기부할 경우 SSOK 캐릭터의 레벨이 상승합니다.
- 사용자는 신분증(주민등록증, 면허증)을 촬영하여 등록할 수 있고, 내용은 자동으로 정리되어 등록됩니다.
- 회원가입
- 회원가입 시 문자인증이 필요합니다.
- 회원가입 완료
- 회원가입을 완료하면 간단한 튜토리얼과 설명을 볼 수 있습니다.
-
신분증 등록
- 신분증을 등록하기 위해 약관 동의를 진행합니다.
- 동의 후 신분증을 촬영합니다.
- 신분증이 아닌 다른것을 촬영할 경우 OCR인식 실패라는 메시지와 함께 화면으로 돌아갑니다.
- 운전면허증과 주민등록증도 구분이 되며, 교차하여 입력할 경우 등록이 불가합니다.
- 촬영된 사진을 바탕으로 신분증의 정보가 입력되며, 오타가 있는경우 수정할 수 있습니다.
- 오타를 수정하지 않아 유효하지 않은 데이터가 입력될 경우 등록이 실패합니다.
- 수정을 완료한 후 등록을 진행하면 신분증이 등록됩니다.
-
신분증 조회
- 신분증이 등록된 후 이름과 생년월일 등 간단한 정보를 조회할 수 있습니다.
- 등록된 신분증에서 자세히를 클릭할 경우 신분증의 모든 정보를 확인할 수 있습니다.
-
명함 등록
- 사진 촬영으로 명함을 등록할 수 있습니다.
- 사진 촬영 시 해당 정보에 맞게 자동으로 값이 입력되며, 오타가 있는 경우 수정할 수 있습니다.
- 파일 업로드를 통해 명함을 등록할 수 있습니다.
- 업로드된 파일은 해당 정보에 맞게 자동으로 값이 입력되며, 오타가 있는 경우 수정할 수 있습니다.
- 명함을 직접 생성할 수 있습니다.
- 명함 템플릿을 제공하여 사용자만의 명함을 생성할 수 있습니다.
- 각 정보를 직접 입력한 후 위치를 변경할 수 있습니다.
- 원하는 정보들을 입력한 후 생성을 누르면 사용자의 커스텀 명함이 생성됩니다.
- 사진 촬영으로 명함을 등록할 수 있습니다.
-
명함 교환
- 사용자가 가진 명함을 교환할 수 있습니다.
- 명함을 교환할 경우 교환된 위치가 저장됩니다.
- 명함 교환 당시의 메모를 명함에 기록할 수 있습니다.
- 사용자가 가진 명함을 교환할 수 있습니다.
-
명함 갱신
- 사용자의 직급이 올라간 경우 등 명함을 갱신할 수 있습니다.
- 명함이 갱신된 명함들은 타임라인으로 확인할 수 있습니다.
- 포켓머니 생성
- 특정 상품을 구매할 경우 포켓머니가 적립됩니다.
- 이체
- 적립된 포켓머니는 계좌로 이체할 수 있습니다.
- 보유한 포켓머니 이상의 금액을 이체할 경우 이체를 실패합니다.
- 기부
- 현재 진행중인 기부에 보유한 포켓머니를 바탕으로 기부를 진행할 수 있습니다.
- 보유한 포켓머니 이상의 금액을 이체할 경우 이체를 실패합니다.
- 기부를 진행할 경우 누적 기부금 금액이 상승합니다.
- 내역 조회하기
- 포켓머니를 클릭하면 내가 진행한 이체, 기부 내역을 조회할 수 있습니다.
- 특정 상품구매로 포켓머니가 적립될 경우 우측 상단의 적립 누적 금액이 상승합니다.
- 기부 또는 이체를 진행할 경우 우측 상단 사용 금액이 상승합니다.
- SSOK 캐릭터 키우기
- SSOK 캐릭터는 5레벨까지 있으며 기부를 진행할 경우 캐릭터의 레벨이 상승합니다.
- 잔돈 저금하기
- 결제 시 천원이하의 단위는 저축을 진행할 수 있습니다.
- 상단의 버튼을 클릭하여 활성화시키면 결제 시마다 저축이 진행됩니다.
- 결제 기능
- 결제를 위해 카드에 생체 인증을 진행하여야 합니다.
- 인증을 진행하면 60초 간 결제를 진행할 수 있습니다.
- 60초 내로 결제를 진행하지 않으면 시간초과 메시지와 함께 다시 카드 선택 화면으로 돌아갑니다.
- 결제내역 확인 기능
- 현재 선택된 카드와 함께 진행된 결제의 내역을 월별로 확인할 수 있습니다.
- 결제내역을 조회할 경우 결제 장소, 날짜, 금액을 조회할 수 있습니다.
- 결제 진행 시 전자영수증이 발급되며, 해당 결제내역을 클릭할 경우 영수증 상세내역을 확인할 수 있습니다.
- 영수증 상세내역을 확인할 경우 결제 시간, 승인 번호, 거래 유형, 할부 정보, 구매한 상품 항목 및 개수와 금액, 부가세액 및 가맹점명을 확인할 수 있습니다.
- 전자영수증 기능
- 영수증을 클릭할 경우 월별로 사용자가 발급받은 전자영수증 목록을 확인할 수 있습니다.
- 항목을 클릭할 경우 결제 시간, 승인 번호, 거래 유형, 할부 정보, 구매한 상품 항목 및 개수와 금액, 부가세액 및 가맹점명을 확인할 수 있습니다.
marugy |
najonghyun |
signalman |
신규람 | 나종현 | 신호인 |
byh9811 |
jinsikhong |
yhj0214 |
배용현 | 홍진식 | 유호재 |
- 신분증과 명함 등록 시 OCR 기술을 활용합니다.
- 네이버 클로바 API와 연동하여 필요한 정보만 추출하여 사용자 편의성을 향상시켰습니다.
- 카드 결제 기능을 구현할 때, NFC 기술을 활용합니다.
- Flutter NFC_Manager를 사용하여, 기기의 NFC 가능 여부와, 읽기, 쓰기 함수를 구현 하여 결제시스템을 구축했습니다.
- Flutter의 nearbyConnection 패키지를 사용해 사용자 간 명함정보를 교환하도록 했습니다.
- 양방향 커뮤니케이션 채널을 통해 30미터 이내에 있는 사용자끼리 연결하고 P2P 방식으로 정보를 전송합니다.
- 한 서비스에 장애가 발생하더라도 다른 서비스는 정상적으로 서비스하기 위해 MSA를 채택했습니다.
- 각각 도메인마다 GCP 인스턴스를 생성하고, jenkins를 통해 CI/CD를 구축했습니다.