Skip to content

junwoo0127/WatchOuT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WatchOuT_Logo

다운로드하기 Google Play

https://play.google.com/store/apps/details?id=com.ssafy.homealone

당신의 일상이 더욱 안전하고 즐겁게, WatchOuT!

개요

  • 프로젝트 기간 : 2022.10.10 ~ 2022.11.17 (7주)

    • 1인 가구를 위한 범죄, 건강 응급 상황 관리 어플리케이션
  • 주요 기능

    1. SOS기능
      • 사이렌과 함께 등록 된 비상 연락처로 위치 정보를 포함한 문자 자동 발송
    2. 안전 귀가
      • 귀갓길 공유대상에게 실시간으로 본인의 위치 공유, 지도로 위치를 표시
      • 사용자의 귀가 정보를 수신받는 상대방에게 입장 코드를 포함시켜 귀가 시작을 알리는 문자 전송
      • 안전 귀가 지도 상단에 위치한 탭을 눌러 근처에 있는 편의점, 약국, CCTV, 안심벨 등의 위치를 확인
    3. 스마트 워치 연동
      • 실시간으로 심박수를 수신하여 건강 이상 발생 시 비상연락처로 위치 정보를 포함한 응급 문자 발송
      • 스마트 워치에 설치된 Watch OuT 앱에 설치된 응급 상황 버튼을 클릭해 응급 상황 전파
    4. 바로 신고
      • 범죄 현장을 목격 시 사진을 찍으면 사진과 함께 112에 문자 발송
    5. 홈 캠
      • 본인이 등록한 홈 캠의 경우 언제든 어플을 통해 확인 가능
      • 비어있는 집에 괴한이 들어 왔을 때, 감시
      • 상대방으로부터 비상 연락 기능이 활성화되면 입장 코드를 포함한 응급 상황 알림 문자 발송
      • 입장 코드를 입력해 상대방이 등록한 홈 캠에 일시적으로 접속, 응급 상황 인지
      • 일정 시간이 지나면 사생활 보호를 위해 더 이상 상대방의 홈 캠 영상을 확인할 수 없음
    6. 홈 위젯
      • 앱을 키지 않고도 바로 SOS 기능을 이용할 수 있도록 홈 위젯 기능을 구현
      • 바탕화면에 위치시킨 후 클릭하면 SOS 기능이 자동 실행됨
  • 부가 기능

    1. 안심 귀가 서비스
      • 사용자가 등록한 주소지를 기준으로, 지자체가 제공하는 여성 안심 귀갓길을 신청할 수 있는 번호로 자동 연결
    2. Short Cut
      • 앱을 꾹 누를 시 안전 지도 및 응급 상황 메뉴얼 기능으로 접속
    3. 안전 지도
      • Kakao Map API와 공공 데이터를 활용
      • 사용자의 기기에 CCTV, 약국, 병원, 편의점, 안심택배 등 범죄로부터 피신할 수 있는 Safe Zone을 표시하여 제공
    4. 백그라운드 실행
      • 백그라운드에서도 앱이 실행될 수 있게하여, 앱을 켜놓지 않은 상태에서도 비상 상황을 감지하고 도움을 요청
    5. 성범죄자 알림e
      • 검색하고자 하는 지역 근처에 등록된 성범죄자를 확인할 수 있는 사이트로 자동 연동
    6. 가이드
      • 앱에 포함된 기능이 많아 적절한 설명과 사용 방법을 안내
      • 클릭 시 설명 타겟을 제외한 나머지 화면은 blur 처리
      • 설명 타켓의 화면 근처에는 설명문이 제시되고, 다음 버튼 클릭하여 진행
    7. 위기상황 대처 메뉴얼
      • 스토킹, 납치, 유괴, 교통사고, 안전사고 등 여러 범죄 및 사고에 대처할 수 있는 요령 메뉴얼 제공
    8. 범죄 및 건강 안전 교육
      • 메인 화면 상단에 안전 관련 유튜브 영상 카로셀 제공
      • 웹 크롤링을 이용해 데이터를 수신하여 최신 자료로 자동 업데이트
    9. 설정
      • 설정 페이지에서 원하는 기능을 한 번의 클릭으로 on/off
      • 스마트 워치가 감지하는 이상 심박수 기준을 사용자에 맞게 커스터마이징
      • '응급 설정' 버튼 클릭 시 안드로이드가 제공하는 응급 메세지 설정 화면으로 자동 이동
    10. 친구초대
      • 공유 기능을 통해 친구에게 만료일자, 초대자 정보가 암호화되어 담긴 딥링크를 보낼 수 있음
      • 초대를 받은 친구는 앱이 없으면 설치 페이지로 이동하고, 앱이 있으면 초대 수락 여부를 결정하는 창을 보게 됨

수서 복지관 방문 및 시연

수서 복지관 복지사님과 회의
할머님과 시연

팀원 소개

이름 역할 담당
김도훈 팀장 Full-stack
김시언 팀원 Full-stack
김준우 팀원 Full-stack
윤지환 팀원 Full-stack
최윤정 팀원 Full-stack
한준수 팀원 Full-stack

기술 스택

협업툴

Back-end

Front-end

서버

와이어 프레임

기능 명세서

API 명세서

파일 위젯 트리

├─api
├─components
│  ├─dialog
│  ├─emergencyManual
│  ├─homecam
│  ├─login
│  ├─main
│  ├─permissionService
│  ├─safearea
│  ├─set
│  ├─utils
│  ├─wear
│  └─youtube
│      ├─models
│      ├─services
│      └─utilities
├─googleLogin
├─pages
└─providers
  • user
{
  activated: 계정 활성화 여부
  birth: "940613"
  blocked: 계정 차단 여부
  gender: "M"
  googleUID: "구글 계정의 UID
  hide: 
  latitude: "계정의 실시간 현재 위치(위도)
  longitude: "계정의 실시간 현재 위치(경도)
  name: "김싸피"
  phone: "01012345678"
  profileImage: "최초엔 구글 프로필사진 업로드(추후에 변경 가능)"
  region: "(06220) 서울 강남구 테헤란로 212"
}

codeToUser

{
  homeLat: 피보호자의 집(위도)
  homeLon: 피보호자의 집(경도)
  name: "김싸피"
  phone: "01012345678"
  profileImage: "최초엔 구글 프로필사진 업로드(추후에 변경 가능)"
}

homecamCodeToUser

{
  expiredTime: 2022년 11월 17일 오후 6시 10분 53초 UTC+9
  name: "김싸피"
  profileImage: "최초엔 구글 프로필사진 업로드(추후에 변경 가능)"
  url: rtsp://watchout:[email protected]/stream1
}

location

{
  latitude: 실시간 현재 위치(위도)
  longitude: 실시간 현재 위치(경도)
}

userAccessCode

{
  accessCode: 승인 코드
}

goingHomeUserList

{
  accessCode: 승인 코드
  homeLat: 피보호자의 집 주소(위도)
  homeLon: 피보호자의 집 주소(경도)
  name: 피보호자 이름
  phone: 피보호자의 휴대폰 번호
  profileImage: 피보호자의 프로필 이미지
}

homecamUserList

{
  accessCode: 승인 코드
  expiredTime: 만료시간
  name: 피보호자 이름
  profileImage: 피보호자의 프로필 이미지
  url: 피보호자의 홈캠 주소소
}

cctv

{
  SVCAREAID: 주소(구)
  ADDR: CCTV 위치
  CCTVUSE: CCTV 용도
  WGSXPT: CCTV 위치(위도)
  WGSYPT: CCTV 위치(경도)
  UPDATE: 갱신일일
}

emergencyBell

{
  WGSXPT: 비상벨 위치(위도)
  WGSYPT: 비상벨 위치(경도)
}

safeOpenBox

{
  ADDRDETAIL:
  ANSIMIADDR: 안심택배 주소
  ANSIMINM: 안심택배 위치명
  WGSXPY: 안심택배 위치(위도)
  WGSYPT: 안심택배 위치(경도)
}

컬러팔레트

JIRA

JIRA

기능별 화면

로그인 화면
회원 가입 회원 정보 수정
메인 페이지 설명 가이드
권한 요청
CAM 나의 캠
성범죄자 알림e 안심귀가 서비스
SOS
신고 위기상황 대처 메뉴얼
안전 지도
귀갓길공유(피보호자)
귀갓길공유(보호자)
설정 응급 설정
비상 연락처 설정
친구 초대

Gitmoji의 이모지

Emoji Code Description
:sparkles: 새 기능
♻️ :recycle: 코드 리팩토링
⚡️ :zap: 성능 개선
🔧 :wrench: 리소스 수정/삭제
🐛 :bug: 버그 수정
📝 :memo: 문서 추가/수정
💄 :lipstick: UI/스타일 파일 추가/수정
🎉 :tada: 프로젝트 시작
:white_check_mark: 테스트 추가/수정
:heavy_plus_sign: package / 의존성 추가
:heavy_minus_sign: package / 의존성 삭제
:rewind: 변경 사항 되돌리기
🔀 :twisted_rightwards_arrows: 브랜치 합병
🗃 :card_file_box: 데이터베이스 관련 수정
💡 :bulb: 주석 추가/수정
🚀 :rocket: 배포

Commit Convention

  • Feat : 새로운 기능을 추가할 경우

  • Fix : 버그를 고친 경우

  • Update : 코드 수정

  • Style : 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우

  • Refactor : 프로덕션 코드 리팩토링

  • Docs : 문서를 수정한 경우

  • Test : 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X)

  • Chore

    : 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우

    • Rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
    • Merge : 일주일에 최소 한번!(꼭 말하고 하기)
    • Design : CSS 등 사용자 UI 디자인 변경
💡 ex) `:sparkles:` navbar 수정

branch Convention(기능별로 쓰기)

  • master : 제품 출시될 수 있는 브랜치
  • develop : 다음 출시 버전 개발하는 브랜치
  • feature : 기능을 개발하는 브랜치 (기능 별 생성후 병합)
  • hotfix : 출시 버전에서 버그를 수정하는 브랜치
💡 ex) Feat#Jwt_BE : 백엔드의 Jwt 기능 추가

About

SSAFY 자율프로젝트 WatchOuT

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published