Skip to content

기부를 재밌게! 반려견과 함께하는 게임형 기부 어플리케이션

Notifications You must be signed in to change notification settings

souk0712/ChallenMungs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏃🏻 1. Project 소개 및 구현 화면

🧭 프로젝트 기간

  • 2월 27일 ~ 4월 7일

 

💰 Project 소개

🗡️ 주제 선정 계기

1. 투명성

블록체인 정보는 모든 참여자가 볼 수 있으며 변경이 불가능합니다.

2. 경제성

중앙 서버와 시스템 관리 비용이 들어가지 않아 비용이 적게 듭니다.

3. 보안성

암호화된 데이터와 키 값으로만 거래가 이루어지기 때문에 보안성이 높습니다

 

 

💰 챌린멍스 앱 설명

챌린멍스 앱 화면 (클릭시 페이지 이동)

 

 

💰 서비스 주요 기능

  • 서비스 설명 : 기부를 재미있게! 반려동물들을 위한 기부 플랫폼. 반려동물들을 키우는 챌린멍스 유저들과 함께 챌린지에 도전하고 블록체인 기술을 활용한 기부까지!
  • 주요 기능
    • 블록체인을 활용하여 투명성, 경제성, 보안성을 갖춘 기부 플랫폼의 기능 및 유저가 직접만드는 일반 챌린지와 판넬뒤집기 챌린지, 기부 캠페인의 개설과 기부
    • KLAYTONCYPRESS메인넷을 사용하여 클레이튼을 전송하고 주고 받기가 가능합니다.
    • 유저들이 직접 타 유저의 챌린지 수행의 적합성 여부를 판단합니다.
    • 실시간 위치 정보 기반 특별 챌린지를 수행합니다.
    • 사용자의 챌린지 참여 실적에 따른 보상을 제공합니다.

 

 

🏃🏻 2. 개발 환경

💰 아키텍처

기술스택

 

🗡️ Android

  • Android Studio
  • Glide
  • Retrofit2
  • OkHttp3
  • Jetpack

 

🗡️ Backend

  • java 11
  • spring boot 2.7.8
  • gradle-7.6-bin
  • Intellij
  • mysql
  • websocket

 

🗡️ DevOps(CI/CD)

  • aws ec2
  • docker
  • nginx
  • jenkins

 

 

💰 기술 특이점

🗡 Klayton API 및 Cypress 메인넷의 활용

  • Klayton.api에서 제공하는 api를 활용하여 메인넷에 직접 요청을 넣어 계좌간 클레이튼의 거래가 가능하도록 하여 기부기능을 구현하였습니다.
  • 계좌 생성 및 계좌간 클레이튼 전송 및 잔액 조회, 거래 내역 조회가 가능하도록 구현하였습니다.

🗡 WebSocket 기술 및 scheduler 활용

  • websocket기술을 활용하여 각 컴포넌트 별로 다양한 이벤트 들을 트리거하여 클라이언트간의 동시적인 정보교환을 가능하게 했습니다.
  • -schedulercron표현식을 사용하여 특정 시간에 자동으로 컴포넌트가 실행되도록 하였습니다.

 

🗡️ Docker, Jenkins를 이용한 CD 구축 및 SSL 인증서 적용

Docker image Jenkinspipeline을 이용하여 자동 배포를 구축했습니다. Gitlab webhook을 설정하여 Jenkins에 빌드 트리거를 설정했으며 Gitlab에서 master 브랜치에 push하면 자동으로 배포될 수 있도록 구축하여 개발하는 과정에서 배포로 인한 시간 낭비를 줄였습니다.

  • backend, springBoot에서는 docker image로 빌드한 후 배포
  • nginxletsencrypt를 통해 ssl 인증서를 적용했고 backend에서는 /api80(http), 443(https) 로 프록시를 분리

했습니다.

 

 

🏃🏻 3. 협업 툴

🥁 챌린멍스 협업 툴

  1. notion
  2. zira
  3. mattermost
  4. slack

 

💰 프로젝트 개발 단계

figma (클릭시 페이지 이동)

 

 

🏃🏻 4. 프로젝트 회고

🦉 이아름

이번 프로젝트때 처음 해보는 일이 많았었는데 너무 좋은 팀원들과 체계적으로 정해놓은 규칙들 덕분에 프로젝트를 잘 마무리 할 수 있었던 것 같습니다. 또한 클린 아키텍처와 웹소켓을 활용할 수 있는 좋은 경험이었습니다.

 

🐧 강은선

안드로이드 팀 리더로 참여한 첫 프로젝트인만큼 부담감도 있었지만 서로 개발을 하면서 지킬 규칙을 세우고 이를 잘 지켜나가면서 프로젝트를 잘 마칠 수 있었습니다. 카카오 로그인과 viewpager2를 처음 사용해보는데다 블록체인이라는 새로운 기술을 도입하여 적응하는데 조금 어려움이 있었지만 공식문서와 chatGPT의 활용으로 어려움을 극복할 수 있었습니다.

 

🐭 김부경

챌린멍스에서 처음으로 자바 스프링 백엔드를 맡았습니다. 이 경험을 통해 의존 관계 주입과 JPA를 사용하여 다양한 API를 개발하며 백엔드 개발에 필요한 기반을 다질 수 있었습니다. 처음 맡은 스프링 백엔드에 부담도 있었지만 훌륭한 팀원들과의 협업을 통해 짧은 기간에도 많은 것을 배우고 성장할 수 있는 소중한 경험이었습니다.

 

🐰 변윤경

정말 의미있는 프로젝트였습니다! 좋은 경험이었어요

 

🐶 이동하

안드로이드 개발과 클린 아키텍처를 경험해 볼 수 있었던 정말 의미있는 프로젝트 였습니다. 처음엔 적응하기가 굉장히 힘들었지만 클래스간의 의존성을 낮추고 유지 보수성을 높혀 줄 수 있는 좋은 구조라고 생각이 들었습니다! 또한 백엔드에서도 JPA과 query dsl을 사용해 보고 익숙해 지며 그 강력한 기능을 맛볼 수 있어 좋은 경험이었다고 생각합니다.

 

 

About

기부를 재밌게! 반려견과 함께하는 게임형 기부 어플리케이션

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published