GithubHelp home page GithubHelp logo

swpp2020-team16's Introduction

swpp2020-team16

branch Coveralls Sonarcloud Travis
master Coverage Status Quality Gate Status Build Status
dev Coverage Status Quality Gate Status Build Status

Are you the developer of this project?

If you are a developer of this project, please complete the following 4 settings. Especially, settings for docker is compulsory, so that we can have unified enviroment for development.

(1) setting commit message template.

git config commit.template ./.gitmessage.txt

(2) setting pre-commit / pre-push hooks.

./etc/githook-scripts/init-hook.sh

(3) install docker, docker-compose, docker-machine, virtualbox.

install docker according to your environment

install docker-compose according to your environment

install docker-machine according to your environment

install virtualbox according to your environment

(4) create default docker-machine in your terminal.

docker-machine create default

How to run

[Prerequisites For Running In Local Environment]

You need to install docker, docker-compose, docker-machine, virtualbox as explained above. This project's backend is based on docker, so please remind that it will not run unless you install all required docker services.

[How to run backend]

move to coding-mbti/backend,

then run the next command.

./local-docker/local-docker-starter-back/init.sh

[How to test/lint backend]

move to coding-mbti/backend,

then run the next command to test.

./local-docker/local-docker-tester-back/init-test.sh

run the next command to check pylint

./local-docker/local-docker-tester-back/init-pylint.sh

[How to run frontend]

move to coding-mbti/

run the next command

yarn start

[How to test/lint frontend]

move to coding-mbti/

run the next command to test

yarn test

run the next command to check eslint

./node_modules/.bin/eslint src/

swpp2020-team16's People

Contributors

ddongminstar avatar kwonsunbin avatar chullino avatar qwerq123456 avatar hy00nc avatar

Stargazers

 avatar

Watchers

Byung-Gon Chun avatar James Cloos avatar Alchan Kim avatar Won Wook SONG avatar Jangho Seo avatar Donghyun Kim avatar Yunmo Koo avatar  avatar  avatar  avatar

swpp2020-team16's Issues

Feat : Codes should be tested based on test Inputs/Outputs given.

Is your feature request related to a problem? Please describe.
Codes should be tested on client-side based on test Inputs and Outputs.

Describe the solution you'd like
The Inputs/Outputs should be given to clients.
On clicking the submit button, codes should be tested on the client-side.
If the test does not meet the acquired criteria, submit should be unavailable.

Current Implementation in Home with fixed problem_id will crash

Describe the bug
Current implementation will crash if problem of problem_id is None.

Additional context
Need some change like request list of problems with fixed_size(less than 5) and pick randomly one problem in front-end or add some views to retrieve random available problem.

feat: Add REST api for group management

Is your feature request related to a problem? Please describe.
For communication with backend and frontend, rest api specificed by [swagger io(https://app.swaggerhub.com/apis/ddongminstar/coding-mbti/1.0.0#/) is needed to be established.

Describe the solution you'd like
Simple django function based view with unittest.

Describe alternatives you've considered
Actually I prefer class based view, but for meet our standard, use fbv is required.

ml 데모 영상을 만듭니다.

데모 영상 링크

ML 내부 구현

code에 대해서 text로 인식을 하고, 다른 전처리 없이 분류가 되는지 확인하는 목적의 코드
간단한 python script 240개 정도에 대해서 labeling을 진행하고, raw code -> tf-idf Vectorizer -> GridSearchCV KFold (svm rbf)의 파이프라인으로 classifier와 vectorizer를 학습합니다.

best_score는 0.98정도가 나왔습니다.

Front-end

create-react-app으로 만든 앱에서 첫 화면에 TextArea로 code를 입력받고 request를 받은 후 결과에 따라 state를 update하고 alert를 띄워 줍니다.

Back-end

Django에서 앞서 작성한 ml 모델들을 불러와서 post request 로 받은 code에 대해 분류한 후, 분류 결과 label과 해당 label에 속하는 코드 중 하나를 random으로 골라서 반환해 줍니다.

이러한 간단한 ml 기능의 구현이 가능하다는 것을 확인하는 것이 이번 issue의 목적이었습니다.

이제 미리 정해진 기준에 맞추어서 정제된 문제에 대해 dataset을 만들고 labeling을 한다음, 새로운 모델들을 training하고 aws pipeline으로 변경하는 작업이 필요합니다.

그와 별개로 앞으로 많은 issue들을 프로젝트를 진행하면서 만들게 될텐데, 다른 사람들이 이해하기 쉽도록 format을 정하는 방법들이 있습니다. 한번 보시고 의견을 나누어 주세요.

Issue Template

Feat : Coder는 로컬 환경에서 코드 문제를 풀고 curl을 날릴 수 있어야 한다.

Is your feature request related to a problem? Please describe.

Coder는 로컬한 환경에서 코드 문제를 풀고 curl을 날릴 수 있어야 하고,
서버는 해당 코더에게 코드 문제에 대한 답이 맞는지 확인해주고,
서버는 해당 코더에게 분석 결과를 제공해줄 수 있어야 한다.

Describe the solution you'd like
API를 하나 뚫어주어야 한다.
response를 설정해야 한다. (어떤 데이터를 리스폰스로 넘겨줄 것인지)

Add pre-commit, pre-push hooks

Is your feature request related to a problem? Please describe.
Developers might not check linting or testing locally, because it's cumbersome. It leads to many more CI errors.

Describe the solution you'd like
Adding pre-commit hook and pre-push hook can remove cumbersome works and lessen CI error, because all the linting and testing are checked locally, and also automatically whenever the commit command or the push command executes.

Describe alternatives you've considered
automatic linting and testing whenever commit or push command executes.

swagger like UI

Is your feature request related to a problem? Please describe.
Use swagger like UI to show researcher API

Feat : Show other coders solution

백엔드에서 해당 문제에 대한 다른 성향의 코더들의 Solution을 가져와 프론트에 띄웁니다.

4*4 매트릭스의 칸마다 버튼을 주어서 버튼 클릭시 각 성향의 코더들이 해당 문제를 해결한 방식을 보여주는 식으로..

bug: Travis CI improperlyConfigured error

Describe the bug
DJANGO_SETTINGS_MODULE is not set in travis VM. So unittest and coverage cannot determine which setting to use.

To Reproduce
Steps to reproduce the behavior:

  1. Pull Request to upstream repository with pyton unittest.
  2. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image
Desktop (please complete the following information):

  • Travis Ci virtual environment

Additional context
https://stackoverflow.com/questions/26082128/improperlyconfigured-you-must-either-define-the-environment-variable-django-set

Feat : resolve hard codings in Backend analysis app

현재 ITP1_6_B와 ITP2_3_B에 해당하는 솔루션이나 레포트를 가져올 때 하드 코딩 방식으로 가져오는데,

다양한 문제 추가 이후

backend/test_cases의 폴더 디렉터리를 이용하여 hard coding을 resolve 해야함

Testing Plan, Deployment Plan

Testing Plan

Unit Testing

All modules for front-end(components, containers, action creators, router and reducers) and back-end(urls, views, and models) are going to be tested. These tests should reach coverage of 90% by the end of every sprint .

  • Front-end(React): Jest & Enzyme
  • Back-end(Django): Python unit test

Functional Testing

All of our RESTful APIs are going to be tested. Functional testing would be started when every implementation and unit testing is done.

  • Front-end(React): Jest & Enzyme
  • Back-end(Django): Python unit test

Acceptance & Integration Testing

All user interfaces and scenarios(written in the Requirements and Specification document) are going to be tested.

  • Travis CI

Deployment Plan

We are going to deploy our app using AWS Code Deploy.

  • AWS Code Deploy

Fill in the Swagger API data

Is your feature request related to a problem? Please describe.
data for API should be filled in.
'src/components/researcher-API-spec/swagger.yaml'

User story 작성

https://story.pxd.co.kr/1219
https://wholeman.dev/posts/guide-to-writing-correct-user-stories/

등을 참조하여 간단하게 유저 스토리 틀을 작성했습니다.

추가하고 싶은 내용이 있거나, 기타 제안이 있으시면 댓글로 알려주세요.

User Stories

User Account

Sign Up

As a user of coding mbti service
I want to sign up
So that I can use this service

Feature

blah blah

 

Coding on Website - Sprint 1

Check error

As a junior coder
I want to check there is no error in my code in web,
So that I can easily write code in web.

Feature : Users can check error of their code in web

Scenario

1. Code without error

  1. User type some code in web and check whether there is error in code.

  2. If there is no error in code, user receives success response.

    Acceptance test

     Given user's code
         def printa(a):
             print(a)
         
     And user has privileges to use our service
     When user asks to check compile error in code
     Then service response with logs
         All right
    

2. Code with error

  1. User type some code in web and check whether there is compile error in code.

  2. If there is some compile error in code, user receives compile erorr logs.

    Acceptance test

     Given user's code
         def printa(a):
             print(b)
         
     And user has privileges to use our service
     When user asks to check compile error in code
     Then service response with logs
         E:  2, 7: Undefined variable 'b' (undefined-variable)
    

Check result

As a junior coder
I want to know my code outputs correct answer for problem in web
So that I can check my code.

 

Learn another solutions

As a junior coder
I want to know another answer of my code
So that I can learn another way to solve problem.

Improve my code

As a junior coder
I want to know statistics analysis of my codes
So that I can get motivation for good code

Find teammates

As a student
I want to know people of the same coding style as me
So that I can meet up and team togther with them.

Analyze users coding style

As a researcher
I want to proportion of each type of coding style
So that I can overview people's coding style.

Feat : User can change their authorization status after login.

Is your feature request related to a problem? Please describe.
User can change their authorization status after login.

Describe the solution you'd like
In my-page, the authorization tab should be implemented.
In the authorization tab, the user can change their authorization status.

docs: Add Rest Spec, er diagram to Design and Planning

Design and Planning 문서 기준에 맞추기 위해 두 그림을 추가 시켜야 합니다.

A clear and concise description of what you want to happen.
Rest Spec은 Swagger.io 를 사용하여 팀원들이 보고 테스트 하기 쉽게 하고, er diagram도 Report 부분과 스타일 기준을 나누는 것이 확정되지 않아 쉽게 바꿀 수 있도록 Django models를 django-extensions을 활용해 export 하는 방식으로 구현합니다.

최종본에서는 swagger.io 를 서버 위치에서 실행시키고, er-diagram도 꼭 필요한 모델만 들어가도록 다듬어야 합니다.

Feat : Add and Fix models for UM, TI, EF, JC

User Friendly - Machine Efficiency
Time Complexity - Intuitive Code
Easy style - Formatted Style
Just type - Carefully type

조금 더 뚜렷한 결과를 보여주기 위해서 위의 4가지 기준을 조금 수정하면 어떨까 제안해 봅니다. 현재 4가지 중 2가지만 어느정도 되어있는 상황이라 바꾸는데 큰 어려움을 없을 것 같습니다.

User Friendly - Machine Efficiency

그대로 진행 with ITP1_6_B

총 4가지 기준 중 User Friendly - Machine Efficiency에 해당하는 "ITP1_6_B"만 그나마 완성에 가깝다 생각됩니다!

Just Type - Carefully Type

그대로 진행 with 모든 문제

erase_cnt와 elapsed time 의 경우는 모든 문제에서 받아올 수 있으므로 Just Type과 Carefully Type을 구분하는 데이터로 사용하면 사실 ML 모델 없이도 일정 기준 이상 이하로 classify 해도 될 것 같습니다.

Easy style - Formatted Style

변경 Rabbit - Turtle ? 적당한 이름 찾기

파이썬 언어의 특성상 indent가 강제되고 {}를 사용하지 않는 등 스타일을 구별짓기 어려우므로!

"ITP2_3_B" - min, max 구현하기 문제의 solution 데이터들을 봤을 때

  1. 직접 min, max를 구현한 사람
  2. python 자체에서 제공하는 min, max를 가져다 쓴 사람
    두 부류로 나뉘는 것을 보아 꾀부리는 사람, 정직한(?) 사람 이렇게 구분해보면 재밌을 것 같습니다.

Time Complexity - Intuitive Code

그대로 진행 - 새 문제 찾기

비슷한 비율로 1:1로 binary class로 잘 나누어질만한 새로운 문제를 찾는 것이 관건일 듯 합니다

@ddongminstar

Requirements and Specification 작성

Coding MBTI

Requirements and Specification Document

09/21/2020, version 1.0.

Project Abstract

Coding MBTI is web service from which users can get a chance to inspect their code, get insight on their coding habit and level compared to others and construct their personalized strategy to empower coding skills. Coding MBTI gives users the exact coordinates of their coding habit among many other coders around the world and next coordinates to improve their code. To achieve that goal, our software will give 3 main experiences to our users.

  1. Coding MBTI test, which tells what kind of coding style each user has using ML techniques based on 4 core criteria we’ve made.
  2. Personalized Report, which gives thorough analysis based on result of MBTI test.
  3. Matching System, which recommends coders who has different style, similar style, or better quality using the information from each user’s Personalized Report.

Coding MBTI collects and saves every small data which is made from user’s MBTI test or just problem solving. And It analyzes those data and visualizes them by providing Personalized Report to each user. Personalized Report includes better solution to each problem. Users will be able to check their coding levels or styles among other users from Personalized Report. Based on that, Coding MBTI could also help people who want to make a team, find a tutor, mentor, hire an employee, or find a friend. It would give them a recommendation that is suitable for their need.

Customer

General users of Coding MBTI would be people who need tools to get insight including code writing style and habit compare to others or just for fun. And specific users of Coding MBTI would be people who want to make a team, find a tutor, mentor, hire an employee, or find a friend.

Competitive Landscape

Coding MBTI would look like problem solving websites that is already exists, in a way. But what is discriminated from them is as follows.

More personalized

It collects and saves every small data. When user does Coding MBTI, it’s going to monitor user’s action. For instance, keyboard input counts, problem solving time, how complexity caring he is, coding style or habit. Some of them might need appropriate preprocessing procedure to have that meaning. It visualized those preprocessed and analyzed data in Personalized Report. Based on each user’s Personalized Report, it not only shows information about in which part they are weak to or good at, but also shows better personalized solution with enough explanation on how better it is, and why it is better. And it also recommends problem set that is appropriate to that user's level.

Providing people matching

It recommends people out of user’s Personalized Report and their objective. For example, for user who want to find a mentor, our matching system will recommend people who is way better than that user in many MBTI aspects. And if someone want to make a team for specific task, she might want to find someone who has similar code writing styles to her. It will be able to give perfect recommendation list of people based on user’s need and their MBTI result.

More interactive

It provides private message service, so that our users can easily get in touch with people with whom they want to be a friend, mentor, or team. It also provides public post service, so that our users share their answer, share their opinion, find people, or get some tips.

User Stories

User Account

Sign Up

As a user of coding mbti service
I want to sign up
So that I can use this service

Feature

#TODO

 

Coding on Website - Sprint 1

Check error

As a junior coder
I want to check there is no error in my code in web
So that I can easily write code in web

Feature : Users can check error of their code in web

Scenario

1. Code without error

  1. User type some code in web and check whether there is error in code

  2. If there is no error in code, user receives success response

    Acceptance test

     Given user's code
         def printa(a):
             print(a)
         
     And user has privileges to use our service
     When user asks to check compile error in code
     Then service response with logs
         All right
    

2. Code with error

  1. User type some code in web and check whether there is compile error in code

  2. If there is some compile error in code, user receives compile erorr logs

    Acceptance test

     Given user's code
         def printa(a):
             print(b)
         
     And user has privileges to use our service
     When user asks to check compile error in code
     Then service response with logs
         E:  2, 7: Undefined variable 'b' (undefined-variable)
    

Check result

As a junior coder
I want to know my code outputs correct answer for problem in web
So that I can check my code

 

Learn another solutions

As a junior coder
I want to know another answer of my code
So that I can learn another way to solve problem

Feature: Users can see another solution for same problem

Scenario

1. Find another solution

  1. User type some code in web and submit
  2. If code is correct, user can see another type of solutions for that problem

Acceptance test

Given user's code,
When user submit code to problem
And code's output is correct
Then service respose with another type of solutions

 

Improve my code

As a junior coder
I want to know statistics analysis of my codes
So that I can get motivation for good code

Feature: User can check own coding style statistically

Scenario

1. Check line of code for problem

  1. User retrieve information about submitted code
  2. In information, user can see line of code in all solutions for that problem
  3. User can update own submission to get more simple code

Acceptance test

Given user information,
When user want to receive statistical information about code
And user's submitted code is correct
Then service response with information about line of code in that problem

2. Check another type of coding styles.

  1. User retrieve information about submitted code
  2. In information, user can see type of coding styles with proportion
  3. User can update own submission to adjust kind of design patterns

Acceptance test

Given user information,
When user want to receive statistical information about code
And user's submitted code is correct
Then service response clusterized coding style categories and proportion

 

Find teammates

As a student
I want to know people of the same coding style as me
So that I can meet up and team togther with them

Feature: User can meet people with same coding style

Scenario

1. Find teammates for group assignments

  1. User finish coding mbti test for classfiy own coding style
  2. User can see list of people with same coding style
  3. User can contact people via private message and group message

Acceptance test

Given user's coding style
When user want to check people with same coding style
Then service response people list with same coding style

 

Analyze all users coding style

As a researcher
I want to proportion of each type of coding style
So that I can overview people's coding style.

Feature: Our service made database for coding style for researcher

Scenario

1. Analyze coding style

1. Researcher want to get some data for junior coders' coding style
2. Researcher request with credential for research
3. Service response with clusterized coding style data

Acceptance test

Given research credential
When researcher request get database of coding style
Service response with coding style database

User Interface Requirements

UI_requirements

Feat : User should be given the authorization on signup process.

Is your feature request related to a problem? Please describe.
Users should be given the authorization on signup process.

Describe the solution you'd like
On sign-up process, the User can choose the Coder/Manager/Researcher Authorization.

Additional context
Add any other context or screenshots about the feature request here.

feat: Create models for schema in django

Is your feature request related to a problem? Please describe.
Our current django backend use default user model and we need to replace it with our custom django model, add models for our rest api spec and schema.

Describe the solution you'd like
Apply manage.py startapps to automatically create models directory named user, problem, report, chat.

Describe alternatives you've considered
Deconstructing each model as another file is considered, but we don't want to more complexity in this small project.

Additional context
With new model, we can build new er diagram automatically.

Feat : Coder can be given an analysis report.

Is your feature request related to a problem? Please describe.
Coders should be given an analysis report on their code.

Describe the solution you'd like
TypeInfo/Analysis Summary Based On Radar Diagram/Analysis Specifics Based On Bar Diagram should be given.

Additional context
Add any other context or screenshots about the feature request here.

feat: Implement SignIn, SignUp

Is your feature request related to a problem? Please describe.
Our current project needs a SignIn page and a SignUp page.

Describe the solution you'd like
Make a SignIn and a SignUp page using free react templates in material ui.

Describe alternatives you've considered
Making own SignIn and SignUp page is considered, but using free react templates are appropriate for our project.

Additional context
Add any other context or screenshots about the feature request here.

update test result container

Is your feature request related to a problem? Please describe.
(1) Currently, we have 2 containers for showing test result. Must be aggregated into 1.
(2) Currently, when we ask for the analysis, only one is returned. At least one for each criteria should be get.

Describe the solution you'd like
A clear and concise description of what you want to happen.

개발환경을 구축합니다.

TODO

  • django, psql 순서 설정
  • travis.yml 설정
  • sonarCloud 설정
  • aws 서비스에 연결 설정
  • Django에 Nginx 연결 설정
  • Django를 server-only로 설정 후, React와 연결
  • dev, prd 구분해서 배포할 수 있도록 설정
  • coveralls test code coverage 설정
  • 파이썬 도큐먼트 자동 생성 툴 sphinx 활용 논의하기 (사용법 튜토리얼 링크)
  • 리액트 도큐먼트 자동 생성 툴 react-doc-generator 활용 논의하기(사용법 튜토리얼 링크)

feat: Implement Rest API for problem, solution and input, output

Is your feature request related to a problem? Please describe.
Current implementation do not communicate each other. To demonstrate our service, we need to establish api.

Describe the solution you'd like
API are described in swagger form. You can find it at project wiki.
We use Redux Toolkit for front-end implementation. Working examples are for integrating codes are here

Additional context
Due date: 11-10 18pm

bug: Dockerfile, Docker compose scripts won't work as expected

Describe the bug

  1. Dockerfile need to install libpq-dev, python3-dev and other essential files with apt install -y ...
  2. Docker compose environment have to be exported with DJANGO_MODULES_SETTINGS to resolve our django shell
  3. little typo relate to #29
  4. Update requirements with our new files

Screenshots
Too many errors, just fix with new codes.

Additional context
Current solution requires too many time for build docker image. Run apt update and apt-install update everytime is really burden and costly. Consider build a new base image with installed psycopg2 connection.

코드 분류 방법을 연구합니다.

간단한 자연어 처리 알고리즘(ML)을 사용해서 코드 분류를 진행하려 합니다.

목표는 다음 미팅 9/13(일) or 9/14(월) 전에 확인할 수 있는 간단한 PoC 코드를 만드는 것입니다.

예를 들어 다음과 같은 문제와 답변이 주어졌을 때,

q1) 주어진 문자열에서 모음을 전부 ""로 치환하는 함수를 만들어 보시오.

def no_vowel(str):
    #TODO: return string without vowel
   pass

a1)

def no_vowel(str):
   return str.translate(None, "aeiouAEIOU")

a2)

def no_vowel(str):
   return re.sub(r'[a|e|i|o|u|A|E|I|O|U]', '', str) 

a3)

def no_vowel(str):
   return "".join(c for c in string if c.lower() not in "aeiou")

a4)

def disemvowel(s):
    for i in "aeiouAEIOU":
        s = s.replace(i,'')
    return s

위 답변에서 비슷한 코드들을 분류할 수 있도록 하는 코드를 만드는것이 목표입니다. 예를 들어 3번 답변에서 c for c대신 char for char를 사용한건 분명 똑같은 코드로 분류를 하는 것이죠.

이러한 알고리즘을 짜기 위해 현재 고민해 볼 문제들이 몇가지 있습니다.

Text 순서 문제

  1. Text의 순서를 중요한 정보로 인식하여 sequential data로 처리를 하는 방법
  2. 전체 Text를 vector로 transform해서 진행하는 방법.

전체 코드에 대해서 sequential data로 처리하는게 합리적인 방법으로 보일 수 있지만, 일반적으로 간단한 문장의 분류에서는 전체 문장을 나온 단어에 따라 하나의 벡터로 바꾸는 방법을 많이 채택하고 있습니다. 하지만 코드의 경우에는 동일한 예약어(if, for, 괄호)들이 많이 사용되고 그 예약어들이 사용되는 순서와 그 사이사이의 숫자들에 따라서 서로 다른 코드가 되기에 순서를 처리하는 방법을 고민하고 있습니다.

변수 전처리 문제

  1. Syntax Tree 전처리
  2. 변수 네이밍도 코드 분류에 활용

같은 일을 하는 코드이지만 변수의 이름만 다르게 한 코드를 똑같이 분류하기 위해서 변수들의 이름을 통일하는 방법이 있습니다. (v1, v2, ... 실제로는 벡터로 처리되겠지만) 하지만 변수와 함수, attribute의 차이를 분류하기 위해서 syntax tree를 만들고, 전처리 하는 과정이 필요할 것으로 보입니다. (제가 컴파일러 수업을 아직 안들어서 정확하게는 모르겠네요). 그래서 그런 부담을 피하기 위해 어느 정도의 문자열을 전처리 할 지를 결정하는것이 좋을것 같습니다. 주석의 처리도 고민할 만한 문제인 것 같습니다.

우선 당장 떠오르는 고민은 2가지 정도가 있는데, 더 논의해 볼 사항이나 고민해봐야할 부분이 있으면 계속 추가해주시면 감사하겠습니다.

Implementation Plan

Implementation Plan

Features that must be implemented are separated in a few of main categories. Each of our team member will be responsible for one of these main categories of features in every sprint. The given part of each member is rotated for every sprint, since we want to make our all team members to deeply understand our overall implementation and the system architecture.

Choi - Linbeom Choi
Dong - Dongmin Kim
Kwon - Sunbin Kwon
Kyung - Kyunghawn Kim

Front-end

Tasks Time(days) Difficulty(1 to 5) Sprint(2,3,4,5) Expected Challenge Assigned to
implement 'home' page 3 3 2 web IDE import, include testing component Kwon
implement 'sign in' page 1 2 2 Kyung
implement 'sign up' page 1 2 2 Kyung
implement navigation bar 1 2 2 router should work correctly Kwon
implement 'group analysis' page 2 3 4 include 'group member' component Choi
implement 'group member' component 1 2 3 Choi
implement 'managing group' page 2 3 4 Kyung
implement 'private message' page 2 3 4 include 'message' component Kwon
implement 'message' component 1 2 3 Kwon
implement 'test result' page 2 3 4 include 'pentagon graph' component Dong
implement 'pentagone graph' component 1 2 3 Dong
implement 'my page' page 2 3 2 include 'tried problems', 'info', 'settings' component Choi
implement 'my page's components" 3 3 4 Kyung
implement 'authentication' page 2 3 4 import Email Auth Dong
implement 'find teammates' page 2 3 2 include 'coder' component Kwon
implement 'user info' page 2 3 2 Choi

Back-end

Tasks Time(days) Difficulty(1 to 5) Sprint(2,3,4,5) Expected Challenge Assigned to
implement 'user' model-view 3 3 3 login&session functionality, dealing csrf token and security problems Dong
implement 'group' model-view 3 3 3 implement connecting user using foreign keys Kwon
implement 'problem' model-view 3 2 3 providing personalized solution Kyung
implement 'chat' model-view 3 3 3 Each user has their personal chat & public chat room Kwon
implement 'report' model-view 3 3 3 sending MBTI test's solution of coder to our model, getting output from model after processed Choi
Django Admin Settings 1 2 3 should include all models so that we can visually check Kyung

ML Feature

Tasks Time(days) Difficulty(1 to 5) Sprint(2,3,4,5) Expected Challenge Assigned to
data crawling 2 3 2 Kwon
integration of each classification model 3 3 4 Dong
'algorithm complexity' binary classification model 3 4 3 model construct, train, & test Choi
'keyboard input' binary classification model 3 4 3 model construct, train, & test Kwon
'style' binary classification model 3 4 3 model construct, train, & test Dong
'human vs computer efficiency' binary classification model 3 4 3 model construct, train, & test Kyung
make pipeline (server API) 5 4 3,4 get MBTI test result from Analysis model, feed coder's MBTI test result into trained model, send back output of model Kwon

Home

"Home" page 시작 하겠습니다

  • Navigation bar
  • Web IDE import

Brython keeps spitting out incomprehensible prints.

Describe the bug
When I first go to our website and get response, I can't run code on the IDE until brython's backgoround work is done. It keeps spitting out incomprehensible prints. See the picture below.

To Reproduce
Steps to reproduce the behavior:

  1. Go to our webpage. dev link
  2. Open dev tools of chrome, open the console tab.
  3. See error.
  4. Unless this is over, you can't run code in the IDE.

Expected behavior

  1. Go to our webpage, write code, press run button, then the code should be executed instantly.

Screenshots
The screenshot below tells the spinning loop that blocks the user's IDE code to be executed.

스크린샷 2020-11-09 오후 7 25 41

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

feat: Implement home

Implementing Home Page including Web IDE, Navigation bar, Footer, and Problem Showing.
Testing coverage should be over 80%.

doc: Redux Toolkit 사용

Frontend redux 라이브러리를 결정합니다.

Redux toolkit은 redux, duck 패턴을 사용하면서 너무 길어지는 코드들에 소모하는 시간을 줄일 수 있습니다.

"Configuring a Redux store is too complicated"
"I have to add a lot of packages to get Redux to do anything useful"
"Redux requires too much boilerplate code"

라는 목적으로 어느정도 redux 를 이해하신 후에 사용하시면 정말 편리하다고 느낄 수 있습니다.

또 immer, redux-thunk가 기본으로 지원되서
image
와 같이 직관적으로 reducer를 처리하고, 비동기 action 역시 잘 해결할 수 있습니다.

redux toolkit tutorial에서 저희가 기본적으로 사용할 내용은 대부분 다루고 있으며, redux persist를 기본적으로 추가하시고 redux-persist, dev tool을 위해 configureStore 설정까지 완료하시면 편합니다.

library dependency 같은 문제는 제가 개발환경을 보고 설정하겠습니다. redux toolkit 을 이용하면 testing 코드가 조금 바뀌는데, redux toolkit 내부에서 이름을 자동으로 생성해주고 보장해줘서 불필요한 matching을 줄일 수 있습니다.

이번 과제에서도 활용해 보시면 좋을 것 같습니다.

Describe alternatives you've considered
MobX 라는 라이브러리도 있지만, 이게 더 쓰기 편하다고 생각합니다.

Additional context
질문은 언제든지 환영합니다.

Backend IP Changing

Describe the bug
Default EC2 Backend IP is changing.
Need to configure Elastic IP.

Feat : Find similar user, opposite user

distance 개념으로 하기엔 무리가 있어보임.

  1. 4개의 기준 모두에서 같은 코더들 목록을 백엔드에서 가져와서 프론트에 띄우기
  2. 4개의 기준에서 정반대에 있는 코더들 목록을 백엔드에서 가져와서 프론트에 띄우기

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.