22 May 2020

Android 개인을 위한 설문앱

개인을 위한 설문과 커뮤니티 생성


- 기간 : 2019.12~2020.5 (6개월)

- 인원 : 4명

- Github : https://github.com/pjh37/graduationProject


기술 스택


- Android, java, Glide, retrofit

- Node js, MySql


프로젝트 소개 및 기능


모바일 리서치 & 소셜 커넥팅

설문을 통해 개인이 궁금한 부분이나 설문을 제작하여 간편하게 만들고 결과를 받아 볼 수 있습니다 특정 분야에 관심있는 사람들을 모을 수 있으며 채팅또는 간편한 그룹 만들기를 통해 쉽게 관심사가 비슷한 사람들의 커뮤니티를 생성할 수 있습니다.


기능


  • 로그인

    • 구글 로그인 연동

  • 모바일 리서치

    • 개인에게 설문작성 툴을 제공합니다

    • url을 통해 설문을 배포할 수 있습니다.

    • 개개인의 설문결과를 받아 볼 수 있으며 결과분석을 해주고 엑셀이나 pdf파일로 추출할 수 있습니다.

  • 소셜 커넥팅

    • 관심있는 설문과 관련된 제목들이 워드클라우드 형태로 표시되어 설문에 참여할 수 있습니다.

    • 프로필 설정 및 친구 추가 가능

    • 채팅방을 생성하고 자신의 친구들을 초대하여 채팅 가능

    • 그룹생성가능(비공개/공개 선택가능)

    • 그룹에서 게시물을 생성및 이미지 업로드 가능


나의 역할 && 내가 구현한 것


  • 구글 로그인 연동

  • 설문툴제작을 위한 디자인 패턴적용(싱글턴, 팩토리 등) 및 설계 구현

  • 아이폰,안드로이드 상관없이 설문을 할 수 있도록 앱에서 제작한 설문을 url을 통해 웹에서 설문을 받을 수 있도록 구현

  • 원하는 사람만을 초대하여 채팅방을 만들고 채팅할 수 있게 구현

  • 공개/비공개 그룹 생성으로 그룹내에서만 게시물을 공유할 수 있게 구현

  • 전체db 설계

  • 커뮤니티부분 && 설문 부분 ui 구현


어려웠던 점 && 해결방안


  • 어려웠던 점

    • 모바일에서 만든 설문을 url을 통해 웹에서 볼 수 있도록 바꾸는 기능

    • 일반적인 앱과달리 사용자에게 설문지를 만들수 있는 툴을 제공해야 했기 때문에 설계하는데 있어 어려웠다.

    • 실시간 채팅에 있어서 앱을 계속 살려 놓으며 로컬DB와 외부 DB를 이용해 캐싱 구현


  • 해결 방안

    • 유저에 의해 만들어진 설문의 뷰와, 타입, 구성 정보들을 json으로 만들어 서버로 전달한뒤 json파일을 html, css jquery를 통해 웹에서 볼 수 있는 뷰로 전환 했습니다.

    • 설문의 문항들(객관식, 단답, 체크박스… 등)을 Form 이라는 최상위 클래스 아래두어 구현하고 디자인 패턴을 이용해 기능의 추가, 보수등을 용이하게 하였습니다.

    • 앱에 notification을 계속 띄워서 앱이 죽지 않게 유지 했으며 유저가 채팅을 가져올때 로컬DB -> 외부 DB 순으로 read하게 하여 서버의 부하를 감소시켰습니다.


결과


  1. 개발

    • 서버, 앱, 디비까지 전체 설계담당 경험

    • 디자인 패턴 적용

    • node js를 활용하며 비동기식 프로그래밍이용


  1. 개발외의 것

    • git을 이용한 코드관리

    • 6개월간의 기간동안 작업분배와 적극적인 의견교환을 통해 프로젝트의 방향이 흔들리지 않았음


동작화면


로그인 및 시작 화면

login login


설문 생성 화면

survey survey survey survey survey survey

그룹생성

group group group


Tags:
0 comments