Giter Site home page Giter Site logo

selection-task's Introduction

원티드 프리온보딩 프론트엔드 - 선발 과제

이 레파지토리는 원티드 프리온보딩 프론트엔드 과정 선발 과제 안내 및 과제 간 사용하기 위한 API를 제공하기 위해 만들어졌습니다.

안내 사항

  • 본 과제는 프리온보딩 프론트엔드 코스 선발 과정에서 최소한의 수준을 파악하기 위한 용도입니다.
  • 기능의 정상 동작 여부, 작성된 코드의 퀄리티, Git 관리 수준 등을 기준으로 평가가 이루어집니다.
  • 이 레파지토리에서 제공된 API를 활용해서 선발 과제를 진행하게 됩니다.
  • API의 실행 및 사용법은 API 챕터를 참고해주세요
  • 과제의 소스코드는 본인의 GitHub 레파지토리에 Public으로 올려주세요
  • 레파지토리 이름은 wanted-pre-onboarding-frontend로 생성해주세요
  • 과제 제출은 참가 신청시 수행한 과제의 레파지토리의 주소를 제출해주세요

주의 사항

  • 제출한 링크가 잘못되었거나, 링크를 통해서 레파지토리에 접근할 수 없는 경우 탈락처리됩니다.

  • 가이드를 준수하지 않은 경우 탈락처리됩니다.

  • 레파지토리를 들어갔을 때 바로 소스코드가 보이도록 해주세요, 불필요한 depth가 존재하면 안됩니다.

  • 레파지토리 안의 특정 폴더의 링크가 아닌 레파지토리의 링크를 제출해주세요

  • 제출시기 가산점은 모집 페이지에서 제출한 시기와, 레파지토리의 default branch의 최종 커밋 시기를 기반으로 결정됩니다.

    • 과제 제출 후에는 코드 변경을 지양해주시고, 평가와 무관하게 수정을 하고 싶을 경우 default branch(master or main)가 아닌 별도의 브랜치에서 작업해주세요

진행 가이드

  • 사전과제 진행 간 문의사항은 이 레파지토리의 Issue로 등록해주세요

    • 사전과제 외의 프리온보딩 인턴십의 운영관련 문의사항은 [email protected]에 메일을 통해 문의해주세요
  • Create React App을 이용해 과제를 구현해주세요

    • 환경설정의 일관성을 위해 Create React App외의 다른 툴체인 사용은 허용하지 않습니다(Vite, Next.js 등)
  • 프로젝트는 Node.js LTS(현 시점 기준 18.17.0) 버전에서 실행 가능해야 합니다.

  • git clone 후, npm install & npm start 명령어를 통해서 바로 정상동작이 가능하게 해주세요

    • clone 후, 별도의 파일을 생성하거나 환경변수를 수동으로 설정하는 등 추가적인 과정 없이 바로 실행이 가능하도록 해주세요
  • 함수 컴포넌트를 이용해서 진행해주세요

  • UI는 지원자 개인이 생각했을 때 자연스러운 형태로 구현해주세요, UI는 평가에 영향을 미치지 않습니다.

  • README.md 작성은 필수입니다. 아래의 사항은 반드시 포함되도록 해주세요

    • 지원자의 성명
    • 프로젝트의 실행 방법
    • 데모 영상
    • 데모 영상은 배포 링크로 대체 가능하며, 배포가 되었고 배포된 사이트에서 기능이 모두 동작하면 가산점이 부여됩니다.
    • 배포된 사이트에서 기능이 정상동작 하지 않는다면 배포 가산점이 부여되지 않습니다
      • 기능이 정상 동작하지 않는 예시:
        • 새로고침하면 404 에러 페이지 표출
        • "/" URL이 아닌 "/signup"등의 경로로 바로 접속할 경우 404 에러 페이지 표출 등
  • 기능구현에 직접적으로 연관된 라이브러리 사용은 허용되지 않습니다.(React-Query 등)

  • 사용가능한 라이브러리 목록은 아래와 같습니다.

    • React Router(react-router-dom)
    • HTTP Client 라이브러리(Axios 등)
    • 스타일링 관련 라이브러리(Sass, Styled Components, Emotion, tailwind 등)
    • 아이콘 등 UI 관련 라이브러리(Font-Awesome, React-Icons, Bootstrap 등)
    • 기능과 직접적인 연관이 없는 설정관련 라이브러리(craco, dotenv, typescript, testing library 등)
  • package.json의 dependencies, devDependencies에 기재가 되어 있다면 실제 코드에서의 사용 여부와 관계없이 라이브러리를 사용한 것으로 간주됩니다.

  • 페이지별로 요구되는 경로는 도메인 URL뒤에 바로 이어지도록 설정해주세요

    • 옳은 예시
      • localhost:3000/signup
      • publish-url/singup
    • 잘못된 예시
      • localhost:3000/wanted-pre-onboarding-frontend/signup
      • publish-url/wanted-pre-onboarding-frontend/singup
      • localhost:3000/#/signup
      • publish-url/#/signup

과제

  • 과제 수행 과정에서 지원자분들의 자율성과 창의력을 발휘하는 것을 기대하고 존중합니다. 다만, 아래 과제 안내에 적힌 가이드라인들은 모두 정확히 준수해주시기를 바랍니다.
  • 가이드라인에 명시된 test-id 속성이 제대로 부여되지 않은 경우 구현이 안된 것으로 판단됩니다.
  • 가이드라인에 명시된 사항 외에는 자유롭게 진행해주셔도 됩니다.

:: 1. 로그인 / 회원가입

  • /signup 경로에 회원가입 기능을 개발해주세요

  • /signin 경로에 로그인 기능을 개발해주세요

  • 페이지 안에 이메일 input, 비밀번호 input, 제출 button이 포함된 형태로 구성해주세요

    • 이메일 input에 data-testid="email-input" 속성을 부여해주세요
    • 패스워드 input에 data-testid="password-input" 속성을 부여해주세요
    • 회원가입 페이지에는 회원가입 button에 data-testid="signup-button" 속성을 부여해주세요
    • 로그인 페이지에는 로그인 button에 data-testid="signin-button" 속성을 부여해주세요
    <!-- 예시 -->
    <input data-testid="email-input" />
    <input data-testid="password-input" />
    <button data-testid="signup-button">회원가입</button>
  • 두 페이지의 UI는 동일해도 무방합니다.

  • 회원가입과 로그인 페이지의 버튼에 부여되는 test-id가 다른 것에 유의해주세요

Assignment 1

  • 회원가입과 로그인 페이지에 이메일과 비밀번호의 유효성 검사기능을 구현해주세요

    • 이메일 조건: @ 포함
    • 비밀번호 조건: 8자 이상
    • 이메일과 비밀번호의 유효성 검사 조건은 별도의 추가 조건 부여 없이 위의 조건대로만 진행해주세요 (e.g. 비밀번호 유효성 검사에 특수문자 포함 등의 새로운 조건을 추가하는 행위, 비밀번호 확인 조건을 추가하는 행위 등은 지양해주세요)
  • 입력된 이메일과 비밀번호가 유효성 검사를 통과하지 못한다면 button에 disabled 속성을 부여해주세요

  • 보안 상 실제 사용하고 계신 이메일과 패스워드말고 테스트용 이메일, 패스워드 사용을 권장드립니다.

Assignment 2

  • 회원가입 페이지에서 버튼을 클릭 시 회원가입을 진행하고 회원가입이 정상적으로 완료되었을 시 /signin 경로로 이동해주세요

Assignment 3

  • 로그인 페이지에서 버튼을 클릭 시, 로그인을 진행하고 로그인이 정상적으로 완료되었을 시 /todo 경로로 이동해주세요

    • 로그인 API는 로그인이 성공했을 시 Response Body에 JWT를 포함해서 응답합니다.
    • 응답받은 JWT는 로컬 스토리지에 저장해주세요

Assignment 4

  • 로그인 여부에 따른 리다이렉트 처리를 구현해주세요

    • 로컬 스토리지에 토큰이 있는 상태로 /signin 또는 /signup 페이지에 접속한다면 /todo 경로로 리다이렉트 시켜주세요
    • 로컬 스토리지에 토큰이 없는 상태로 /todo페이지에 접속한다면 /signin 경로로 리다이렉트 시켜주세요

:: 2. TODO LIST

Assignment 5

  • /todo경로에 접속하면 투두 리스트의 목록을 볼 수 있도록 해주세요
  • 목록에서는 TODO의 내용과 완료 여부가 표시되어야 합니다.
  • TODO의 완료 여부는 <input type="checkbox" />를 통해 표현해주세요
  • TODO는 <li> tag를 이용해 감싸주세요
<li>
  <label>
    <input type="checkbox" />
    <span>TODO 1</span>
  </label>
</li>
<li>
  <label>
    <input type="checkbox" />
    <span>TODO 2</span>
  </label>
</li>

Assignment 6

  • 리스트 페이지에 새로운 TODO를 입력할 수 있는 input과 추가 button을 만들어주세요

    • TODO 입력 input에는 data-testid="new-todo-input" 속성을 부여해주세요

    • TODO 추가 button에는 data-testid="new-todo-add-button" 속성을 부여해주세요

      <input data-testid="new-todo-input" />
      <button data-testid="new-todo-add-button">추가</button>
  • 추가 button을 클릭하면 입력 input의 내용이 새로운 TODO로 추가되도록 해주세요

  • TODO를 추가 한 뒤 새로고침을 해도 추가한 TODO가 목록에 보여야 합니다.

Assignment 7

  • TODO의 체크박스를 통해 완료 여부를 수정할 수 있도록 해주세요.

Assignment 8

  • TODO 우측에 수정버튼과 삭제 버튼을 만들어주세요

    • 수정 버튼에는 data-testid="modify-button" 속성을 부여해주세요

    • 삭제 버튼에는 data-testid="delete-button" 속성을 부여해주세요

      <li>
        <label>
          <input type="checkbox" />
          <span>TODO 1</span>
        </label>
        <button data-testid="modify-button">수정</button>
        <button data-testid="delete-button">삭제</button>
      </li>

Assignment 9

  • 투두 리스트의 삭제 기능을 구현해주세요

    • 투두 리스트의 TODO 우측의 삭제버튼을 누르면 해당 아이템이 삭제되도록 해주세요

Assignment 10

  • 투두 리스트의 수정 기능을 구현해주세요

    • TODO 우측의 수정 버튼을 누르면 수정모드가 활성화 되도록 해주세요

    • 수정모드에서는 TODO의 내용을 변경할 수 있어야 합니다.

    • 수정모드에서는 TODO의 내용이 input창 안에 입력된 형태로 변경해주세요

      • 수정 input창에는 data-testid="modify-input" 속성을 부여해주세요
    • 수정모드에서는 TODO의 우측에 제출버튼과 취소버튼이 표시되게 해주세요

      • 제출버튼에는 data-testid="submit-button" 속성을 부여해주세요
      • 취소버튼에는 data-testid="cancel-button" 속성을 부여해주세요
    • 제출버튼을 누르면 수정한 내용을 제출해서 내용이 업데이트 될 수 있도록 해주세요

    • 취소버튼을 누르면 수정한 내용을 초기화 하고, 수정모드를 비활성화 해주세요

      <input data-testid="modify-input" />
      <button data-testid="submit-button">제출</button>
      <button data-testid="cancel-button">취소</button>

예시

example

API

안내문

API 통신 과정에서 발생한 문제를 이슈를 통해 문의하실 경우, 문의 내용에 통신의 요청과 응답에 대한 정보를 제공해주셔야 문제의 원인을 파악할 수 있습니다.

요청과 응답에 대한 정보는 URL, Method, Headers, Body, StatusCode등을 의미합니다.

스펙

1) Auth


1-1) SignUp

요청

  • URL: /auth/signup
  • Method: POST
  • Headers:
    • Content-Type: application/json
  • Body:
    • email: string
    • password: string

응답 예시

  • status: 201 Created
  • body: 없음

1-2) SignIn

요청

  • URL: /auth/signin
  • Method: POST
  • Headers:
    • Content-Type: application/json
  • Body:
    • email: string
    • password: string

응답 예시

  • status: 200 OK
  • body
    {
      "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RAZ21haWwuY29tIiwic3ViIjo0LCJpYXQiOjE2NTk5MDQyMTUsImV4cCI6MTY2MDUwOTAxNX0.DyUCCsIGxIl8i_sGFCa3uQcyEDb9dChjbl40h3JWJNc"
    }

2) Todo

2-1) createTodo

요청

  • URL: /todos
  • Method: POST
  • Headers:
    • Authorization: Bearer access_token
    • Content-Type: application/json
  • Body:
    • todo: string

응답 예시

  • status: 201 Created
  • body
    {
      "id": 1,
      "todo": "과제하기",
      "isCompleted": false,
      "userId": 1
    }

2-2) getTodos

요청

  • URL: /todos
  • Method: GET
  • Headers:
    • Authorization: Bearer access_token

응답 예시

  • status: 200 OK
  • body
    [
      {
        "id": 1,
        "todo": "todo2",
        "isCompleted": false,
        "userId": 1
      },
      {
        "id": 2,
        "todo": "todo3",
        "isCompleted": false,
        "userId": 1
      }
    ]

2-3) updateTodo

요청

  • URL: /todos/:id
  • Method: PUT
  • Headers:
    • Authorization: Bearer access_token
    • Content-Type: application/json
  • Body:
    • todo: string
    • isCompleted: boolean

요청 예시

  • URL: /todos/1
  • body
    {
      "todo": "Hello World",
      "isCompleted": true
    }

응답 예시

  • status: 200 OK
  • body
    {
      "id": 1,
      "todo": "Hello World",
      "isCompleted": true,
      "userId": 2
    }

2-4) deleteTodo

요청

  • URL: /todos/:id
  • Method: DELETE
  • Headers:
    • Authorization: Bearer access_token

요청 예시

  • URL: /todos/1
  • body: 없음

응답 예시

  • status: 204 No Content
  • body: 없음

로컬 서버 구동

  • 배포된 API에 문제가 있는 경우 활용할 수 있는 로컬 서버 구동법입니다.
  • 로컬 서버는 sqlite에 의존성이 있습니다.

설치 및 실행

$ npm install
$ npm start
  • 위 순서대로 실행하면 localhost:8000 포트에 서버가 실행됩니다.
  • 서버를 실행하면 db.sqlite 파일이 생성되며 해당 파일을 삭제 시 기존의 데이터는 초기화 됩니다.
  • 그 외 스펙은 배포된 API와 동일합니다.

selection-task's People

Contributors

cothi avatar walking-sunset avatar yeonuk-hwang 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  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  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

selection-task's Issues

회원가입 시 유효성 검사 질문

안녕하세요! 유효성 검사 조건에 대해 궁금한 점이 있어서 질문 드립니다.
image

혹시 회원가입 유효성 검사 시에 "비밀번호 확인" 조건도 새로운 조건으로 간주 돼 지양사항일까요?
image

유효성검사 관련 질문드립니다.

유효성 검사 구현 부분에서 제한 조건외에 추가 조건은 지양한다고 되어있어서 궁금한 점이 있어서 질문 드립니다!

이메일 조건이 "@포함" 만이 조건이라면

  1. @만 단독으로 있는 경우
  2. @aaa.aa 와 같이 email의 id파트가 빠져있는 경우
  3. ㅁㅁ@ㅁㅁㅁ 혹은 ㅁㅁ@ aaㅁ.aa 와 같이 한글이나 공백이 포함되는 경우
  4. aa@&^&*!asd 와 같이 @외의 특수 문자들이 함께 포함되는 경우
  5. aa@aa 와 같이 .com, .net 등이 포함되지 않는 경우

위 예시 모두 유효성 검사에서 pass되는 걸로 이해하면 되는 걸까요?

회원 가입/로그인 관련 질문 및 전역 상태관리 라이브러리 사용 가능 여부

안녕하세요. 선발 과제를 진행하는 도중 의문이 생긴 부분에 대해 질문드립니다.

회원 가입 관련 질문

  1. 회원 가입 시 /auth/signup 응답으로 받는 access_token 값도 로그인 시와 마찬가지로 로컬 스토리지에 바로 저장하면 되나요?
    1-1. 로컬 스토리지에 바로 저장한다면, 이후 바로 /todo로 리다이렉트 해야하는 건가요?
    1-2. 로컬스토리지에 저장하지 않는다면, 로그인 화면으로 전환해야 하는 건가요?

  2. 회원 가입 시 /auth/signup 응답으로 서버측 에러메시지를 받는 경우, (예_이미 존재하는 이메일입니다.) 프론트 화면에 보여주어야 하나요? 보여주는 형태는 자유인지 궁금합니다.

로그인 관련 질문

  1. 로그인 시에도 회원가입시와 마찬가지로 이메일, 비밀번호에 대한 유효성 검사가 필요한 것 맞나요?

  2. 로그인 시 /auth/signin 응답으로 서버측 에러메시지를 받는 경우, (예_unauthorized) 프론트 화면에 보여주어야 하나요? 보여주는 형태는 자유인지 궁금합니다.

todo 관련 질문

  1. todo CRUD를 구현하는 과정에서 전역 상태관리 라이브러리를 사용해도 되나요?
    5-1. 전역 상태관리 라이브러리를 사용해도 된다면, react-redux, redux-toolkit 이 외에도 다른 라이브러리 중 원하는 것을 자유롭게 선택 사용할 수 있나요? 사용 불가하지 않은 전역 관리 라이브러리를 안내해주시면 좋을 것 같습니다.
    5-2. 전역 상태관리 라이브러리 중 react 내장 라이브러리인 contextAPI만 사용 가능한 건가요?

늦은 시간에 질문드려 죄송합니다.
내일도 편안한 하루 되시길 바랍니다. 감사합니다 😄

updateTodo에 관한 문의 입니다.

투두 리스트에 대한 수정을 할 때 todo와 isCompleted를 텍스트만 수정할 경우, 완료 여부만 수정할 경우로 따로 생각해야 하나요?

gh-pages 배포 시 "Mixed-Contents"오류

"Mixed-Contents"오류

안녕하세요,
TodoApp 완성 이후 Github-Pages 통해 배포 하였는데, "Mixed-Contents"오류가 발생하네요.

해결을 위해 아래 3가지 방법을 사용해봤는데, 해결이 안되어 이슈사항으로 문의드립니다.

에러 해결을 위한 3가지 시도

  1. baseUrl을 단순히 https로 변경해보았지만, API응답이 없음
  2. @package.json에서 "homepage"를 https => http로 변경해보았으나, github page 기본 설정이 https인지 http로 배포가 안됨
  3. (스택오버플로우 참고) index.html에 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> 해당 코드 추가 해 보았으나 에러 현상 동일

이슈 요청

  • 따라서, 혹시 위 방식 이외에 해결 가능한 방법이 있는지? 또는 서버 측에서 해당 이슈 해결이 가능한지 질문드려요~!!!


에러 메시지 및 이미지

AuthForm.js:42 Mixed Content: The page at 
'https://chaedie.github.io/wanted-pre-onboarding-fe-7/' 
was loaded over HTTPS, 
but requested an insecure resource
 'http://ec2-3-38-135-202.ap-northeast-2.compute.amazonaws.com:8000/auth/signin'. 
This request has been blocked; 
the content must be served over HTTPS.

image

eslint, prettier

eslint, prettier 적용해도 괜찮나요?
그리고 npm이나 yarn 둘중에 아무거나 사용해도 괜찮은지 궁금합니다.

프로젝트 README.md 내용

readme파일에 프로젝트의 실행 방법을 기재해달라고 나와있는데 프로젝트의 실행방법이라는 건 말그대로 프로젝트 실행을 어떻게 하는지 설명하면 되는건가요?
-> 예를 들면 회원가입을 한다 -> 로그인을 한다. 이런 식인건가요?

signup API 이슈 문의

안녕하세요. 과제를 진행하다 궁금한 것이 있어 문의드립니다.

Read.me API 명세 되어 있는 것 처럼 signup에서 url(https://pre-onboarding-selection-task.shop/auth/signup)에 post로 api를 쐈는데 400 error라고 나옵니다.
headers와 body에도 명세되어 있는 값을 함께 넣어 보냈는데도 400에러가 나옵니다. postman에도 쏴봤는데 똑같습니다.
제가 end point를 잘 못 잡고 있는걸까요? API는 잘 동작하고 있을까요?
확인 후 답변해주시면 감사하겠습니다.

스크린샷 2023-02-05 오후 10 15 54

서버 에러 문의

createTodo api를 요청하면 POST http://localhost:3000/todos 500 (Internal Server Error) 에러가 발생해서 서버를 확인해보니

[Nest] 19652 - 2022. 08. 12. 오후 12:04:26 ERROR [ExceptionsHandler] SQLITE_CONSTRAINT: NOT NULL constraint failed: todo.userId
QueryFailedError: SQLITE_CONSTRAINT: NOT NULL constraint failed: todo.userId
at Statement.handler (C:\Users\LGE1\wanted-pre-onboarding-fe\selection-task-master\src\driver\sqlite\SqliteQueryRunner.ts:113:26)
{ userId: undefined, email: '[email protected]' }
라는 에러 문구가 뜹니다. 이런 경우 어떻게 해야 하나요?ㅠㅠ

배포후 api요청시 405에러

안녕하세요 과제 진행중 405에러 관련 문의 드립니다.

local에서 api요청이 정상 작동 하는것을 확인후 배포하여 api요청을 하니 405에러가 발생했습니다.
확인 부탁드립니다.

local에서 성공했을때
image

  • curl

curl "http://localhost:3000/auth/signin" ^
-H "Accept: application/json, text/plain, /" ^
-H "Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7" ^
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1oaEBtaGgiLCJzdWIiOjE1MjAsImlhdCI6MTY3NTcwNzc1NSwiZXhwIjoxNjc2MzEyNTU1fQ.4INT6NnPd9IeqDOEZBCoC46emx1m21sdqKc30JX-l8g" ^
-H "Connection: keep-alive" ^
-H "Content-Type: application/json" ^
-H "Origin: http://localhost:3000" ^
-H "Referer: http://localhost:3000/" ^
-H "Sec-Fetch-Dest: empty" ^
-H "Sec-Fetch-Mode: cors" ^
-H "Sec-Fetch-Site: same-origin" ^
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" ^
-H "sec-ch-ua: ^^"Not_A Brand^^";v=^^"99^^", ^^"Google Chrome^^";v=^^"109^^", ^^"Chromium^^";v=^^"109^^"" ^
-H "sec-ch-ua-mobile: ?0" ^
-H "sec-ch-ua-platform: ^^"Windows^^"" ^
--data-raw "^{^^"email^^":^^"mhh^@mhh^^",^^"password^^":^^"qwer1234^^"^}" ^
--compressed

배포 후 실패했을때
image

  • curl

curl "https://wanted-pre-onboarding-frontend-lac.vercel.app/auth/signin" ^
-H "authority: wanted-pre-onboarding-frontend-lac.vercel.app" ^
-H "accept: application/json, text/plain, /" ^
-H "accept-language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7" ^
-H "authorization;" ^
-H "content-type: application/json" ^
-H "origin: https://wanted-pre-onboarding-frontend-lac.vercel.app" ^
-H "referer: https://wanted-pre-onboarding-frontend-lac.vercel.app/" ^
-H "sec-ch-ua: ^^"Not_A Brand^^";v=^^"99^^", ^^"Google Chrome^^";v=^^"109^^", ^^"Chromium^^";v=^^"109^^"" ^
-H "sec-ch-ua-mobile: ?0" ^
-H "sec-ch-ua-platform: ^^"Windows^^"" ^
-H "sec-fetch-dest: empty" ^
-H "sec-fetch-mode: cors" ^
-H "sec-fetch-site: same-origin" ^
-H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" ^
--data-raw "^{^^"email^^":^^"mhh^@mhh^^",^^"password^^":^^"qwer1234^^"^}" ^
--compressed

data-testid 속성 관련하여 질문 드립니다.

안녕하세요
가이드 라인 data-testid 속성 관련하여 질문드립니다.

이메일 input에 data-testid="email-input" 속성을 부여해주세요
패스워드 input에 data-testid="password-input" 속성을 부여해주세요

/signup 페이지와 /signin 페이지에서
이메일 input에는 data-testid="email-input" 속성을 부여하고
비밀번호 input에는 data-testid="password-input" 속성을 부여하는 게 맞을까요 ?

/signin 하위 목차에 해당 요구사항이 명시 되어있어서, 혹시 /signin 페이지에만 해당하는 요구사항인지 싶어서 질문 드립니다.

안녕하세요! 과제 접수기간 문의드립니다!

안녕하세요! 프리온보딩 원티드 공고에 15일 24시, 5일 24시라고 다르게 표기되어있어 과제 제출 및 신청 가능 기간에 대하여 여쭤봅니다!
12월 15일 24시까지 과제 제출 및 온보딩 신청이 가능한가요 ?

제출시기 관련해서 질문남깁니다

제가 최근커밋한것 으로 시점을 뒤로 미루고 싶은데 가능할까요?
제출시기는 11일 23:50분정도 됩니다. 푸쉬하는 과정에서 read.me가 날라가서 ..
제가 아래 이슈들을 확인 해보았는데 main 에 마지막까지 커밋한 시기로 채점되는거로 인지하고 있으면 될까요?

제출 화면과 링크 관련하여 질문드립니다

안녕하세요, 과제 주의사항에 올바른 화면과 링크 제출에 관해 안내해주신 부분을 읽었습니다.

올려주신 server 코드를 클론 받고

client 형태로 CRA를 만들었더니 다음과 같은 형태가 되었습니다.

image

이렇게 하면 레포 첫 화면에서 src 폴더가 보이지 않아서

주의사항에서 말씀하신 '올바른 화면'이 아니고,

client 안에 들어가서 src가 보이는 화면의 링크는

'올바르지 않은 링크'가 되는 것 같은데 어떤 형태로 제출을 해야 할지 잘 모르겠습니다!

API 주소 링크

API 주소 링크에 문제가 있는 거 아닌지 질문드립니다.

Readme 오타

Content-Type: applocation/json
=> Content-Type: application/json
정정부탁드립니다.

API 에러

링크를 통해 직접 오픈, 로컬서버 구동 두가지 방법 모두 시도하였는데
{"statusCode":404,"message":"Cannot GET /","error":"Not Found"} 에러가 뜨네요 ㅜ..

회원가입 이후 응답값 토큰

안녕하세요~
회원가입 하면 응답값으로 access-token을 주는데,
회원가입 이후에 access-token을 바로 로컬스토리지에 저장해서 로그인 된 것처럼 /todo 로 이동해야 되는 건가요??

API 와 로컬 서버 구동 관련 문의

안녕하십니까 취업 준비하는 프론트엔드 개발자
박연우입니다.

우선 좋은 과제를 만들어 주셔서 감사합니다.

다만, 현재 API 와 로컬 서버 구동이 안 되는 것 같아서 문의남겨드립니다.

  • API
    리드미에 작성되어 있는 API 서버에 접속, 포스트맨 안됩니다.

  • 로컬 서버 구동
    해당 레포지토리를 클론하여 npm install, npm start 시 오류 발생합니다.
    오류 관련한 터미널 내용은 아래와 같습니다.

yeonwoopark@yeonwooui-MacBookAir selection-task % npm i
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: Please downgrade to v7.1.5 if you need IE/ActiveXObject support OR upgrade to v8.0.0 as we no longer support IE and published an incorrect patch version (see https://github.com/visionmedia/superagent/issues/1731)

added 1192 packages, and audited 1193 packages in 38s

148 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
yeonwoopark@yeonwooui-MacBookAir selection-task % npm start

> [email protected] start
> nest start

Error: Cannot find module 'src/auth/guards/jwt-auth.guard'
Require stack:
- /Users/yeonwoopark/Desktop/github/selection-task/dist/todos/todos.controller.js
- /Users/yeonwoopark/Desktop/github/selection-task/dist/todos/todos.module.js
- /Users/yeonwoopark/Desktop/github/selection-task/dist/app.module.js
- /Users/yeonwoopark/Desktop/github/selection-task/dist/main.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/Users/yeonwoopark/Desktop/github/selection-task/src/todos/todos.controller.ts:13:1)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)

서버 에러 문의

DeleteTodo 와 updateTodo api 적용시에

"Request failed with status code 500" 에러가 발생합니다.

로컬 서버와 배포된 서버 모두에서 동일한 증상이 발생하고 id 를 직접 넣어주고 명령을 실행해도 같은 증상이 발생합니다.

이 증상이 제게 문제가 있는건지 서버쪽에 문제가 있는건지 확인하고 싶습니다.

사용된 jwt는

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6IjEyMzEyM0BuYXZlci5jb20iLCJzdWIiOjE0ODMsImlhdCI6MTY3MDY5MDE4NiwiZXhwIjoxNjcxMjk0OTg2fQ.ZYEn9Ukhb8ax37hapPB8dn-a2fXFl1Rh2dbyKQSc6KY

이고

에러 내용은 다음과 같습니다.

AxiosError {message: 'Request failed with status code 500', name: 'AxiosError', code: 'ERR_BAD_RESPONSE', config: {…}, request: XMLHttpRequest, …}
code
:
"ERR_BAD_RESPONSE"
config
:
adapter
:
(2) ['xhr', 'http']
data
:
"{"todo":"hello world","isCompleted":true}"
env
:
{FormData: ƒ, Blob: ƒ}
headers
:
AxiosHeaders
Accept
:
"application/json, text/plain, /"
Authorization
:
"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6IjEyMzEyM0BuYXZlci5jb20iLCJzdWIiOjE0ODMsImlhdCI6MTY3MDY5MDE4NiwiZXhwIjoxNjcxMjk0OTg2fQ.ZYEn9Ukhb8ax37hapPB8dn-a2fXFl1Rh2dbyKQSc6KY"
Content-Type
:
"application/json"
Symbol(Symbol.toStringTag)
:
(...)
[[Prototype]]
:
Object
maxBodyLength
:
-1
maxContentLength
:
-1
method
:
"put"
timeout
:
0
transformRequest
:
[ƒ]
transformResponse
:
[ƒ]
transitional
:
{silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false}
url
:
"https://pre-onboarding-selection-task.shop/todos/:4021"
validateStatus
:
ƒ validateStatus(status)
xsrfCookieName
:
"XSRF-TOKEN"
xsrfHeaderName
:
"X-XSRF-TOKEN"
[[Prototype]]
:
Object
message
:
"Request failed with status code 500"
name
:
"AxiosError"
request
:
XMLHttpRequest
onabort
:
ƒ handleAbort()
onerror
:
ƒ handleError()
onload
:
null
onloadend
:
ƒ onloadend()
onloadstart
:
null
onprogress
:
null
onreadystatechange
:
null
ontimeout
:
ƒ handleTimeout()
readyState
:
4
response
:
"{"statusCode":500,"message":"Internal server error"}"
responseText
:
"{"statusCode":500,"message":"Internal server error"}"
responseType
:
""
responseURL
:
"https://pre-onboarding-selection-task.shop/todos/:4021"
responseXML
:
null
status
:
500
statusText
:
"Internal Server Error"
timeout
:
0
upload
:
XMLHttpRequestUpload {onloadstart: null, onprogress: null, onabort: null, onerror: null, onload: null, …}
withCredentials
:
false
[[Prototype]]
:
XMLHttpRequest
response
:
config
:
{transitional: {…}, adapter: Array(2), transformRequest: Array(1), transformResponse: Array(1), timeout: 0, …}
data
:
{statusCode: 500, message: 'Internal server error'}
headers
:
AxiosHeaders {content-length: '52', content-type: 'application/json; charset=utf-8'}
request
:
XMLHttpRequest
onabort
:
ƒ handleAbort()
onerror
:
ƒ handleError()
onload
:
null
onloadend
:
ƒ onloadend()
onloadstart
:
null
onprogress
:
null
onreadystatechange
:
null
ontimeout
:
ƒ handleTimeout()
readyState
:
4
response
:
"{"statusCode":500,"message":"Internal server error"}"
responseText
:
"{"statusCode":500,"message":"Internal server error"}"
responseType
:
""
responseURL
:
"https://pre-onboarding-selection-task.shop/todos/:4021"
responseXML
:
null
status
:
500
statusText
:
"Internal Server Error"
timeout
:
0
upload
:
XMLHttpRequestUpload {onloadstart: null, onprogress: null, onabort: null, onerror: null, onload: null, …}
withCredentials
:
false
[[Prototype]]
:
XMLHttpRequest
status
:
500
statusText
:
"Internal Server Error"

안녕하세요 프리온보딩 과제 제출관련 문의드립니다.

안녕하세요 제가 12일에 시연영상과 함께 사전과제 제출을 했습니다.
배포를 해보고 싶어서 배포를 하여 일요일에 github에 올려두었습니다. 다시 제출을 하고 싶었지만
이미 제출한 상태여서 제출하기 버튼을 누를 수 없었는데 혹시 수정된 날짜 기준인 일요일에 제출한 것으로 바꿔서 과제 평가를 받을 수 있는지
문의드립니다.

백엔드

회원가입 로그인 부분을 진행할 때 백엔드와 연결하여 진행하여야 하는지 여쭤보고 싶습니다.

회원가입 기능 개발 문의

회원가입 기능은 제출시 API 에서 응답데이터를 받아서 어디까지 처리를 해야하는지,
로그인 할때는 회원가입한 계정으로만 해야하는건지 등
전반적인 회원가입 기능 개발 요구사항에 대해 설명 부탁드립니다

로그인,회원가입API이슈

로그인,회원가입API 오류

안녕하세요 !! 고생이 많으십니다
회원가입이랑 로그인에서 보낸 api에서 응답이 오지않아서 문의드립니다
https로 변경해서도 시도해봤으나 같은 응답이 재대로 오지않습니다

에러메세지 및 이미지

스크린샷 2022-10-05 오후 10 25 58

스크린샷 2022-10-05 오후 10 30 14

질문드립니다

안녕하세요
다름이 아니라 resipotory 명을 wanted-pre-onboarding-fe-7
로 해서 12일에 제출을 하였는데,안내글에 resipotory 명을 wanted-pre-onboarding 로 작성하라고 변경되어 있어,
혹시 다시 제출 해야하는지 아니면 다른 방법이 있을지해서 질의 드립니다..!

감사합니다

userId 문의

todo안에 userId가 있는데 이것이 유의미한 데이터인지 궁금합니다.

로그인이나 회원가입 시 userId가 주어지지 않는것으로 보아 userId값에 상관없이 모든 todo를 렌더링 하면 되는 것이 맞는지 궁금합니다.

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.