Web framework
- Django, Django rest framework
client → server
- 사용자의 위치 정보(위도, 경도 값), 사용자 기기 정보(ID), epsilon, 관심사 키워드(1차 필터링에서 이용)
- POST method, JSON형태로 사용자의 위치 정보(위도, 경도 값) 및 사용자 기기 정보(ID)를 전송, 받은 데이터를 서버 내 데이터베이스에 저장
server → client
- client에서 받은 정보를 바탕으로 추천하는 장소의 위치 정보(위도, 경도 값) 및 상호명
- 각 장소 별 대표 사진(사진 구하는 방법 찾으면)
- GET method, JSON으로 사용자 기기 정보(ID), epslion 값, 관심사 키워드를 전송, 받은 데이터를 이용하여 서버에서 추천 장소 리스트(위도 및 경보 값, 상호명)를 JSON형태로 전송.
- 2차 필터링은 POST요청으로 만들어진 데이터베이스로부터 딥러닝 모델 학습 후 나온 output(사용자-장소 간 방문 확률 table이 될 것으로 예상)으로부터, GET요청으로 받은 사용자 ID, epsilon값을 이용 해당하는 장소를 JSON형태로 만들어 전송할 예정.
SNS server
- User(프로필) : id (사용자 id), deviceID (android 장치 id), username (사용자 이름), picture (사용자 프로필 사진)
- Post(포스트) : postID (게시물 id), writer (작성자), contents (게시물 내용), tag (게시물 태그), location (게시물 위치 정보, JSON), postTime (작성 시간)
- Comment(댓글) : writer (작성자), contents (댓글 내용), post(종속된 postID)
- foreignkey를 이용하여 위의 Post에 field가 종속되어있는 형태
- PostImage(사진) : image (게시물 이미지), post(종속된 postID)
- foreignkey를 이용하여 위의 Post에 field가 종속되어있는 형태
- Like(좋아요) : liker (좋아요 한 사용자의 ID, foreignkey), post(종속된 postID, manytomany)
- foreignkey와는 달리 manytomany를 이용하여 한개의 field정보가 여러 post에 종속이 되어 있는 형태
Interface
- (임시)Root URL :
http://59.20.74.132:8000
- 사용자 방문 기록 저장 및 특정 사용자에 대한 추천 장소 제공, SNS관련 전반적인 기능 제공.
- Checkin, Recommend Request는 JSON 데이터를 포함하여 요청, SNS 관련 Request는 mutipart/form-data 형태로 요청
- 현재, SNS부분에 response중 예외 가 섞여있습니다. 추후 수정하여 HttpResponse 400과 함께 오류 메세지로 전달하도록 예외처리할 예정입니다.
- 사용자 방문 기록 저장