Giter Club home page Giter Club logo

hotel_management_system's Introduction

2020-2 데이터베이스 호텔관리시스템 만들기

Member

  • 2019037129 소프트웨어학부 신민경
  • 2019083436 소프트웨어학부 권유리
  • 2017013390 응용수학학과 김성연
  • 2019036844 소프트웨어학부 하현우
  • 2019052851 소프트웨어학부 박준성


Introduction

메인페이지

호텔 소개 및 사진이 있고 일주일 동안의 예약 현황을 그래프로 보여준다.


객실관리

객실별 고객 정보와 요청사항을 실시간으로 보여준다. 고객의 국적과 객실 청소 상태, 요청사항 여부를 아이콘으로 보여주며, 문 아이콘을 클릭하면 체크아웃을 할 수 있다. 양피지 아이콘 클릭시 최신 요청사항을 볼 수 있고 쓰레기통을 클릭하면 청소 상태를 바꿀 수 있다. +아이콘은 고객의 이름 및 조식 등의 예약 정보, 결제금액과 주의사항 등을 확인할 수 있다.

왼쪽 파란색의 버튼을 클릭하여 원하는 층으로 이동이 가능하며 가장 오른쪽 테이블의 +아이콘을 클릭하면 룸서비스 및 요청사항을 추가할 수 있다. 가장 오래된 요청 순으로 정렬되며 완료 버튼을 누르면 테이블에서 삭제된다. 룸서비스 금액은 객실별 결제금액에 추가된다.

새로고침 없이 모든 정보가 업데이트 되기 때문에 여러 직원이 동시에 수정하는 것이 가능하다. 예를 들어 한 직원이 312호 객실을 체크아웃하면 객실관리 페이지를 보고 있던 다른 직원의 화면에서 312호의 사람 아이콘이 실시간으로 사라진다.



예약관리

예약추가, 예약취소, 체크인을 관리하는 페이지다. 왼쪽 카테고리를 클릭하여 상태별로 예약을 관리할 수 있다. 체크인시에 객실관리 페이지에 실시간으로 반영이된다.



직원관리

직원을 추가하고 정보를 확인할 수 있다. 각 직원의 출퇴근 상태, 가능 외국어를 확인할 수 있다. 객실에 직원을 배정할 때 직원의 출퇴근 상태, 사용 가능 외국어에 따라 적합한 객실에 우선적으로 배정한다.





Install

  1. 파일을 다운 받는다.
git clone [email protected]:O-nlogn/Hotel_Management_System.git
  1. mysql에 데이터베이스를 만들고 hotel_system.sql을 복원한다.
mysql -u [계정이름] -p [만든 DB 이름] < [hotel_system.sql의 위치]
  1. db.js 파일을 만들고 db-template.js의 내용을 수정하여 저장한다.
  2. server.js 파일을 실행한다.
   node server.js



Guest로 로그인하기

아이디: 1111111111 / 비밀번호: 1234 입력



📢 커밋메시지 컨벤션

커밋메시지는 제목/본문/(issue number)로 구성한다.

type: subject

description

Issue: #1

type

  • Feat: 기능 추가
  • Fix: 버그 수정
  • Docs: 문서 수정
  • Style: 코드 스타일(공백, 주석 등) 수정, 코드 변경 없는 경우
  • Refactor: 코드에 직접적인 변경이 있는 경우(변수명, 함수명 변경, 코드 구조 변경)
  • Test: 테스트 코드
  • type의 첫 글자는 모두 대문자로 쓴다.

subject

  • type 콜론(:)과 subject 사이에는 공백을 한 칸씩 추가한다.
  • 수정 내용을 간략히 포함해야한다.
    ex) 버그 수정 (x), 한글이 깨지는 버그 수정(O)
    
  • 50자 이내로 작성한다.

description

  • 제목과 본문 사이는 한 줄 비운다.
  • 본문은 커밋의 이유와 수정된 사항을 자세하게 쓴다.
  • 이슈와 관련된 커밋인 경우 본문 가장 마지막 줄에 이슈 번호를 추가한다.



📢 코딩 컨벤션

  1. 괄호의 방식은 K&R 스타일을 사용하도록 한다.
void f(){ // O
    // this is k&r style
}

void f2() // X
{

}
  1. 함수, 폴더, 변수명에 의미를 완전히 포함하도록 한다. (단, id, pw, cnt, tmp, str, pos, img, docs, src는 제외한다)

  2. 변수명은 카멜 표기법을 따르도록 한다.

  3. 주석은 한글로 작성하고, 기능별로 작성하도록 한다.

  4. 주석과 다음에 오는 코드 사이에 공백 한 줄을 포함하도록 한다. (기능에 대한 주석은 해당 기능을 갖는 함수나 코드 윗줄에 작성하고 코드가 무엇을 의미하는 지에 대한 주석은 해당 코드와 같은 줄에 작성한다.)

  5. 여러 줄의 주석을 달 때는 /* */를 이용한다. (한 줄씩, 주석 처리를 하지 않는다.)

  6. 변수 할당 시는 '='를 포함하는 연산자를 기준으로 양 옆 공백을 하나씩 넣는다.

  7. 반복문과 다음에 오는 코드 사이에 공백 한 줄을 포함하도록 한다.

  8. goto, switch-case문은 사용하지 않도록 한다.

  9. for, if 다음에 오는 괄호는 띄우도록 한다.

for (int i=0; i<10; i++){
    if (i == 5) break;
}

hotel_management_system's People

Contributors

hihiroo avatar high2092 avatar yurikwon avatar rasauq1122 avatar sungyeon-0975 avatar

Stargazers

민지 avatar  avatar

Watchers

James Cloos avatar  avatar

hotel_management_system's Issues

login.html에서 id, pw 데이터 post로 전달 안되는 문제

<dd><input type="text" class="text" id="id"></dd>
<dd><input type="password" class="text" id="pw"></dd>
서버에 전달해야되는 데이터 이름은 id 말고 아래와 같이 name으로 해주세요!
id로 했을 때 제대로 전달이 안되는 것 같습니다.

<dd><input type="text" class="text" name="id"></dd>
<dd><input type="password" class="text" name="pw"></dd>

예약관리 페이지 "예약상태별 보기" 표시 문제

부트스트랩으로 구현된 해당 버튼은 active 클래스를 가진 버튼에 눌러진 디자인이 적용되어야 하는데,
항상 "Show all" 버튼에 눌러진 디자인이 적용되는 것으로 보아

  1. 버튼을 눌렀을 때 클래스값 전달이 제대로 되지 않았거나
  2. css 부분이 누락된
    것 같습니다.

자동 새로고침 기능 추가를 위한 API 분리 요청

현재 '/room' API는 모든 웹페이지의 view를 render하도록 코딩되어있는 것 같습니다만,

웹페이지의 전체가 아닌, 웹페이지의 특정 부분만 실시간으로 새로고침하기를 원한다면
그 특정 부분만 ejs 파일을 따로 분리한 후, 그 파일을 render하도록 하는 API가 필요합니다.

무리한 요구인 것 같다면 말씀해주시고, 해당 기능에 대해 궁금한 것이 있으면 자유롭게 물어봐주세요.

[BackEnd] '/login_data'에 2번 접근시 서버가 죽습니다.

0|server   |     at Protocol.handshake (/home/rasauq1122/HMS/node_modules/mysql/lib/protocol/Protocol.js:51:23)
0|server   |     at Connection.connect (/home/rasauq1122/HMS/node_modules/mysql/lib/Connection.js:116:18)
0|server   |     at IncomingMessage.<anonymous> (/home/rasauq1122/HMS/router/main.js:50:22)
0|server   |     at IncomingMessage.emit (events.js:203:15)
0|server   |     at endReadableNT (_stream_readable.js:1145:12)
0|server   |     at process._tickCallback (internal/process/next_tick.js:63:19) code: 'PROTOCOL_ENQUEUE_HANDSHAKE_TWICE', fatal: false }
0|server   | { Error: Cannot enqueue Handshake after already enqueuing a Handshake.
0|server   |     at Protocol._validateEnqueue (/home/rasauq1122/HMS/node_modules/mysql/lib/protocol/Protocol.js:221:16)
0|server   |     at Protocol._enqueue (/home/rasauq1122/HMS/node_modules/mysql/lib/protocol/Protocol.js:138:13)
0|server   |     at Protocol.handshake (/home/rasauq1122/HMS/node_modules/mysql/lib/protocol/Protocol.js:51:23)
0|server   |     at Connection.connect (/home/rasauq1122/HMS/node_modules/mysql/lib/Connection.js:116:18)
0|server   |     at IncomingMessage.<anonymous> (/home/rasauq1122/HMS/router/main.js:50:22)
0|server   |     at IncomingMessage.emit (events.js:203:15)
0|server   |     at endReadableNT (_stream_readable.js:1145:12)
0|server   |     at process._tickCallback (internal/process/next_tick.js:63:19) code: 'PROTOCOL_ENQUEUE_HANDSHAKE_TWICE', fatal: false }

다음과 같은 메시지를 띄우며 서버가 죽습니다.
웹서핑을 통해 알아본 후 해결해보도록 하겠습니다.

[FrontEnd] div 태그 끼리의 줄바꿈을 없애주세요.

image

<td class="text-primary">
     <div id="road">도로</div> <div id="detail">세부</div><button onclick="goPopup();">변경</button>
     <!-- road는 도로명 주소를, detail은 세부 주소를 담습니다. -->
</td>

다음과 같이 코드를 작성하였는데, '도로' 와 '세부'가 한 줄에 있으면 합니다.

해결해주실 수 있으실까요?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.