- 저희 Police in my pocket은 긴급 상황 인식 및 자동 알림 신고 기능이 있는 스마트 경호 어플리케이션입니다.
- 사용자가 출발지와 목적지를 입력하고 확인 버튼을 클릭하면, 경로 및 사용자의 실시간 위치를 추적합니다.
- 긴급 상황이 발생하여 사용자가 직접 신고하거나 AI 모델이 사용자의 비명 소리를 인식하면 자동으로 신고가 발동합니다.
- 신고가 발생하면 신고가 발생한 위치를 데이터베이스에 저장합니다.
- 저장된 데이터를 통해 내 주변 위치 정보를 지도에 표시하여 위험 상황이 발생한 정보, 치안 시설 정보를 볼 수 있습니다.
- 로그인
- 회원가입
- 메뉴 화면
- 위치 기반 서비스(LBS)
GPS 신호와 구글 지도 API를 사용하여 사용자의 실시간 위치를 추적한다. 위급 상황 발생 시 사용자의 위치를 등록된 지인에게 메시지를 보내는 위치 기반 서비스(LBS) 기능을 제공한다.
- 주요 연락처 등록
사용자가 귀갓길에 앱을 실행하여 위급 상황이 발생했을 때, 메시지를 전송할 가족 또는 지인의 이름과 문자를 주요 연락처로 설정할 수 있도록 한다.
- 검색 및 등록 서비스
사용자가 앱을 이용하기 위해서 내리는 마지막 정거장과 사용자의 목적지까지의 정보가 필요하므로 사전에 등록할 수 있도록 한다.
- 검색 서비스
구글에서 제공하는 place API를 사용하여 버스 정류장과 지하철역 등 주소 정보를 쉽게 검색할 수 있도록 한다.
- 안심 귀가 서비스
이용자의 현재 위치는 빨산색, 출발지 위치는 노란색, 도착지는 파란색 마커를 사용하여 가독성을 높일 수 있도록 한다.
.
├── App.js
├── android/
├── app.json
├── index.js
├── ios/
├── node_modules/
├── package.json
├── assets/ // 각종 자원을 모아놓은 폴더
│ ├── images/
│ ├── sounds/
│ └── fonts/
├── src/ // 소스 코드를 모아놓은 폴더
│ ├── screens/ // 화면 단위의 코드
│ ├── api/ // 기능 구현을 위한 코드
│ ├── component/ // 재사용 가능한 컴포넌트 코드
│ ├── tempdata/ // api 테스트를 위한 mock data
│ └── styles/ // 스타일 코드
├── configs/ // 각종 설정을 위한 폴더
├── react-native.config.js
└── yarn.lock
- 도메인형 구조로 설계했습니다.
└── src
└── main
├── java
│ └── com
│ └── pocket
│ └── police
│ ├── PoliceInMyPocketBackendApplication.java
│ ├── domain
│ │ ├── dangerlocation
│ │ │ ├── controller
│ │ │ ├── dto
│ │ │ ├── entity
│ │ │ ├── repository
│ │ │ └── service
│ │ ├── safelocation
│ │ │ ├── controller
│ │ │ ├── dto
│ │ │ ├── entity
│ │ │ ├── repository
│ │ │ └── service
│ │ ├── user
│ │ │ ├── controller
│ │ │ ├── dto
│ │ │ ├── entity
│ │ │ ├── repository
│ │ │ └── service
│ │ ├── usercontact
│ │ │ ├── controller
│ │ │ ├── dto
│ │ │ ├── entity
│ │ │ ├── repository
│ │ │ └── service
│ │ └── userlocation
│ │ ├── controller
│ │ ├── dto
│ │ ├── entity
│ │ ├── repository
│ │ └── service
│ │
│ └── global
│ ├── common
│ ├── config
│ ├── security
│ ├── service
│ └── statusresponse
│
└── resources
├── application-email.yml
├── application-message.yml
├── application-mysql.yml
├── prometheus.yml
└── application.yml
-
Clone this project
git clone https://github.com/hanium-project/Police-in-my-pocket.git
-
Frontend
-
node module install
npm install (--legacy-peer-deps)
-
custom font link
npx react-native link
-
Android run
npm run android
-
iOS run
cd ios pod install cd .. npm run ios
-
-
Backend
-
change datasource url in application.yml
datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3307/polin # 3307 -> 3306 username: {USER_NAME} password: {USER_PASSWORD}
-
Install redis
-
run
SpringBootApplication.java
in IntelliJ IDEA
-
-
Clone this project
git clone https://github.com/hanium-project/Police-in-my-pocket.git
-
Frontend
- Same as above.
-
Backend
- ./gradlew clean build
- docker-compose build
docker-compose up -d --build
Name | 유희진 | 문지영 | 장세은 | 손효정 |
---|---|---|---|---|
Profile | ||||
Role | Team Leader, Frontend, Backend, DevOps | Frontend, DevOps | Frontend, Backend | Frontend |
gitHub | yu-heejin | ziyoungmoon | isprogrammingfun | hyooojing |