프로젝트

2020_소프트웨어 경진대회_수정이는 기다리기 싫어!

gom1n 2021. 2. 23. 00:36


<작품 개발 동기>

 

우리 학교는 수업 시작 시간이 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 주소

https://github.com/gom1n/2020_sujung