김정훈 | 김동익 | 김동현 | 김용범 | 조해린 | 최한윤 |
---|---|---|---|---|---|
Front-End Team Leader |
Front-End | Back-End Infra |
Front-End | Back-End Infra |
Back-End |
GAPPA는 주변 지인과 일어나는 대출에서 발생하는 문제를 해결하고자
은행보다 간편하고, 개인거래보다 안전한 1대1 소액 대출 서비스입니다.
은행에서 대출받기 어려울 때 주변 지인과의 간편한 소액대출 |
---|
프로필 확인을 통해 상대방의 신용도 및 안전 거래 보증 |
---|
보안 키보드와 자체 인증서를 통한 개인정보 보호 |
---|
개인거래에 취약한 법적 자료를 보충해주는 차용증 제공 |
---|
- 기존의 은행에 필요한 복잡한 절차를 간소화
- 연락처 또는 이름 검색을 통해 지인을 검색하고 친구 요청
- 대출 대상의 프로필을 통한 신용도를 확인하여 안전한 거래 대상인지 확인
- 차용증을 통해 대출 사기에 대한 법적 자료 보충 및 대비책을 제공
- 자체 보안키보드를 통한 사용자 비밀번호 탈취 방지
- 대출 일자에 따른 상태를 자동으로 업데이트 하며, 기한이 지난 대출 건에 대해 강제 이체 기능 제공
- PWA 를 사용하여 모바일과 웹 호환
- FCM을 통해 사용자에게 발생한 이벤트를 즉각적으로 알림
- 대출 기한이 가까워지면, 스케줄러를 사용하여 주기적인 알림
- Spring Batch를 사용하여 대출 상태를 관리하며, 대출 기한이 가까워지면 자동 알림
초기접속 시 1회 서비스 이용방법에 대한 안내를 확인할 수 있습니다.
이전에 가입한 아이디와 비밀번호로 로그인할 수 있습니다.
키로거 공격 예방을 위해 자체 보안 키보드를 사용해 비밀번호를 입력합니다.
![](https://private-user-images.githubusercontent.com/107869536/285376552-90e62947-5d37-461a-aa58-c3a762413b1a.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMDc4Njk1MzYvMjg1Mzc2NTUyLTkwZTYyOTQ3LTVkMzctNDYxYS1hYTU4LWMzYTc2MjQxM2IxYS5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MTI2OTQzOGYwZGI0NDQ2Y2ZmYmYwODNmYzg3NTBkNjI2ZjIxYzNjYjk4OTc2OWQ4MmNmOTJjYTlmY2U0NWQ5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.HtE9HQdUDoN6fONezri4qF9ABoZWbrv71Ev5fkLWz2A)
내 프로필과 대출현황에 따른 신뢰도를 확인할 수 있습니다.
내 프로필 정보를 수정할 수 있습니다.
내가 보유한 계좌 중 대출 거래에 사용할 대표 계좌를 선택 및 변경할 수 있습니다.
![](https://private-user-images.githubusercontent.com/107869536/285377088-ef3b78e4-bd59-4a64-9597-675e3c8676ac.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMDc4Njk1MzYvMjg1Mzc3MDg4LWVmM2I3OGU0LWJkNTktNGE2NC05NTk3LTY3NWUzYzg2NzZhYy5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yNjI3YTlmOTQxOWIwMzI5ZmU4NTVmYWFhN2VhNDQzZmQ5NGM4ODE5NWVkMzY1OGI5ZDM4ZDNiM2E1NzVjYmUxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.efbvp7dtSRJCWuaZIV--dWWx7d2C_fAp44GrXZaoMmg)
자체 공인인증서를 생성할 수 있습니다.
![](https://private-user-images.githubusercontent.com/107869536/285379249-9b545180-4b34-4278-851c-c19d42ae5c23.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMDc4Njk1MzYvMjg1Mzc5MjQ5LTliNTQ1MTgwLTRiMzQtNDI3OC04NTFjLWMxOWQ0MmFlNWMyMy5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MTI3NjgyOWQwNzRhYmFjNGEyZmI4Y2M4YmUxZjUwM2EzNGUyYzZiNjEzYWFlZDllYTcxYjkwZDY0OTc2ZTJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.cLZmuL34ESalfQsAy6I8tgtXJKov2G14BkBcvC7BoQY)
대출 약관을 동의하고 순서대로 대출굼, 상환일자, 대출사유를 입력합니다.
대출을 요청할 지인을 선택하고 자체공동인증서를 활용해 대출 신청을 완료하면 해당 지인에게 알람이 전송됩니다.
![](https://private-user-images.githubusercontent.com/107869536/285379396-9ec484bb-845b-4b9d-9f12-87f5dd91e79e.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMDc4Njk1MzYvMjg1Mzc5Mzk2LTllYzQ4NGJiLTg0NWItNGI5ZC05ZjEyLTg3ZjVkZDkxZTc5ZS5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ODQ2MzU2NTkzZTkwMGUxZmJhZTliMzdmNWI5MTRiOWQ4ZGIzYjM4YTEwOGZhN2IyNTgxZGQyOTQ4ODFhMzFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.rPjmJpgo-0X-RAurxhYwQrL2di5dcMoqGxoc7kMUqzc)
전체/상환완료/대출중/연체중 등 현황별 대출 및 대금 이력을 확인할 수 있습니다.
현재 대출중인 대출 내역을 선택해 상세 정보를 조회할 수 있습니다.
상환하기 버튼을 누르고 상환금액을 설정해 해당 대출 건에 대해 일부 또는 전체 상환이 가능합니다.
![](https://private-user-images.githubusercontent.com/107869536/285382110-bed06c43-18e1-4148-906f-3440c89c1ff7.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMDc4Njk1MzYvMjg1MzgyMTEwLWJlZDA2YzQzLTE4ZTEtNDE0OC05MDZmLTM0NDBjODljMWZmNy5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jOWUzMTRlOTNkYzU2ODkwNmM4Njk3NjIzNzE1NzI5NjZkMmI4MGJmMWZiZDdkNjRmMGVlODM3YmVlZDE5NWQ4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.pxSzFLVlzE0ce09SS-Ku5PepccRCfyAQCVV5eA_FxNk)
현재 연체중인 대출 내역을 선택해 연체일에 따른 이자금액을 포함한 상세 정보를 조회할 수 있습니다.
차용증 생성하기 버튼을 눌러 해당 거래 내역에 대한 차용증을 확인하고 PDF로 다운로드도 가능합니다.
![](https://private-user-images.githubusercontent.com/107869536/285382877-7314b514-be1a-4979-80e5-5a52ccaafda5.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMDc4Njk1MzYvMjg1MzgyODc3LTczMTRiNTE0LWJlMWEtNDk3OS04MGU1LTVhNTJjY2FhZmRhNS5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05MDFmYmMxYmYzY2MyYjU2ZTMzMTEyOWMyNGI5NWJlN2ZjN2FkNjZlMTc2NTNhM2VjNDUwNWY1YWUyMzRkNzdkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.wUU6lPiZPO6MK3TTRj-k2xIheQPNZ6q_DO4lsaxO0sM)
핸드폰번호 또는 이름 검색을 통해 지인을 검색하고 친구 요청을 보내면 해당 지인에게 알람이 전송됩니다.
![](https://private-user-images.githubusercontent.com/107869536/285383618-0496a0c4-3b4c-4b44-b33d-3566ed9bc813.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMDc4Njk1MzYvMjg1MzgzNjE4LTA0OTZhMGM0LTNiNGMtNGI0NC1iMzNkLTM1NjZlZDliYzgxMy5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02Y2NmYjM0NDYzZmQ5MzNkOTliODMwODQ2YzEyY2VhNTJjOTg2OTQ2NGQxNTYwYmNlZjQ2NDlmZDlhN2EzOTU4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.Z7nmkjBOqv1jilrOmoxPvaCkZrEqxzfSRytbKVYVlMc)
fcm을 활용한 푸쉬알림 기능입니다.
알림함을 통해 확인할 수 있습니다.
![](https://private-user-images.githubusercontent.com/107869536/285383822-6381216b-e62b-4bb6-b150-729bf0974a3d.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMDc4Njk1MzYvMjg1MzgzODIyLTYzODEyMTZiLWU2MmItNGJiNi1iMTUwLTcyOWJmMDk3NGEzZC5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05OWVhNDlkMGVhNjgzMjgxNDU1MGI5YTljZjFkM2U4OWU3YjJhMjg5NGJhNzgwMmVkYmQxZjUxMTI0Y2U0MDY0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.IZk96Tu8wLQ2qsWLe8xShPz3tDtdApeVs6w5feZky60)
![](https://private-user-images.githubusercontent.com/120110806/285389461-6e012201-22f2-477a-9585-4b1a18b2ef96.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0OTgxNDYsIm5iZiI6MTcyMzQ5Nzg0NiwicGF0aCI6Ii8xMjAxMTA4MDYvMjg1Mzg5NDYxLTZlMDEyMjAxLTIyZjItNDc3YS05NTg1LTRiMWExOGIyZWY5Ni5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMlQyMTI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jMWUzZDM0MDQwYzA2NTc3OTAzNzFhYWQ2OGVjODM2YjdmZTJlYWJhODZjNDgwZTRlYWM5Y2Q0NTUzYmE1NjkxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.Uv6n8NrRLmfJUimtglU2yqmU_qMCvKuMpbd7j4K0XAA)
📦BackEnd
┣ 📂gappa
┃ ┣ 📂gradle
┃ ┃ ┗ 📂wrapper
┃ ┃ ┃ ┣ 📜gradle-wrapper.jar
┃ ┃ ┃ ┗ 📜gradle-wrapper.properties
┃ ┣ 📂JenkinsFolder
┃ ┃ ┗ 📜Jenkinsfile
┃ ┣ 📂src
┃ ┃ ┣ 📂main
┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂sixheadword
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂gappa
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂account
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SetOthersPrimaryRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SetPrimaryReqeustDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GetAccountResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GetOthersAccountResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AccountRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AccountRepositoryCustom.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AccountRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Account.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AccountController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AccountService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂accountHistory
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SetAccountTransactionRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GetAccountTransactionResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AccountHistoryRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AccountHistoryRepositoryCustom.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AccountHistoryRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AccountHistory.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AccountHistoryController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AccountHistoryService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂allAccept
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AllAcceptController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂certificate
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CertificateEncodeDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CertificatePwDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CertificateController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CertificateService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Batch
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AfterPeriodLoanDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂itemProcessor
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AfterPeriodLoanProcessorCustom.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemProcessorConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂itemReader
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ItemReaderConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜QueueItemReader.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂itemWriter
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AfterPeriodLoanWriterCustom.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemWriterConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂job
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜JobConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂step
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StepConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AuthenticationConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜EncrypterConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜JwtFilter.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂creditRating
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CreditRating.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂FCM
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FCMTokenDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FCMController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FCMInitializer.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FCMService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂friendList
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FriendDeleteListRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FriendListResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FriendList.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FriendListController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FriendListRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FriendListService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂friendRequest
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FriendSearchFriendsUserDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FriendRequestListResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FriendRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FriendRequestController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FriendRequestRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FriendRequestService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂loan
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MoneyController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FailLoanRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanInfoRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RedemptionRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SuccessLoanRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GetLoanOppResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GetLoanRequestResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GetLoanResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanRepositoryCustom.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LoanRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MoneyService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Loan.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂loanHistory
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SetLoanTransactionRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GetLoanHistoryResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GetLoanTransactionResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanHistory.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Type.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanHistoryRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanHistoryRepositoryCustom.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LoanHistoryRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoanHistoryController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LoanHistoryService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂messageAlarm
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MessageAlarm.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂terms
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Terms.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂termsHistory
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂domain
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜TermsHistory.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TermsHistoryId.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂user
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CheckPhoneRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CheckPwRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CheckPhoneResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜User.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserCustomRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂utils
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜BatchScheduler.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtUtil.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RedisUtil.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RSAUtil.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SmsUtil.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂webAlarm
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WebAlarmResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜WebAlarm.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜WebAlarmRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WebAlarmService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GappaApplication.java
┃ ┃ ┃ ┗ 📂resources
┃ ┃ ┃ ┃ ┣ 📜application.yml
┃ ┃ ┃ ┃ ┗ 📜certification.json
┃ ┃ ┗ 📂test
┃ ┃ ┃ ┗ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂sixheadword
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂gappa
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂utils
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RedisUtilTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RSAUtilTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SmsUtilTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GappaApplicationTests.java
┃ ┣ 📜.gitignore
┃ ┣ 📜build.gradle
┃ ┣ 📜Dockerfile
┃ ┣ 📜gradlew
┃ ┣ 📜gradlew.bat
┃ ┗ 📜settings.gradle
┗ 📜.gitkeep
📦FrontEnd
┣ 📂public
┣ 📂src
┃ ┣ 📂components
┃ ┃ ┣ 📂404
┃ ┃ ┃ ┗ 📜NotFound.jsx
┃ ┃ ┣ 📂api
┃ ┃ ┃ ┗ 📜customAxios.js
┃ ┃ ┣ 📂Auth
┃ ┃ ┃ ┣ 📜AgreementPage.jsx
┃ ┃ ┃ ┣ 📜AgreementPage.module.css
┃ ┃ ┃ ┣ 📜BankBookPage.jsx
┃ ┃ ┃ ┣ 📜BankBookPage.module.css
┃ ┃ ┃ ┣ 📜branding.jsx
┃ ┃ ┃ ┣ 📜branding.module.css
┃ ┃ ┃ ┣ 📜Find.module.css
┃ ┃ ┃ ┣ 📜FindCheck.jsx
┃ ┃ ┃ ┣ 📜FindId.jsx
┃ ┃ ┃ ┣ 📜FindPassword.jsx
┃ ┃ ┃ ┣ 📜FindPasswordChange.jsx
┃ ┃ ┃ ┣ 📜Headers.jsx
┃ ┃ ┃ ┣ 📜Headers.module.css
┃ ┃ ┃ ┣ 📜Keyboard.jsx
┃ ┃ ┃ ┣ 📜Keyboard.module.css
┃ ┃ ┃ ┣ 📜LandingPage.jsx
┃ ┃ ┃ ┣ 📜LandingPage.module.css
┃ ┃ ┃ ┣ 📜LoginPage.jsx
┃ ┃ ┃ ┣ 📜LoginPage.module.css
┃ ┃ ┃ ┣ 📜MasterBankBookPage.jsx
┃ ┃ ┃ ┣ 📜MasterBankBookPage.module.css
┃ ┃ ┃ ┣ 📜PinPassword.jsx
┃ ┃ ┃ ┣ 📜PinPassword.module.css
┃ ┃ ┃ ┣ 📜PinPasswordCheckPage.jsx
┃ ┃ ┃ ┣ 📜PinPasswordCheckPage.module.css
┃ ┃ ┃ ┣ 📜PinPasswordConfirm.jsx
┃ ┃ ┃ ┣ 📜PinPasswordVerify.jsx
┃ ┃ ┃ ┣ 📜SignupForm.jsx
┃ ┃ ┃ ┣ 📜SignupPage.jsx
┃ ┃ ┃ ┗ 📜SignupPage.module.css
┃ ┃ ┣ 📂Certificate
┃ ┃ ┃ ┣ 📜Certificate.module.css
┃ ┃ ┃ ┣ 📜CertificatePage.jsx
┃ ┃ ┃ ┣ 📜CertIssuePage.jsx
┃ ┃ ┃ ┣ 📜CertIssuePage.module.css
┃ ┃ ┃ ┣ 📜koreanConverter.jsx
┃ ┃ ┃ ┣ 📜MyCertificate.module.css
┃ ┃ ┃ ┗ 📜MyCertificatePage.jsx
┃ ┃ ┣ 📂Common
┃ ┃ ┃ ┣ 📜Footer.jsx
┃ ┃ ┃ ┣ 📜Footer.module.css
┃ ┃ ┃ ┣ 📜Header.jsx
┃ ┃ ┃ ┣ 📜Header.module.css
┃ ┃ ┃ ┗ 📜HeaderSub.jsx
┃ ┃ ┣ 📂Friends
┃ ┃ ┃ ┣ 📜FriendsAddPage.jsx
┃ ┃ ┃ ┣ 📜FriendsAddPage.module.css
┃ ┃ ┃ ┣ 📜FriendsPage.jsx
┃ ┃ ┃ ┣ 📜FriendsPage.module.css
┃ ┃ ┃ ┣ 📜FriendsReqPage.jsx
┃ ┃ ┃ ┗ 📜FriendsReqPage.module.css
┃ ┃ ┣ 📂Home
┃ ┃ ┃ ┣ 📜AccountDetail.jsx
┃ ┃ ┃ ┣ 📜AccountDetail.module.css
┃ ┃ ┃ ┣ 📜HomeAccount.jsx
┃ ┃ ┃ ┣ 📜HomeAccount.module.css
┃ ┃ ┃ ┣ 📜HomePage.jsx
┃ ┃ ┃ ┣ 📜HomePage.module.css
┃ ┃ ┃ ┣ 📜NowTransaction.jsx
┃ ┃ ┃ ┗ 📜NowTranscation.module.css
┃ ┃ ┣ 📂Loan
┃ ┃ ┃ ┣ 📂Borrow
┃ ┃ ┃ ┃ ┣ 📜ReqAgreement.module.css
┃ ┃ ┃ ┃ ┣ 📜ReqAgreementPage.jsx
┃ ┃ ┃ ┃ ┣ 📜ReqBorrow.module.css
┃ ┃ ┃ ┃ ┣ 📜ReqBorrowPage.jsx
┃ ┃ ┃ ┃ ┣ 📜ReqChat.module.css
┃ ┃ ┃ ┃ ┣ 📜ReqChatPage.jsx
┃ ┃ ┃ ┃ ┣ 📜ReqFriends.module.css
┃ ┃ ┃ ┃ ┗ 📜ReqFriendsPage.jsx
┃ ┃ ┃ ┣ 📂History
┃ ┃ ┃ ┃ ┣ 📜HistoryBorrow.module.css
┃ ┃ ┃ ┃ ┣ 📜HistoryBorrowPage.jsx
┃ ┃ ┃ ┃ ┣ 📜HistoryDetail.module.css
┃ ┃ ┃ ┃ ┣ 📜HistoryDetailPage.jsx
┃ ┃ ┃ ┃ ┣ 📜HistoryLend.module.css
┃ ┃ ┃ ┃ ┗ 📜HistoryLendPage.jsx
┃ ┃ ┃ ┣ 📂Lend
┃ ┃ ┃ ┃ ┣ 📜LendCheckPage.jsx
┃ ┃ ┃ ┃ ┣ 📜LendCheckPage.module.css
┃ ┃ ┃ ┃ ┣ 📜LendCompletePage.jsx
┃ ┃ ┃ ┃ ┣ 📜LendCompletePage.module.css
┃ ┃ ┃ ┃ ┣ 📜LendListPage.jsx
┃ ┃ ┃ ┃ ┣ 📜LendListPage.module.css
┃ ┃ ┃ ┃ ┣ 📜LendPage.jsx
┃ ┃ ┃ ┃ ┣ 📜LendPage.module.css
┃ ┃ ┃ ┃ ┣ 📜LendSendPage.jsx
┃ ┃ ┃ ┃ ┗ 📜LendSendPage.module.css
┃ ┃ ┃ ┗ 📂Repayment
┃ ┃ ┃ ┃ ┣ 📜Repayment.module.css
┃ ┃ ┃ ┃ ┗ 📜RepaymentPage.jsx
┃ ┃ ┣ 📂Notification
┃ ┃ ┃ ┣ 📜FCM.jsx
┃ ┃ ┃ ┣ 📜FCMPage.module.css
┃ ┃ ┃ ┣ 📜NotificationPage.jsx
┃ ┃ ┃ ┗ 📜NotificationPage.module.css
┃ ┃ ┣ 📂Profile
┃ ┃ ┃ ┣ 📜MainAccountEdit.module.css
┃ ┃ ┃ ┣ 📜MainAccountEditPage.jsx
┃ ┃ ┃ ┣ 📜Profile.module.css
┃ ┃ ┃ ┣ 📜ProfileEdit.module.css
┃ ┃ ┃ ┣ 📜ProfileEditPage.jsx
┃ ┃ ┃ ┗ 📜ProfilePage.jsx
┃ ┃ ┗ 📂Sidebar
┃ ┃ ┃ ┣ 📜CustomerService.module.css
┃ ┃ ┃ ┣ 📜CustomerServicePage.jsx
┃ ┃ ┃ ┣ 📜GuidePage.jsx
┃ ┃ ┃ ┣ 📜GuidePage.module.css
┃ ┃ ┃ ┣ 📜Notice.module.css
┃ ┃ ┃ ┣ 📜NoticePage.jsx
┃ ┃ ┃ ┣ 📜QnA.module.css
┃ ┃ ┃ ┗ 📜QnAPage.jsx
┃ ┣ 📂fonts
┃ ┃ ┗ 📂The_Jamsil_TTF
┃ ┃ ┃ ┣ 📜Gwangyang Touching(TTF용).ttf
┃ ┃ ┃ ┣ 📜LINESeedKR-Bd.ttf
┃ ┃ ┃ ┣ 📜LINESeedKR-Rg.ttf
┃ ┃ ┃ ┣ 📜LINESeedKR-Th.ttf
┃ ┃ ┃ ┣ 📜The Jamsil 1 Thin.ttf
┃ ┃ ┃ ┣ 📜The Jamsil 2 Light.ttf
┃ ┃ ┃ ┣ 📜The Jamsil 3 Regular.ttf
┃ ┃ ┃ ┣ 📜The Jamsil 4 Medium.ttf
┃ ┃ ┃ ┣ 📜The Jamsil 5 Bold.ttf
┃ ┃ ┃ ┗ 📜The Jamsil 6 ExtraBold.ttf
┃ ┣ 📂store
┃ ┃ ┣ 📜authslice.js
┃ ┃ ┗ 📜index.js
┃ ┣ 📜App.css
┃ ┣ 📜App.js
┃ ┣ 📜App.test.js
┃ ┣ 📜firebase-messaging-sw.js
┃ ┣ 📜index.css
┃ ┣ 📜index.js
┃ ┣ 📜logo.svg
┃ ┣ 📜reportWebVitals.js
┃ ┣ 📜service-worker.js
┃ ┣ 📜serviceWorkerRegistration.js
┃ ┣ 📜setupProxy.js
┃ ┗ 📜setupTests.js
┣ 📜.gitignore
┣ 📜.gitkeep
┣ 📜404error.jpg
┣ 📜dockerfile
┣ 📜Jenkinsfile
┣ 📜package-lock.json
┣ 📜package.json
┣ 📜README.md
┗ 📜robots.txt