Giter VIP home page Giter VIP logo

pre-assignment's Introduction

:: 원티드 프리온보딩 프론트엔드 코스 사전과제

Quick Overview

npm install

npm start

** React를 구동할 수 있는 기본적인 환경이 필요합니다.

진행 가이드

  • 위의 Repository를 포크(fork) 하여 개발하여 원티드 프리온보딩 프론트엔드 지원 페이지를 통해 제출해주세요.
  • fork 레파지토리 명은 wanted-pre-onboarding-fe로 생성해 주세요.
  • 과제 수행 개수에 따라 기본적인 평가가 이루어집니다.
  • 코드의 일관성, 가독성, 함수 분리,컴포넌트 설계, 코드 퀄리티 등을 기준으로 세부적인 평가가 이루어집니다.
  • 해당 과제에 대한 해설은 개강 후 진행될 예정입니다.
  • 선발하는 과정에서 최소한의 수준을 평가하기 위한 과제로 아래 Assignment 외 다른 부분을 완벽하게 구현하지 않으셔도 됩니다. (평가에 반영하지 않습니다.)
  • README.md를 꼭 작성해 주세요. 본인에 대한 소개나 과제 풀이에 관한 것 등 자유롭게 작성해주시면 됩니다.
  • 함수형 컴포넌트로 개발해주세요. (React Hooks)

*문의 사항은 사전 과제 Repository의 Issue로 등록해 주세요.

:: 과제 안내


Assignment 1 - Login

  • 로그인 컴포넌트를 개발합니다. (최소화 - input 2개, button 1개)
  • 약간의 랜더링 최적화를 고려해주세요. (Hint: Ref 사용)
  • 로그인 시(ID, PW 입력 후 버튼 클릭)
    • Local Storage 에 로그인 정보 저장 (다시 접속했을 경우에 정보가 유지 되어야 합니다.)
    • 메인 페이지로 이동합니다.(로그인이 완료되면)
    • 반응형 CSS 적용은 하지 않으셔도 좋습니다. 해당 페이지는 반응형 CSS를 평가하지 않습니다.

Assignment2 - GNB

  • 로그인 후 이동하는 메인페이지의 GNB를 구현해주세요.
  • 구현 시 스크롤에 관계 없이 화면 상단에 고정되는 sticky GNB 를 구현해주세요.
  • 모바일 사이즈의 경우 가운데 Input 창이 사라져야 하고 양옆으로(space-between) 정렬 되어야 합니다.
  • 가장 오른쪽 아이콘을 Logout으로 변경해주세요.
  • 그 외 기능은 평가하지 않습니다.
    • (가운데 검색바는 input 요소로만 만들어주세요. 기능은 X)
    • (아이콘은 자유롭게 사용하셔도 괜찮습니다. 아이콘 라이브러리 설치 O)

Assignment3 - Validation

  • 이메일과 비밀번호의 유효성을 확인합니다.
    • 이메일 조건 - @ , . 포함
    • 비밀번호 조건 - 대문자, 숫자, 특수문자 포함 8자리 이상
    • 로그인 시 이메일과 비밀번호가 등록되어 있는 것과 일치 여부 확인
  • Validation 상태를 CSS로 표현해주세요.
    • Email Input Validation Check를 통해 Email 형식이 아닌 경우 표시를해주세요. (ex. boder가 red색상으로 변경)
    • Password Input Validation Check를 통해 Password 형식이 아닌 경우 표시를 해주세요. (ex. boder가 red색상으로 변경.)
    • Login Button Validation Check가 모두 통과된 경우에만 Button 색상을 진하게 변경해주세요. (통과 되지 못한 경우와 구별이 가능해야 합니다.)
  • 유효성 검사 시 아래 두 가지를 적용해서 구현해주세요.
    • 정규표현식 사용
    • Validation 함수 분리

Assignment4 - Routing

  • 로그인,로그아웃 시 라우팅 로직을 통해 페이지가 이동 되도록 구현해주세요. (Local Storage)
  • 로그인이 완료되면 라우터에서 Main Page로 이동되어야 합니다. (history push 사용 X)
  • 로그아웃되면 (Local Storage가 삭제되면) Login Page로 이동되어야 합니다.(history push 사용 X)

Assignment5 - Feeds

  • 피드 컴포넌트를 개발합니다.
  • 레이아웃을 인스타그램과 동일하게 구현해주시면 됩니다. (픽셀 단위까지 맞추실 필요는 없으나 보기에 자연스럽도록 개발해주세요.)
  • 각 Feed의 정보는 public/data 디렉토리에 json형식으로 구성하여 fetch, axios 등을 이용하여 data를 요청해야 합니다.
  • Feed는 최소 3개이상 랜더링 되도록 구현해주세요.
  • 각각의 Feed에 댓글을 추가할 수 있도록 개발해주세요. (Enter key & 클릭으로 게시 가능하도록)
  • Feed는 화면 중앙에 위치 해야하며 모바일 대응이 가능해야 합니다.
  • 게시 후 Input은 초기화 되어야 합니다.
  • Feed의 이미지는 자유롭게 사용하시되 각각 사이즈가 각각 달라야 합니다. (ex. 정사각형, 세로가 긴 것, 가로가 긴 것 등)
  • Feed Image는 자유롭게 사용하셔도 되지만 필요하시면 아래의 url을 사용하세요.(사이즈를 변경하셔도 됩니다. 같은 사이즈 X) "https://source.unsplash.com/random/600x500" "https://source.unsplash.com/random/900x500" "https://source.unsplash.com/random/700x1080"
  • Feeds의 Image가 로딩된 후 컴포넌트가 로딩 되도록 Loading을 구현해 주세요 (로딩바는 없어도 괜찮습니다. Hint: image.onload)
    • (아이콘은 자유롭게 사용하셔도 괜찮습니다. icon 라이브러리 설치 O)
    • 메인 Page 전체에 반응형 CSS가 적용 되어있는지 평가합니다. (Media Query 사용)

참고 이미지

참고 이미지 링크

pre-assignment's People

Contributors

bclef2525 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

pre-assignment's Issues

Assignment3에 대한 문의 사항이 있습니다.

이메일과 비밀번호의 유효성 검사 중 "로그인 시 이메일과 비밀번호가 등록되어 있는 것과 일치 여부 확인"이라는 게 있는데, 등록된 이메일과 비밀번호 데이터는 과제 수행자가 임의적으로 설정해야 하는 건가요?

[Assignment 5 ] Lazy Loading 관련 공지

안녕하세요!

먼저 Assignment 5 의 로딩 구현이 Lazy Loading으로 오표기 되어 혼란을 드린 것 같아 죄송합니다.

일단 해당 Read Me를 수정하였습니다.

위 기능은 단순하게 브라우저가 이미지를 다운로드 받는 동안 컴포넌트가 보이지 않게 처리 해주시면 됩니다!

intersection observer등을 사용하여 lazy loading을 구현한 분이 계시다면 그 수고가 헛되지 않도록

코드 퀄리티 부분에서 가산점을 드리는 방향으로 처리 하겠습니다!

감사합니다!

[Assignment3 - Validation] 문의사항

[Assignment3] 의 이메일과 비밀번호 유효성검사 부분에서 질문있습니다.
유효성검사를 한 후에

  • 로그인 시 이메일과 비밀번호가 등록되어 있는 것과 일치 여부 확인

이라고 되어있는데,
여기서 '등록되어 있는 것'이 어떤 것을 말하는 건가요?
로그인화면에서는 localStorage에 저장된 정보가 없는데 뭐랑 일치여부를 확인는건지 모르겠습니다.

Issue를 등록하기 전에 읽어보세요!

  1. 선발과제에 대한 문의사항을 등록하기 위해 사용합니다.

  2. 질문 전에 이미 같은 질문이 있었는지 확인 해주세요! 이미 해결 된 Issue는 closed로 필터링하여 확인 하실 수 있습니다.

  3. 다른 분이 생성한 Issue를 임의로 close하지 마세요!

  4. 문의 사항에 대한 답변을 확인하고 나면 분류를 위해 close를 꼭 해주세요 :)

  5. 그 외 질문은 답변 없이 임의로 closed 처리 될 수 있습니다..!

Assginment 2 관련 문의사항입니다.

노션에 있는 Assginment 2 참고 이미지는 GNB 부분만 참고하면 되는걸까요?
GNB 아래의 피드 형식은 Assginment 5 와 같게 만들면 되는지 궁금합니다 !

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.