2020_소프트웨어 경진대회_수정이는 기다리기 싫어!
<작품 개발 동기>
우리 학교는 수업 시작 시간이 9시, 12시, 3시로 고정!
-> 수업 시작 시간이 임박하면 모든 엘리베이터에 항!상! 줄이 길~게 서있다
어플을 이용하여 엘리베이터별로 대기인원을 확인할 수 있다!
시험 기간이 다가오면 밤샘하는 수정이들이 많아져 수면실이 꽉찬다!
-> 잠을 청하기 위해 수면실에 갔다가 되돌아오는 수정이들이 생긴다
어플을 이용하여 수면실에 사람이 얼마나 있는지 확인할 수 있다!
학교안의 카페 수하루는 많은 수정이들의 공부, 모임 장소!
-> 미리 자리확인이 불가하여 가봐야 자리 유무를 알수있다
어플을 이용하여 수하루의 자리유무를 알 수 있다!
<작품 내용 및 자료화면>
스플래쉬 : 앱을 실행하면 제일 처음에 뜨는 화면
회원가입
- 앱을 실행하고 스플래시 화면이 끝난 뒤 로그인 창에서 회원가입 버튼을 누른다.
- 아이디에 학번을 적고 중복확인을 한다.
- 비밀번호를 입력하고 전공을 입력한 뒤 회원가입 버튼을 누르면 회원가입이 완료되고 로그인 창으로 넘어간다.
로그인
- 이전에 회원가입을 했던대로 아이디와 비밀번호를 입력하면 메뉴 화면으로 넘어가며 로그인이 된다.
엘리베이터
- 메뉴에서 엘리베이터를 누르면 가장 최근에 작성된 대기인원과 작성된 시간을 볼 수 있다.
- 위의 QR버튼을 누르고 일치하는 엘리베이터 위치의 QR코드를 찍으면 인원을 입력할 수 있는 팝업창이 뜬다.
- 팝업창에 인원을 입력하고 저장 버튼을 누르면 작성한 인원수가 즉시 반영된다.
수면실 퇴장
- 수면실에 부착된 퇴장 QR코드를 찍으면 수면실의 인원이 줄어든다.
수하루 좌석 예약
- 원하는 좌석을 클릭하면 초기 가입시 설정했던 학번으로 좌석을 예약할 수 있다.
수하루 좌석 취소
- 사용을 끝낸 좌석을 취소하여 다른 이로 하여금 사용할 수 있게한다.
- 초기 가입시 설정했던 비밀번호를 입력하여 값이 일치하면 좌석이 취소된다.
수면실 입장
- 메뉴에서 수면실을 누르면 수면실의 현재 인원이 보인다.
- 아래의 QR버튼을 눌러 수면실에 부착된 입장 QR코드를 찍으면 수면실의 인원이 추가된다.
수하루 좌석 확인
- 좌석 이용유무를 보여주는 화면의 왼쪽 위 버튼을 클릭하면 수하루 좌석 위치를 시각적으로 알려주는 지도를 볼 수 있다.
<코드 소개>
Intent로 화면 전환
- xml에 있는 버튼 ID를 통해 버튼 선언
- Intent를 통해 출발 액티비티와 도착 액티비티를 설정하고, startActivity를 통해 액티비티 실행
실시간 시계
- Date 객체 생성 후 시간데이터 저장 (yyyy.MM.dd hh:mm:ss 형태)
- 텍스트뷰에 실시간 시계 표시
QR 스캔하기
- qrScan 선언 후 실행
default가 세로모드인데 휴대폰 방향에 따라 가로, 세로로 자동 변경됩니다.
- qr코드를 JSON 문자열로 생성
- qr코드 스캔 후 실행되는 함수 onActivityResult 함수를 Override
SharedPreferences
- sharedpreference 객체 생성.선언
- key값은 "id" 와 "password"로 선언
- 데이터 삽입 (put___함수 사용. int, long, string, boolean 등등 가능)
- 데이터 가져오기 (get___함수 사용)
파이어베이스
- 파이어 베이스 선언
- setValue 통해서 데이터 베이스의 값 입력 및 수정
- 데이터 베이스의 값이 수정되면 onDataChange 함수가 실행됨
서버와 연결하기
- php파일과 연결
HashMap 사용
로그인
<작품 응용 분야 및 개선해야할 점>
- 현재는 수정캠퍼스의 엘리베이터, 수면실, 카페에만 적용되지만 앱을 보완하여 운정캠퍼스에도 활용할 수 있다.
- 좌석을 차지하면 학번 정보가 입력되므로 출석 관리에도 사용할 수 있다.
- 수하루 메뉴에서 신고하기 기능을 추가하여 허위로 좌석을 체크해둔 사용자를 신고하는 기능을 추가한다.
- QR 또는 사용자들의 참여로만 정보를 얻을 수 있어 정보의 신속성, 정확성이 떨어지므로 실시간으로 정보를 얻을 수 있는 방법을 모색한다.
- 하루가 지나면 데이터를 자동소멸하는 기능을 추가한다.(회원데이터 제외)
git 주소