놀러온 학교!
👀 Overview
한줄 소개 | 대학 캠퍼스 챌린지 플랫폼 놀러온 학교! |
진행기간 | 2022.12.18 ~ 2022.12.19 |
Skills | Glide, Retrofit2, Coroutine, Flow, Hilt, FileUtil, ViewModel |
팀구성 | Android 1 / Spring 2 |
❓ 개발 의도 및 개발 목표
기획 의도
covid-19로 인해 2년 이상 비대면 수업과 비대면 행사가 진행되었다.
신입생들은 학교를 방문할 기회가 현저히 감소했으며 자연스럽게 선후배간의 교류가 줄어들었다.
대부분의 대학교 캠퍼스는 재학생들 사이에서 입소문을 타 전해내려오는 방문스팟 및 버킷리스트가 존재한다.
인하대의 경우 정석학술정보관 앞의 벚꽃 스팟에서 사진찍기, 비룡탑 앞 울림돌에서 크게 소리내어보기가 있다.
이러한 이야기를 전해 듣지 못했던 신입생 및 재학생들이 포스트 코로나 시대에도 캠퍼스 라이프를 온전히 즐길 수 있도록, 캠퍼스 버킷리스트들을 소개하고 경험을 돕는 것에 관하여 아이디어를 선정하였다.
개발 목표
- 최대한 서비스의 모든 기능들을 구현하는 것이 목표
- 10시간 채 안되는 개발시간 동안 최대한 많은 기능들을 만들어 결과를 내는 것
🍀 서비스 내용
- 캠퍼스에서 꼭 해보아야할 챌린지 리스트중 마음에 드는 챌린지를 선택해 수행할 수 있다.
- 챌린지 수행은 인증샷을 올리는 등으로 진행된다.
- 사용자들은 챌린지를 수행한 정도에 따라 등급을 부여 받게 된다.
- 높은 등급을 가지고 있는 사용자는 새로운 챌린지를 제안할 수 있다.
- 제안한 챌린지가 많은 ‘인정’ 점수를 받게 된다면 정식 챌린지로 등록된다.
- 다른 사용자들은 제안된 챌린지들을 구경하고 ‘인정’점수를 부여할 수 있다
사용자
- sns 소셜 로그인 지원
- 사용자별 등급제 도입
- 1~5단계의 등급 부여
- ‘챌린이, 챌소년, 챌른이, 고인물, 암모나이트‘로 이루어짐
챌린지 컨텐츠
- 언제, 어디서, 어떻게, 무엇을, 어떻게로 구성
- 챌린지 수행 인원 확인 가능
- 챌린지 목록에서 선택을 통해 다른 사용자가 참여한 챌린지 확인 가능
챌린지 후보
- ‘고인물’등급 이상의 사용자부터 챌린지 후보 제안 가능
- 10개 이상의 ‘인정’ 점수를 획득할 경우 챌린지 컨텐츠로 자동 전환
- 사용자당 1개의 ‘인정’ 점수 부여 가능
챌린지 수행
- 챌린지의 언제 어디서 무엇을 어떻게에 해당한는 인증샷 업로드
🛠 기술 스택
- Glide
- Retrofit2
- Coroutine
- Flow
- Hilt
- FileUtil
- ViewModel
- CircleIndicator2
🖥 개발 내용
Login
- Google OAuth를 통해 구글계정 로그인 기능을 구현함
- SharedPreferenced를 통해 토큰을 저장하고, 자동 로그인 기능을 구현함
- 토큰이 expired 되었을 시 로그인 갱신을 하도록 구현함
Main
- Jetpack Navigation을 활용해 fragment를 연결
- Bottom Navigation View와 Floating Button을 커스텀 배치함
- 게시글 Overview 뷰를 커스텀해서 관리함
Main - Home
- 상단 광고뷰
- 코루틴을 활용하여 자동 스크롤 구현
- RecyclerView와 Indicator를 이어 일정 시간이 지났을 때 다음 index로 움직인다.
- NestedScrollView를 통해 Scroll를 구현함
- Custom Board Overview를 통해 불러온 챌린지와 수행한 미션 top 5를 뽑아 보여준다.
Main - 챌린지 리스트
- 서버로부터 데이터를 받아와 전체 미션 정보를 띄운다.
- Item 클릭 시
- 상세 미션 정보
- 현재 이 챌린지에 참여한 사람들의 미션들
- 확인 가능한 상세 페이지로 이동
- 챌린지 추가 Floating Button
- 챌린지 미션을 추가할 수 있는 화면으로 이동한다.
Main - 챌린지 업로드
- 직접 업로드하기 직전 어떤 챌린지를 수행했는지를 선택한다.
- 검색 기능 구현
- debounce를 활용해 입력 후 일정시간이 지났을 때 검색의 기능을 수행하도록 구현함
- Spinner를 통해 정렬 순서를 바꿀 수 있다.
- 선택 후 실제 입력 화면으로 이동한다.
- 수행한 결과들을 작성하고 업로드 한다.
Main - 챌린지 후보 리스트
- 챌린지 추가 Floating Button
- 챌린지 미션을 추가할 수 있는 화면으로 이동한다.
Main - 프로필
- 사용자의 개인 프로필 정보를 확인할 수 있다.
- 사용자의 프로필 수정 페이지로 이동할 수 있다.
- 사용자의 개인 좋아요한 정보들을 확인할 수 있는 페이지로 이동할 수 있다.
- 해당 페이지들은 미구현
Challenge Detail
- 챌린지의 상세 페이지
- 챌린지의 상세한 설명과 이에 참여한 사람들의 미션 수행 이력들을 확인할 수 있다.
- 인스타 릴스 참고
📱 서비스 화면
시연영상
Login
Home
챌린지 리스트
- 챌린지 상세
챌린지 후보 리스트
프로필
- Edit Profile
수행할 챌린지
- 선택
- 업로드
챌린지 업로드
추가
- 인하대학교 2022 컴퓨터공학과 해커톤 🏆 1등 수상
- 모든 기능들을 완벽히 구현하지 못함