-
복지 사각지대에 있어, 치료를 받고싶어도 받지 못하는 환자들을 위한 모금을 개설하기 위함
-
투명한 기부내역 공개를 통해 기부자들이 신뢰를 갖고 기부를 할 수 있게 하기 위함
-
불특정 다수가 아닌 특정 대상에 대한 기부와 해당 환자가 치료받는 일지를 제공해 기부자들이 기부한 보람을 느낄 수 있게
- 투명한 기부내역을 통해 신뢰성 있는 기부 가능
- 치료일지를 제공해 기부자들이 보람을 느낄 수 있음
- 소셜 회원가입, 로그인
- 병원이 환자를 등록하고, 해당 환자에 대한 모금 개설 가능
- 공지사항을 기능
- 자체 제작 토큰을 사용하여 기부 기록을 블록체인에 투명하게 기록
- 회복일지를 통해 기부 대상자의 치료과정을 확인할 수 있음
2023.02.20일(월) ~ 2023.04.07(금)
- 정원철: Frontend 리더, UI/UX, API 설계 및 관리, 프로젝트 구조 설계, 데이터플로우 관리
- 박정호: Frontend, UI/UX, 스마트 컨트랙트 작성, Web3.js, 모금
- 남기성: Frontend, UI/UX, 문서관리, UCC 및 발표, 와이어프레임 설계
- 박윤환: Backend, DevOps 담당, 아키텍처 설계, 팀장
- 이승헌: Backend 리더, 스마트 컨트랙트 작성, REST API 개발, Spring Security, 부팀장
- 윤동근: Backend, REST API 개발, Grpc 통신 개발
🔧 Backend
- IntelliJ : 2022.3.1 (Ultimate Edition)
- Open JDK 17
- Spring Boot 3.0.4
- Spring Data JPA
- Spring Security
- OAuth2 Login
- JWT Authentication
- Swagger
- Google Cloud Storage
- MariaDB 10.11.2
- Redis 7.0.10
- gRPC 1.52.1
- Gradle 7.6.1
🔧 Frontend
- Visual Studio Code 1.75.1
- Node.js 18.15.0
- react 18.2.0
- redux 1.9.3
- TypeScript 4.9.5
🔧 Block chain
- Solidity 0.8.18
- Web3.js 1.9.0
🔧 CI/CD
- AWS EC2 Ubuntu 20.04 LTS
- Kubernetes 1.26.2
- CRI-O 1.26.1
- Nginx Ingress Controller 1.6.4
- Jenkins : 2.397
- ArgoCD: 2.6.7+5bcd846
-
Frontend
./src ├── assets │ ├── fonts │ ├── img │ └── logo ├── components │ ├── Modal │ ├── cards │ ├── footer │ ├── header │ └── pagination ├── models ├── pages ├── store └── web3js
-
Backend - authserver
./authserver ├── common │ └── exception ├── config ├── controller ├── dto │ └── enums ├── filters └── jwt
-
Backend - constelinkbeneficiary
./constelinkbeneficiary ├── common │ └── exception ├── config ├── db │ ├── controller │ ├── dto │ │ ├── common │ │ ├── enums │ │ ├── request │ │ └── response │ ├── entity │ ├── repository │ └── service ├── grpc └── jwt
-
Backend - constelinkfundraising
./constelinkfundraising ├── common │ └── exception ├── config ├── db │ ├── controller │ ├── dto │ │ ├── common │ │ ├── enums │ │ ├── request │ │ └── response │ ├── entity │ ├── repository │ └── service └── jwt
-
Backend - constelinkmember
./constelinkmember ├── api │ ├── controller │ └── service ├── common │ ├── exception │ └── logger ├── config ├── db │ ├── entity │ └── repository ├── dto │ ├── enums │ ├── kakao │ ├── request │ └── response ├── grpc │ └── service ├── security │ ├── handler │ ├── jwt │ ├── principal │ ├── repository │ └── service └── util
-
Backend - constelinknotice
./constelinknotice ├── api │ ├── controller │ └── service ├── common │ └── exception ├── config ├── db │ ├── entity │ └── repository └── dto ├── enums ├── request └── response
-
Backend - constelinkfile
./constelinkfile ├── Exception ├── config ├── controller ├── dto ├── service └── util
-
git 컨벤션
### 제목 # :gitmoji: [FE/BE/공통] 작업내용 (제목과 본문은 한 줄 띄워주세요) ### 본문 - 한 줄에 최대 72 글자까지만 입력하기 # 무엇을, 왜, 어떻게 했는지 # 꼬리말 # (선택) 이슈번호 작성 # [커밋 타입] 리스트 # :sparkles: : 기능 (새로운 기능) # :bug: : 버그 (버그 수정) # :lipstick: : CSS 등 사용자 UI 디자인 변경 # :recycle: : 리팩토링 # :art: : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음) # :memo: : 문서 (문서 추가, 수정, 삭제) # :white_check_mark: : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음) # :hammer: : 기타 변경사항 (빌드 스크립트 수정 등) # :truck: : 파일 혹은 폴더명을 수정하거나 옮기는 작업만 하는 경우 # :fire: : 코드, 파일을 삭제하는 작업만 수행한 경우 # :twisted_rightwards_arrows: : 브랜치 합병 # :rocket: : 배포 관련 # ------------------ # [체크리스트] # 제목 첫 글자는 대문자로 작성했나요? # 제목은 명령문으로 작성했나요? # 제목 끝에 마침표(.) 금지 # 제목과 본문을 한 줄 띄워 분리하기 # 본문에 여러줄의 메시지를 작성할 땐 "-"로 구분했나요? # ------------------
-
브랜치 전략
🌲 master - dev - dev-front - feature-front/기능명 - dev-back - feature-back/API명 - fix : 문제가 생긴 브랜치에서 분기 - fix-front/기능명 - fix-back/기능명 - docs/문서타입[ex) README, ppt]
-
Frontend 코드 컨벤션
-
변수명
camelCase
-
tab
2 spaces
-
import 순서
- 라이브러리/모듈 → 커스텀 객체 → 컴포넌트 → css파일
-
클래스명
kebab-case
로 작성하기어떤페이지(컴포넌트)__무슨역할
-
-
Backend 코드 컨벤션
-
명명법
- 변수명, 메서드명
camelCase
- 의미없는 변수명 사용 지양 → 유지보수의 어려움
- 메서드 이름은 소문자로 시작, 동사 → ex) getName()
- 클래스 이름은 대문자로 시작
- 변수명, 메서드명
-
코딩 스타일 자동적용 설정
-
IntelliJ에 NAVER 캠퍼스 핵데이 Java 코딩 컨벤션 적용
-
저장시 액션 설정
-
-
줄바꿈을 CRLF 대신 LF로 변경 (윈도우 한정)
-
-
소셜로그인 (카카오, 구글)
-
소셜로그인 정보를 토대로 회원가입
-
회원정보 수정 가능
-
병원측은 등록된 환자들의 모금 등록 가능
-
기부자들은 KakaoPay 간편결제를 통해 자체 제작 토큰과 변환해 기부 가능
-
기부자들은 기부 대상자의 정보를 확인할 수 있음
-
기부한 내역은 블록체인에 기록됨
- 모금이 완료된 환자는 병원에서 회복일지 작성 가능
- 환자들이 해당 회복일지를 통해 모금 대상자가 회복되어 가는 과정을 볼 수 있음
- 사용자가 기부한 기부 내역을 확인할 수 있음
프로젝트 진행 과정에서 필요한 회의, 공지, 일정 등을 원페이지 협업 툴인 노션을 통해 관리했습니다.
또한 컨벤션 규칙, 브랜치 활용 규칙 등을 노션에 명시해두었고, 팀 미팅에 대한 피드백과 질문을 기록해 두어 언제든 확인할 수 있도록 관리하고 있습니다.
매일 아침 10시에 팀 단위로 할 일을 10분 정도 공유했습니다.
유연한 분위기에서 스크럼을 통해서 개발에 집중할 수 있는 팀 분위기를 만들었습니다.