[안드로이드] Wifi기반 체류 시간 앱 - 1

1일차: 프로젝트 설계 및 환경 구축

목표: 전체적인 구조 확정 및 개발에 필요한 환경 설정

세부 할 일:

개발 환경 구축

DB 스키마 설계: Wi-Fi 정보, 접속 기록 등을 저장할 테이블 구조를 설계

API 명세서 작성

앱과 백엔드가 주고받을 데이터 형식 정의

 

개발 환경 구축

Android Studio에 Kotlin 개발 환경 설정

Python, FastAPI, Uvicorn 설치 및 기본 프로젝트 생성

Mysql 설치 및 연동 확인

 

우선 다음과 같이 백엔드와

 

 

Andriod 부분을 

 

DB 스키마 설계

그리고 ERD는 다음과 같이 구성하였다

 

 

 

API 명세서 작성

API 명세서 초안은 다음과 같다

사용자 생성 및 정보 업데이트
Endpoint: POST /users/

설명: 신규 사용자를 등록하거나, 이미 등록된 경우 집 Wi-Fi BSSID 정보를 업데이트합니다.

요청 예시 :

 

Response 예시 :

 

{
        "id": 1,
        "email": "user@example.com",
        "home_wifi_bssid": "AA:BB:CC:DD:EE:FF"

}

 

사용자 정보 조회

설명: 특정 사용자의 정보를 조회합니다.

Response 예시 :

{
        "id": 1,
        "email": "user@example.com",
        "home_wifi_bssid": "AA:BB:CC:DD:EE:FF"

}

 

로그 생성 및 업데이트
설명: 사용자의 Wi-Fi 연결/해제 기록을 서버에 전송

안드로이드 앱은 연결이 시작될 때와 끝났을 때 이 API를 호출하여 로그를 기록및 업데이트

 

 

Response 예시 :

{
     "id": 1,
     "user_id": 1,
     "bssid": "AA:BB:CC:DD:EE:FF",
     "start_time": "2025-08-11T10:00:00Z",
     "end_time": "2025-08-11T18:00:00Z"
}

 

주간 재택 시간 통계 조회

 


설명: 특정 사용자의 최근 7일간의 일별 재택 시간 통계를 조회합니다.

Response 예시 : 

{
   "user_id": 1,
    "start_date": "2025-08-05",
    "end_date": "2025-08-11",
    "weekly_stats": [
        {"date": "2025-08-05", "total_minutes": 480},
        {"date": "2025-08-06", "total_minutes": 520},
        {"date": "2025-08-07", "total_minutes": 300},
        {"date": "2025-08-08", "total_minutes": 600},
        {"date": "2025-08-09", "total_minutes": 120},
        {"date": "2025-08-10", "total_minutes": 700},
        {"date": "2025-08-11", "total_minutes": 450}
        ]

}