애완묘를 키우는 많은 집사들은 자기 고양이가 집에서 무엇을 하고 있는지 많이 궁금해한다. 친구나 가족이 무엇을 하고 있는지 궁금하면 간단하게 연락해서 물어볼 수 있지만 고양이는 그것이 안 되기에 간접적으로나마 고양이와 연락하는 느낌을 줄 수 있는 채팅앱을 만들고자 한다.
프론트는 코틀린으로 개발된 모바일 안드로이드 앱을 사용하고 추가로 별도의 DB 없이 사용자 계정을 관리할 수 있는 Firebase를 사용하기로 하였다. 백엔드는 사용자 정보, 고양이 정보등을 저장하고 관리할 Node.JS서버와 고양이와의 채팅을 관리할 Python서버를 따로 구성하기로 하였다.
프론트와 서버간의 통신은 rest API를 사용하기로 하였다.
Firebase의 인증 기능중 이메일/비밀번호를 선택하였고 이를 위해 user가 사용할 e-mail과 password를 입력받아 Firebase로 넘겨줘야 한다. 이때 Firebase로부터 할당받은 uid와 다른 추가 정보를 서버쪽 DB에 저장한다.
마찬가지로 Firebase에 넘겨줄 e-mail과 password를 입력받아 Firebase로 넘겨줘야 한다. Firebase로부터 받은 uid로 서버에서 사용자 정보를 받아온다.
사용자가 입력한 수정할 정보를 uid와 묶어 서버에 수정요청을 보내면 서버는 이를 저장하고 변경된 사용자 정보를 프론트로 전송한다.
고양이의 이름, 종, 성별, 생일, 프로필 사진등의 정보를 입력받고 생성 시간을 기반으로 cid를 생성하여 uid와 묶어 서버에 저장한다.
사용자가 고양이를 선택하여 채팅을 보내면 uid, cid, 전송할 메시지를 함께 서버에 보내면 서버는 이를 분석해서 uid, cid, 고양이의 대답, 카메라에 찍힌 사진을 클라이언트로 보내준다.