- 컴퓨터공학과 캡스톤 디자인 강의에서 진행한 졸업작품 프로젝트입니다.
같은 학교 학생들끼리 먹고 싶은 음식을 같이 주문하여, 배달비 부담을 줄여주는 배달 음식 공동 구매 앱
현재 위 서비스에서 제공하는 핵심 기능 3가지입니다.
- (호스트) 음식 카테고리 별 음식점 목록 중 하나를 선택해 공동 구매 글 올리기
(게스트) 내가 원하는 음식을 카테고리별로 나눠서 가게 선택하기 - 호스트와 게스트 채팅 기능
- 공동 구매 완료 후 상호 평가 기능
- Kotlin, Android Studio
- Firebase Realtime Database,
Firebase Authentication,
Firebase Cloud Storage for Firebase - Glide
- Github, Git
- 시스템 구조도
사용자 인터렉션에 대해 학습하면서 모바일 환경에 대한 이해도를 높였습니다.
프로젝트에서 파이어베이스를 사용하여 데이터베이스 연동을 담당했습니다.
- 파이어베이스의 Realtime Database와 Firestore를 활용하여 사용자의 데이터를 저장하고 조회하는 기능을 구현했습니다.
- 파이어베이스의 Authentication 서비스를 사용하여 로그인 시 사용자 인증과 관련된 기능을 개발했습니다.
- 데이터 모델링과 데이터베이스 구조: Firebase의 NoSQL 데이터베이스 구조를 활용하여 음식 카테고리, 음식점 정보, 공동 구매 글 등을 적절하게 모델링하고 관리했습니다.
사용자들이 원하는 음식을 쉽고 빠르게 선택할 수 있도록 Firebase의 JSON 기반 데이터베이스 구조를 이용하여 카테고리별로 음식점을 필터링하고, 검색 기능을 추가하여 사용자들이 원하는 가게를 빠르게 찾을 수 있도록 했습니다. - 효율적인 알고리즘 및 데이터 처리: 음식 카테고리와 음식점 목록을 효율적으로 처리하기 위해 알고리즘 및 데이터 처리 방법을 최적화하였습니다. 캐싱 메커니즘을 활용하여 반복적인 데이터 로딩을 최소화하고, 데이터베이스 쿼리의 효율성을 고려하여 필요한 데이터를 조회하고 필터링하는 코드를 구현하였습니다.
- 실시간 채팅 기능: 호스트와 게스트 간의 채팅을 위해 Firebase의 실시간 데이터베이스를 활용하여 채팅 메시지를 실시간으로 동기화하는 코드를 구현하였습니다.
- 동적인 별점 표시: 상호 평가를 위한 별점은 사용자가 터치한 위치에 따라 동적으로 표시되어야 합니다. 이를 위해 터치 이벤트를 감지하고 별점을 실시간으로 업데이트하는 코드를 구현하였습니다.
- 상호 평가 데이터의 실시간 동기화: 사용자들이 별점을 주고 평가를 완료하면 해당 데이터를 Realtime Database에서 실시간으로 동기화하여 서버에 저장하였습니다.
- 평가 기록 및 통계: 별점을 주는 기능을 통해 수집된 평가 데이터를 활용하여 개인의 평가 기록 및 통계를 제공하였습니다. 이를 통해 사용자들은 자신의 평가 히스토리를 확인할 수 있습니다.