Giter VIP home page Giter VIP logo

dimiwords's Introduction

Dimiwords Standard - JavaScript Style Guide

언젠가 뜯어 고쳐야 합니다! Vue, Express 처음 시작할 때 만든 프로젝트라 코드가 많이 부족하니 참고하시게 된다면 유의해 주세요.

18기 디미고 신입생을 위한 단어장 서비스 API 및 웹 애플리케이션입니다.

Screenshots

Run

cd Server
npm install
sudo forever start ./bin/www
cd ../Web
npm install
npm run-script build
sudo forever start serve.js

Lint

cd Server
standard --fix
cd ../Web
eslint --fix --ext .js,.vue src

dimiwords's People

Contributors

imgbot[bot] avatar junhoyeo avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

dimiwords's Issues

MD5 password encryption is insecure

https://github.com/CIVAR-DIMIGO/Dimiwords/blob/master/Server/routes/auth/login.js

제보자: 김동영, 김진서

var password = crypto.createHash('md5').update(req.body.password, 'utf8').digest('hex')

사용자 패스워드가 MD5로 해싱되어 저장된다.

취약한 이유

솔루션

  • 패스워드 암호화 방식을 bcrypt, scrypt 등으로 변경한다.
  • MD5로 해싱된 패스워드를 보유한 기존 유저의 경우 다음 로그인 시 비밀번호 재입력 및 변경 절차를 거친 뒤 서비스를 이용할 수 있게 한다.

Add new testing, studying system

단어 스펠링 중심 게임 대신 단어의 뜻 중심으로 학습이 가능한 모드가 필요하다.

  • 단어 카드(영어가 앞면, 클릭하면 발음과 동시에 일정 시간 동안 한글 뜻을 보여주고 다음 카드가 나옴)
  • 단어 뜻 맞추기(단어 뜻 옵션 여러 개가 나오고 표시되는 영어 단어의 뜻을 맞춰야 넘어감)

Tidy up components and pages

Vue를 야매로 배우면서 만들어서 컴포넌트와 페이지가 구분조차 안 되어 있어 끔찍합니다.
단어 배지부터 페이지별 카드까지 리팩토링해야 합니다.

API requirements for clients

Login

-ID : [email protected]
-PW : ex1234
return
success : true or false
message : false-아이디 없음, 비밀번호 불일치, 서버 에러 등 상세하게 알려주기

Join

-ID : [email protected]
-PW : ex1234
(비밀번호 확인은 클라이언트에서)
-DM : EB-0, DC-1, WP-2, HD-3
return
success : true or false
message : false-같은 아이디 존재, 서버 에러 등 상세하게 알려주기

WordbooksList

-page : 1, 2, 3 ···
return
success : true or false
message : true-WordBook_ID 배열 (WordBook_ID를 조회하면 Word_ID배열이 나온다)
false-없는 페이지, 서버 에러 등 상세하게 알려주기

WordsList

-page : 1, 2, 3 ···
return
success : true or false
message : true-Word_ID 배열 (Word_ID를 조회하면 그 단어의 데이터가 나온다)
false-없는 페이지, 서버 에러 등 상세하게 알려주기

Wordbook_ID

-ID : 단어의 ID
return
success : true of false
message : true-필수(한국어, 영어), 가능하면(정답횟수(accept), 답 제출 횟수(submit))
false-없는 단어 아이디, 서버 에러 등 상세하게 알려주기

WordBook_ID

-ID : 단어장의 ID
return
success : true of false
message : true-필수(Word_ID), 가능하면(정답횟수(accept), 답 제출 횟수(submit))

Point

-token : 유저의 token
-point : 1, 3, 5 ···
return
success : true of false
message : false-토큰 조회 실패, 발생할 수 없는 point, 서버 에러 등 상세하게 알려주기

Error on word correctness and point

올바른 정답을 입력한 후 엔터를 연타하면 몇 개의 단어가 정답처리됨과 동시에 포인트를 받으며, 다음 단어로 넘어갑니다.

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.