사이트에 접속한 유저들이 로그인 과정을 거치고 서로 오목대전을 즐길 수 있도록 제공하는 서비스
-
Client
- html canvas로 그래픽표현
-
Server & DB
-
External API
aws로 제공하는 오목대전 서비스 접속 : 접속하기(경희대 메일+교수님 메일로 로그인 가능)
또는,
다음 과정을 따라 진행한 후, 로컬PC에서 NodeJs실행 후 로컬PC에서 localhost:3000 으로 접속하기
- nodejs 설치 Node.js
- DB를 위한 별도의 설정은 없습니다.
git clone
명령으로 프로젝트 폴더 clone
git clone http://khuhub.khu.ac.kr/2018102213/WebGomokuService.git
npm install
명령으로 npm 패키지 설치
npm install
- 다음 블로그글에서 안내하는대로 구글에서 제공하는 OAuth Client ID, ClientSecret발급, call back url은 다음과 같이 설정
http://localhost:3000/auth/google/callback
- Google OAuth client ID를 GOOGLE_CLIENT_ID로, secret을 GOOGLE_SECRET로 시스템 환경 변수에 저장 or
config/passport.js의 process.env.GOOGLE_CLIENT_ID,process.env.GOOGLE_SECRET을 발급받은 OAuth CLient ID, ClientSecret으로 각각 대체하여 작성 후 저장
- main.js파일을 node.js로 실행
node main.js
이 어플리케이션은 구글 로그인으로 접속할 수 있습니다. 모든 유저의 승,패 횟수를 조회할 수 있습니다. 이 게임은 플레이어와 플레이어간의 오목대전을 지원합니다. 2명의 플레이어가 순차적으로 사이트에 접속하면 게임이 바로 시작됩니다. 게임이 시작되면 자신의 턴에 마우스 클릭으로 돌을 둘 수 있습니다. 플레이어들은 번갈아 가며 돌을 두게 되고 먼저 5개의 연속된 돌을 만드는 사람이 승리합니다. 게임의 승부가 결정이 나면 승리자의 승 수, 패배자의 패 수가 증가합니다. 게임 중간에 상대가 나가면 해당 방의 게임은 남아있는 사람의 승리로 처리됩니다.
- NodeJs서버 개발환경 구축
- HTML canvas개발환경 구축
- 구글API 사용권한 취득
- 구글 로그인 구현
- socket.io를 통한 서버와 클라이언트간의 연결 확인
- 연결된 socket들을 관리하는 Room구현
- 오목 게임 로직 구현
- sqlite3 데이터베이스 적용
- 데이터베이스 기능 구현
- 버그 수정, 그래픽 요소 수정
- AWS로 프로젝트 배포
개선사항이 있으시다면 다음 절차를 따라 직접 프로젝트에 기여해주실 수 있습니다.
- 프로젝트 Fork
- Feature Branch생성
- Fork한 프로젝트에 Commit, Push
- Pull Request요청
This project is licensed under the terms of the MIT license
2018102213 윤태웅 15ywt@khu.ac.kr 프로젝트 주소 : http://khuhub.khu.ac.kr/2018102213/WebGomokuService