Skip to content

Latest commit

 

History

History
271 lines (238 loc) · 11.7 KB

README.md

File metadata and controls

271 lines (238 loc) · 11.7 KB

모바일 지갑 프로젝트

프로젝트 소개

프로젝트 명 : SSOK, 모바일 지갑 서비스
  • 주요 기능

    • 명함 등록 : 명함 촬영하거나 생성하여 정보를 저장할 수 있음
    • 명함 교환 : 서비스 이용자끼리 가지고 있는 명함을 교환하는 기능
    • 포인트 적립 : 특정 물건 구매 시 탄소중립 포인트 제공
    • 이체, 기부 : 적립된 포인트로 이체, 기부가 가능하며, 기부 시 캐릭터의 경험치가 상승
    • 결제, 영수증 : 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
  • 배포 환경


목차

1. 주요 서비스
2. 개발 기간
3. 서비스 시연
4. 팀원 및 역할
5. 주요 기술
6. 산출물

SSOK: 모바일 지갑 서비스





프로젝트 기간 : 2023.10.9 ~ 2023.11.17 (6주)

SSOK

지갑의 모든 것이 SSOK

SSOK 기획

  • 많은 사람들이 명함을 교환하고 정리하며 더이상 사용하지 않는 명함들은 폐기됩니다.
  • 또한 구매를 한 후 생기는 영수증의 대부분은 사람에게 전달되는 것이 아닌 쓰레기통으로 버려집니다.
  • 이렇게 낭비되는 자원을 줄여 환경을 보호하고, 사용자에게 보다 편리한 명함관리와 영수증 관리를 제공하기 위해 전자명함과 전자 영수증 서비스를 기획하였습니다.
  • 그리고 위 기능에 카드와 주민등록증을 추가하여 현재의 서비스인 모바일 지갑 서비스를 만들게 되었습니다.

SSOK 소개

  • SSOK은 사용자의 지갑에 들어가는 명함, 영수증, 카드, 신분증 등을 모바일로 이용하는 서비스입니다.
  • 사용자는 본인의 명함을 등록하고 다른 사용자와 교환할 수 있으며, 편의를 위해 메모 기능과 교환한 위치 등 명함과 관련된 부가 정보를 기록할 수 있습니다.
  • 사용자가 종이 명함을 받을 경우 이를 촬영하면 명함의 내용들을 기록하며 저장할 수 있습니다.
  • NFC기능을 통해 결제를 진행할 수 있으며, 결제정보가 전자영수증으로 등록되고, 카드 결제 내역이 기록됩니다.
  • 사용자가 결제한 영수증에서 특정 물건을 구매한 기록이 있으면 탄소중립포인트가 적립됩니다.
  • 사용자는 생성된 포인트를 기부하거나 이체하여 사용할 수 있으며, 기부할 경우 SSOK 캐릭터의 레벨이 상승합니다.
  • 사용자는 신분증(주민등록증, 면허증)을 촬영하여 등록할 수 있고, 내용은 자동으로 정리되어 등록됩니다.

주요 서비스 소개

회원 관련 기능

  1. 회원가입
    1. 회원가입 시 문자인증이 필요합니다.
  2. 회원가입 완료
    1. 회원가입을 완료하면 간단한 튜토리얼과 설명을 볼 수 있습니다.

신분증 관련 기능

  1. 신분증 등록

    1. 신분증을 등록하기 위해 약관 동의를 진행합니다.
    2. 동의 후 신분증을 촬영합니다.
    3. 신분증이 아닌 다른것을 촬영할 경우 OCR인식 실패라는 메시지와 함께 화면으로 돌아갑니다.
    4. 운전면허증과 주민등록증도 구분이 되며, 교차하여 입력할 경우 등록이 불가합니다.
    5. 촬영된 사진을 바탕으로 신분증의 정보가 입력되며, 오타가 있는경우 수정할 수 있습니다.
    6. 오타를 수정하지 않아 유효하지 않은 데이터가 입력될 경우 등록이 실패합니다.
    7. 수정을 완료한 후 등록을 진행하면 신분증이 등록됩니다.
  2. 신분증 조회

    1. 신분증이 등록된 후 이름과 생년월일 등 간단한 정보를 조회할 수 있습니다.
    2. 등록된 신분증에서 자세히를 클릭할 경우 신분증의 모든 정보를 확인할 수 있습니다.

명함 관련 기능

  1. 명함 등록

    1. 사진 촬영으로 명함을 등록할 수 있습니다.
      1. 사진 촬영 시 해당 정보에 맞게 자동으로 값이 입력되며, 오타가 있는 경우 수정할 수 있습니다.
    2. 파일 업로드를 통해 명함을 등록할 수 있습니다.
      1. 업로드된 파일은 해당 정보에 맞게 자동으로 값이 입력되며, 오타가 있는 경우 수정할 수 있습니다.
    3. 명함을 직접 생성할 수 있습니다.
      1. 명함 템플릿을 제공하여 사용자만의 명함을 생성할 수 있습니다.
      2. 각 정보를 직접 입력한 후 위치를 변경할 수 있습니다.
      3. 원하는 정보들을 입력한 후 생성을 누르면 사용자의 커스텀 명함이 생성됩니다.
  2. 명함 교환

    1. 사용자가 가진 명함을 교환할 수 있습니다.
      1. 명함을 교환할 경우 교환된 위치가 저장됩니다.
      2. 명함 교환 당시의 메모를 명함에 기록할 수 있습니다.
  3. 명함 갱신

    1. 사용자의 직급이 올라간 경우 등 명함을 갱신할 수 있습니다.
    2. 명함이 갱신된 명함들은 타임라인으로 확인할 수 있습니다.

포켓 관련 기능

  1. 포켓머니 생성
    1. 특정 상품을 구매할 경우 포켓머니가 적립됩니다.
  2. 이체
    1. 적립된 포켓머니는 계좌로 이체할 수 있습니다.
    2. 보유한 포켓머니 이상의 금액을 이체할 경우 이체를 실패합니다.
  3. 기부
    1. 현재 진행중인 기부에 보유한 포켓머니를 바탕으로 기부를 진행할 수 있습니다.
    2. 보유한 포켓머니 이상의 금액을 이체할 경우 이체를 실패합니다.
    3. 기부를 진행할 경우 누적 기부금 금액이 상승합니다.
  4. 내역 조회하기
    1. 포켓머니를 클릭하면 내가 진행한 이체, 기부 내역을 조회할 수 있습니다.
    2. 특정 상품구매로 포켓머니가 적립될 경우 우측 상단의 적립 누적 금액이 상승합니다.
    3. 기부 또는 이체를 진행할 경우 우측 상단 사용 금액이 상승합니다.
  5. SSOK 캐릭터 키우기
    1. SSOK 캐릭터는 5레벨까지 있으며 기부를 진행할 경우 캐릭터의 레벨이 상승합니다.
  6. 잔돈 저금하기
    1. 결제 시 천원이하의 단위는 저축을 진행할 수 있습니다.
    2. 상단의 버튼을 클릭하여 활성화시키면 결제 시마다 저축이 진행됩니다.

카드 관련 기능

  1. 결제 기능
    1. 결제를 위해 카드에 생체 인증을 진행하여야 합니다.
    2. 인증을 진행하면 60초 간 결제를 진행할 수 있습니다.
    3. 60초 내로 결제를 진행하지 않으면 시간초과 메시지와 함께 다시 카드 선택 화면으로 돌아갑니다.
  2. 결제내역 확인 기능
    1. 현재 선택된 카드와 함께 진행된 결제의 내역을 월별로 확인할 수 있습니다.
    2. 결제내역을 조회할 경우 결제 장소, 날짜, 금액을 조회할 수 있습니다.
    3. 결제 진행 시 전자영수증이 발급되며, 해당 결제내역을 클릭할 경우 영수증 상세내역을 확인할 수 있습니다.
    4. 영수증 상세내역을 확인할 경우 결제 시간, 승인 번호, 거래 유형, 할부 정보, 구매한 상품 항목 및 개수와 금액, 부가세액 및 가맹점명을 확인할 수 있습니다.

영수증 관련 기능

  1. 전자영수증 기능
    1. 영수증을 클릭할 경우 월별로 사용자가 발급받은 전자영수증 목록을 확인할 수 있습니다.
    2. 항목을 클릭할 경우 결제 시간, 승인 번호, 거래 유형, 할부 정보, 구매한 상품 항목 및 개수와 금액, 부가세액 및 가맹점명을 확인할 수 있습니다.

🤝 팀원 및 역할


marugy

najonghyun

signalman
신규람 나종현 신호인

byh9811

jinsikhong

yhj0214
배용현 홍진식 유호재

기술 소개

OCR

  • 신분증과 명함 등록 시 OCR 기술을 활용합니다.
  • 네이버 클로바 API와 연동하여 필요한 정보만 추출하여 사용자 편의성을 향상시켰습니다.

NFC

  • 카드 결제 기능을 구현할 때, NFC 기술을 활용합니다.
  • Flutter NFC_Manager를 사용하여, 기기의 NFC 가능 여부와, 읽기, 쓰기 함수를 구현 하여 결제시스템을 구축했습니다.

Nearby Connection

  • Flutter의 nearbyConnection 패키지를 사용해 사용자 간 명함정보를 교환하도록 했습니다.
  • 양방향 커뮤니케이션 채널을 통해 30미터 이내에 있는 사용자끼리 연결하고 P2P 방식으로 정보를 전송합니다.

MSA

  • 한 서비스에 장애가 발생하더라도 다른 서비스는 정상적으로 서비스하기 위해 MSA를 채택했습니다.
  • 각각 도메인마다 GCP 인스턴스를 생성하고, jenkins를 통해 CI/CD를 구축했습니다.

산출물

WBS

ERD

기능 명세서

API 명세서