GithubHelp home page GithubHelp logo

connect-foundation / 2019-01 Goto Github PK

View Code? Open in Web Editor NEW
37.0 6.0 10.0 5.79 MB

๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ‘ฉโ€๐Ÿ’ปBoolean Avengers : ๊ฐœ๋ฐœ ์ƒ์‹์„ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์‹œ๋ฆฌ์–ด์Šค ๊ฒŒ์ž„ ์„œ๋น„์Šค

License: MIT License

HTML 0.23% JavaScript 88.97% CSS 0.23% Dockerfile 0.73% TSQL 9.45% Shell 0.38%
react nodejs socket-io canvas-api express docker mysql nginx docker-compose travis-ci

2019-01's Introduction

Welcome to Boolean Avengers ๐Ÿ‘‹

Version node-version npm-version Documentation Issues Pull requests Travis License: MIT

๐Ÿ“– Wiki

๐Ÿ–ฅ Demo Video

๐Ÿ•น๏ธ Click and Play game!

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ OX ํ€ด์ฆˆ ๊ฒŒ์ž„ ์„œ๋น„์Šค

๋๊นŒ์ง€ ์‚ด์•„๋‚จ๋Š” ์ž๊ฐ€ ์ฑ„์šฉ๋œ๋‹ค! ์‹์ƒํ•œ ํ€ด์ฆˆ๊ฒŒ์ž„๊ณผ ์ง€๋ฃจํ•œ ๊ฐœ๋ฐœ ๊ณต๋ถ€์— ์งˆ๋ฆฌ์…จ๋‚˜์š”? ํ‚ค๋ณด๋“œ๋กœ ์ง์ ‘ ์บ๋ฆญํ„ฐ๋ฅผ ์กฐ์ž‘ํ•ด์„œ ๊ฐœ๋ฐœ ์ƒ์‹ OX ํ€ด์ฆˆ๋ฅผ ํ’€์–ด๋ณด์„ธ์š”! Boolean Avengers๋Š” ๋‹ค์ด๋‚ด๋ฏนํ•œ ๊ฒŒ์ž„ ์š”์†Œ์™€ ๊ฐœ๋ฐœ ์ƒ์‹ ํ€ด์ฆˆ๋ฅผ ๊ฒฐํ•ฉํ•œ ์›น ์‹œ๋ฆฌ์–ด์Šค ๊ฒŒ์ž„ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

Install & Run

  • ๐Ÿ˜˜Front-End
cd client
npm install
npm start
  • ๐Ÿ—Back-End
cd server
npm install
npm start
  • ๐ŸณBy Docker-compose
docker-compose up

โ›‘Run tests

npm test

๐Ÿ Challenge

์›น์—์„œ ์ฆ๊ธฐ๋Š” ๋‹ค์ด๋‚ด๋ฏนํ•œ ๊ฒŒ์ž„!

  • ์›น ํ™˜๊ฒฝ์—์„œ ์œ ์ €๋“ค์ด ์—ฌ๋Ÿฌ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ์œ ์ €๋“ค์˜ ํ–‰๋™์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜ํ•˜๋ฉด์„œ, ์œ ์ €๋“ค์—๊ฒŒ ๋™์ผํ•œ UX๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์›น์—์„œ ๋ณด๋‹ค ๋ถ€๋“œ๋Ÿฌ์šด ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ํ†ตํ•ด ๋งค๋„๋Ÿฌ์šด ๊ฒŒ์ž„ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์ €๋“ค๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ ๋„ํ•˜์—ฌ, ๋‹ค์ด๋‚ด๋ฏนํ•œ ๊ฒŒ์ž„ ์š”์†Œ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“’ Tech Log

๐Ÿ”ง Tech Stack

๐Ÿ—ƒ Project Folder

๐Ÿ“docker
๐Ÿ“mysql
๐Ÿ“script
๐Ÿ“client
โ”œโ”€โ”€ ๐Ÿ“public
โ”œโ”€โ”€ ๐Ÿ“src
โ”‚   โ”œโ”€โ”€ App
โ”‚   โ”œโ”€โ”€ ๐Ÿ“modules
โ”‚   โ”œโ”€โ”€ ๐Ÿ“constants
โ”‚   โ””โ”€โ”€ ๐Ÿ“components
โ”‚       โ”œโ”€โ”€ ๐Ÿ“Admin
โ”‚       โ”œโ”€โ”€ ๐Ÿ“Login
โ”‚       โ”œโ”€โ”€ ๐Ÿ“Lobby
โ”‚       โ””โ”€โ”€ ๐Ÿ“Room
โ”‚       โ””โ”€โ”€ ๐Ÿ“OAuth
๐Ÿ“server
โ”œโ”€โ”€ App
โ”œโ”€โ”€ ๐Ÿ“bin
โ”‚   โ””โ”€โ”€ www
โ”œโ”€โ”€ ๐Ÿ“middlewares
โ”œโ”€โ”€ ๐Ÿ“routes
โ”‚   โ””โ”€โ”€ ๐Ÿ“admin
โ”œโ”€โ”€ ๐Ÿ“database
โ”œโ”€โ”€ ๐Ÿ“controller
โ”œโ”€โ”€ ๐Ÿ“models
โ”œโ”€โ”€ ๐Ÿ“constants
โ”œโ”€โ”€ ๐Ÿ“test
โ””โ”€โ”€ ๐Ÿ“util

๐Ÿ— Architecture

Server & Client

Server&Client

CI/CD

CI/CD

Socket event flow

Socket event flow

Game Logic

Move

Game Logic: Move

Game start to end

Game Logic: Start&End

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ Author

๐Ÿ‘ค boostcamp 2019-01

๐Ÿ‘ธ ๊น€ํฌ์„ 
๐ŸŒŸ ํ•จํ˜•๊ทœ
๐Ÿค ์„œ๋ณดํ˜„๐Ÿ‘จโ€โš•๏ธ
๐Ÿ’‘ ์กฐ์˜๋„

๐Ÿ“ Copyright

Character Image

Allowed use and edit only for non-commercial from Source

Sound

Allowed use only for non-commercial from Source

๐Ÿค Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.


This README was generated with โค๏ธ by readme-md-generator

2019-01's People

Contributors

bellaah avatar connectfoundation avatar gyustar avatar ktseo41 avatar young-do avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

2019-01's Issues

[0-1] DB ์„ค๊ณ„

์œ ์ €, ๋ฌธ์ œ, ๋‹‰๋„ค์ž„์— ๋Œ€ํ•œ db ์„ค๊ณ„

์˜ˆ์ƒ์‹œ๊ฐ„: 2h

์ •๋‹ต์— ๋Œ€ํ•œ ํ•ด์„ค์„ ๋ณด์—ฌ์ค˜์•ผ ํ• ์ง€?

OX ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๋‹ค ๋ณด๋‹ˆ๊นŒ ๋‹ต์„ O, X๋กœ ๋‚˜ํƒ€๋‚ด์ฃผ๋Š” ๊ฒƒ ์™ธ์—๋„ ๊ฐ„๋‹จํ•œ ํ•ด์„ค์„ ๋ณด์—ฌ์ฃผ๋Š”๊ฒŒ ๋‚˜์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
์ถ”๊ฐ€์ ์ธ ๊ตฌํ˜„์ธ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ , ํ•„์ˆ˜์— ๊ฐ€๊นŒ์šด ๋‚ด์šฉ๊ฐ™๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. option์œผ๋กœ ๊ตฌํ˜„ํ• ๊นŒ์š”?

docker-mysql์—์„œ volume์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ์œ ์ง€ํ•˜๋„๋ก ํ•˜๊ธฐ

  • ํ˜„์žฌ ์ดˆ๊ธฐ๋ฐ์ดํ„ฐ๋Š” ์ž‘์„ฑํ•ด๋‘” sql ํŒŒ์ผ๋กœ ๋„ฃ์–ด์ฃผ๊ณ  ์žˆ๋‹ค.
  • nCloud์˜ docker-mysql์€ ๋ฐฐํฌ๊ฐ€ ๋  ๋•Œ๋งˆ๋‹ค ์ดˆ๊ธฐํ™” ๋˜๊ณ , ์ดˆ๊ธฐ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.
  • ํ˜„์žฌ๋Š” ์ƒ๊ด€ ์—†์ง€๋งŒ ์œ ์ €๊ฐ€ ์ถ”๊ฐ€๋˜๋˜๋Š” ๋“ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ๋Š” ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
  • docker์˜ volume๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ ์œ„ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

[0-9] ๊ฐ์ฒด ์„ค๊ณ„

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ๋ฐ ๋ชจ๋ธ, ์ปจํŠธ๋กค๋Ÿฌ ๊ฐ์ฒด ์„ค๊ณ„

์˜ˆ์ƒ์‹œ๊ฐ„: 5h

DB ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋”ฐ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ

async getQuizList() {
  const [quizList] = await this.pool.query(this.quizFinder.getTenQuiz);
  return quizList;
}

์œ„์™€๊ฐ™์ด QuizModel์—์„œ ์ง์ ‘ pool์„ ๋‚ ๋ ค์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๋นผ์ฃผ๋Š” ๊ฑธ ๊ณ ๋ คํ•˜๊ธฐ๋กœ ํ•จ

Story book ๋„์ž…?

  • react ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•œ ๋ˆˆ์— ๋ณด๊ธฐ ํŽธํ•ด๋ณด์ž„
  • ์ƒํƒœ ๊ด€๋ฆฌ ํŽธํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

  • ์˜ˆ์ƒ ์‹œ๊ฐ„ : ?
  • ํ…Œ์ŠคํŠธ ๋ชฉํ‘œ ๋ฒ”์œ„ ์ •ํ•˜๊ธฐ : unit , integration, E2E test
  • ํ…Œ์ŠคํŠธ ๋„์ž… ์‹œ์  ์ •ํ•˜๊ธฐ : ๊ธฐ๋Šฅ ์™„์„ฑ ํ›„ / develop ๋ธŒ๋žœ์น˜์—์„œ master๋กœ ๋จธ์ง€ํ•˜๊ธฐ ์ „ / ํ•œ ์ฃผ ์‹œ์ž‘ ์ „ ๋“ฑ๋“ฑ

master, develop ๋ธŒ๋žœ์น˜์— PRํ•  ๋•Œ๋งŒ, CI ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

ํ˜„์žฌ travis ์„ค์ •์ด ๋ชจ๋“  ๋ธŒ๋žœ์น˜์— push๊ฐ€ ์žˆ์„ ๋•Œ๋งˆ๋‹ค CI ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰๋จ.
master, develop ๋ธŒ๋žœ์น˜์— PRํ•  ๋•Œ๋งŒ, CI ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰๋˜๋„๋ก ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ.

์ถ”๊ฐ€๋กœ, ๋ฐฐํฌ๋Š” merge๊ฐ€ ๋œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋˜๋„๋ก ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

[0-10] ํ”„๋กœํ† ์ฝœ ์„ค๊ณ„

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ ํ”„๋กœํ† ์ฝœ ์„ค๊ณ„

์˜ˆ์ƒ์‹œ๊ฐ„: 3h

Travis trigger ํฌ์ธํŠธ ๋ณ€๊ฒฝ ํ•„์š”

  • ํ˜„์žฌ pull request ์‹œ, travis๋กœ docker image ๋นŒ๋“œํ•จ.
  • ๊ทธ๋Ÿฌ๋‚˜ travis ์ •์ฑ…์— ๋”ฐ๋ฅด๋ฉด, pull request๊ฐ€ ๋ณด๋‚ด์ง„ ๋ธŒ๋žœ์น˜๋กœ ๋นŒ๋“œํ•˜์ง€ ์•Š์Œ
  • ๊ทธ๋ž˜์„œ pull request ์‹œ travis ์‹คํ–‰์ด ์•„๋‹Œ, develop, master๋กœ push ์‹œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•  ํ•„์š” ์žˆ์Œ.

ํ˜„์žฌ feature ๋ธŒ๋žœ์น˜ ์ค‘ .travis.yml ํŒŒ์ผ ๋‹ค๋ฅธ์ง€ ์—ฌ๋ถ€ ํ™•์ธ ํ•„์š”

์ค‘๊ฐ„์— travis.yml ํŒŒ์ผ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”๋ฐ, ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜์—์„  ๋ณ€๊ฒฝ ์ „ ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด ํ˜„์žฌ develop ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ํŒŒ์ผ ๊ณ ๋Œ€๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
commit๋„ ํ•„์ˆ˜๋กœ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด์ „ ํŒŒ์ผ์ธ ๊ฒฝ์šฐ, travis๊ฐ€ ์˜๋„์น˜ ์•Š์€ build & deploy ๊ณผ์ •์„ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ ์„œ๋ฒ„์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ฒฝํ—˜๋‹ด)
์œ ์˜ํ•ด์ฃผ์„ธ์š”! :)

README.md ๊พธ๋ฏธ๊ธฐ

  • ๋งˆ์Šคํ„ฐ๋‹˜์˜ ์ œ์•ˆ
  • readme-md-generator ์ด์šฉ?
  • travis-ci build ๋ผ๋ฒจ์„ ๋ถ™์ด๋Š” ๋“ฑ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”

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.