Skip to content

CheckQ-remaster/CheckQ-WEB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CheckQ-WEB

첫 페이지


프로젝트 소개

  • 호텔에서 객실문을 열 때 키를 이용하는데 이것은 분실의 우려가 있다. 그래서 QR code로 간단하면서 키를 분실하지 않도록 하는 어플리케이션.

사용 기술

  • Front: React, Typescript
  • Back: go
  • hardware: python
  • 디자인

페이지별 기능

[초기화면]

  • 서비스 접속 초기화면으로 로그인 또는 회원가입 화면으로 이동할 수 있습니다.
초기화면
첫 페이지

[로그인 화면]

  • 서비스에 로그인 할 수 있습니다.
  • 아이디 또는 비밀번호에 오류가 발생하면 오류 메시지가 보이고 로그인을 할 수 없습니다.
로그인 화면
Login ( 비밀번호 오류 )

[회원가입 화면]

  • 서비스에 회원가입 할 수 있습니다.
  • 개인 또는 기업으로 가입을 할 수 있습니다.
  • 아이디가 중복될 경우 또는 비밀번호가 특정형식에 맞지 않는 경우 비밀번호가 일치하지 않는 경우 경고 문자가 보이며 회원가입을 할 수 없습니다.
회원가입 화면
회원가입 ( 비밀번호 확인 오류 )

[예약 화면]

  • 예약할 수 있는 호텔 리스트를 볼 수 있습니다.
  • 검색을 통해 특정 호텔을 찾을 수 있습니다.
예약 화면
예약

[호텔 상세 화면]

  • 호텔에 대한 상세 정보를 볼 수 있으며 예약을 할 수 있습니다.
호텔 상세 화면
예약 ( 호텔 선택 )

[내 예약 화면]

  • 내가 예약한 호텔에 대한 정보를 볼 수 있습니다.
  • 해당 페이지에 나오는 QR code를 통해 체크인을 할 수 있습니다.
내 예약 화면
내 예약 ( 선택 )

힘들었던 점

  • 클라이언트의 qr code 값과 도어락의 값을 어떻게 일치 시켜야 하는지.
  • 어떻게 보안이 허술하지 않게 할 수 있는지.
  • 이미지가 불러와지지 않는 문제점.
  • JQuery로 작성된 코드 개선.

해결 방안

  • 클라이언트에서 호텔이름과 방정보를 넘겨주면 서버에서 넘겨받은 qr값과 미리 정해놓은 seed값으로 랜덤함수를 통해 QR code 값을 만듭니다. 이 때 seed값은 클라이언트와 하드웨어와 값이 같아야하고, 랜덤함수 또한 같아야한다. 이렇게하면 seed값이 알려지지 않는 이상 보안적인 부분이 해결됩니다.
  • js의 number 자료형의 범위가 64비트 부동 소수점이고, python의 int의 범위는 arbitrary-precision을 가지므로 크기의 제한이 없다. 그래서 js의 자료형의 범위에 맞추어 seed값을 설정하였습니다.
  • React에서 form을 관리할 때 어떻게 더 성능을 좋게 관리할 수 있을까에 대해 고민을 하던중 react hook form 라이브러리를 찾게되었습니다. react hook form은 제어되는 폼 컴포넌트를 사용하지 않기 때문에 불필요한 렌더링을 방지하고 더 빠른 성능을 제공해줍니다 또한 코드가 매우 직관적이며 간단하여 불필요한 코드를 줄일 수 있었습니다. 그 외에도 커스텀을 통해 다양한 기능을 제공해주어 전보다 적은 코드로 폼을 처리하고 더 빠른 성능을 얻을 수 있었습니다. 그리고 유효성 검사가 내장되어있어서 간단하게 유효성을 검사할 수 있습니다.

개선점

  • 호텔 예약 정보를 모아서 빅데이터를 생성할 것이다. 그리고 이것을 이용하여 어떤 방이 언제 어느 시기에 자주 이용되는지를 관리자에게 보여주는 기능을 추가할 것이다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •