Sang-Mini / wanted-pre-onboarding-frontend

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

🚀 기능 요구 사항

- 1. 로그인 / 회원가입
    - / 경로에 로그인 / 회원가입 기능을 개발해주세요
        - 페이지 안에 이메일 입력창, 비밀번호 입력창, 제출 버튼이 포함된 형태로 구성해주세요
        - 로그인, 회원가입을 별도의 경로로 분리해도 무방합니다

- Assignment1
    - 이메일과 비밀번호의 유호성 검사기능을 구현해주세요
        - 이메일 조건 : @ 포함
        - 비밀번호 조건 : 8자 이상
        - 입력된 이메일과 비밀번호가 위 조건을 만족할 때만 버튼이 활성화 되도록 해주세요
        - 보안 상 실제 사용하고 계신 이메일과 패스워드말고 테스트용 이메일, 패스워드 사용을 권장드립니다

- Assignment2
    - 로그인 API를 호출하고, 올바른 응답을 받았을 때 /todo 경로로 이동해주세요
        - 로그인 API는 로그인이 성공했을 시 Response Body에 JWT를 포함해서 응답합니다
        - 응답받은 JWT는 로컬 스토리지에 저장해주세요

- Assignment3
    - 로그인 여부에 따른 리다이렉트 처리를 구현해주세요
        - 로컬 스토리지에 토큰이 있는 상태로 / 페이지에 접속한다면 /todo 경로로 리다이렉트 시켜주세요
        - 로컬 스토리지에 토큰이 없는 상태로 /todo 페이지에 접속한다면 / 경로로 리다이렉트 시켜주세요

- 2. 투두 리스트

- Assignment4
    - /todo 경로에 접속하면 투두 리스트의 목록을 볼 수 있도록 해주세요
    - 리스트 페이지에는 투두 리스ㅡ의 내용과 완료 여부가 표시되어야 합니다.
    - 리스트 페이지에는 입력창과 추가 버튼이 있고, 추가 버튼을 누르면 입력창의 내용이 새로운 투두 리스트로 추가되도록 해주세요

- Assignment5
    - 투두 리스트의 수정, 삭제 기능을 구현해주세요
        - 투두 리스트의 개별 아이템 우측에 수정버튼이 존재하고 해당 버튼을 누르면 수정모드가 활성화되고 투두 리스트의 내용을 수정할 수 있도록 해주세요
        - 수정모드에서는 개별 아이템의 우측에 제출버튼과 취소버튼이 표시되며 해당 버튼을 통해서 수정 내용을 제출하거나 수정을 취소할 수 있도록 해주세요
        - 투두 리스트의 개별 아이템 우측에 삭제버튼이 존재하고 해당 버튼을 누르면 투두 리스트가 삭제되도록 해주세요

🚀 기능 구현 목록

로그인 / 회원가입

- [O] 회원가입 폼 구현
    - [O] 이메일 입력창 구현
    - [O] 비밀번호 입력창 구현
    - [O] 제출 버튼 구현
- [O] 회원가입 유효성 검사 기능 구현
    - [O] 이메일에 @ 포함되어있는지 확인하는 함수 구현
    - [O] 비밀번호가 8자 이상인지 확인하는 함수 구현
    - [O] 이메일 및 비밀번호가 정상이면 제출버튼 활성화 되도록 구현
    - [O] 회원가입 버튼 클릭 시 회원가입처리
    - [O] 회원가입 버튼 클릭 시 회원가입 후 로그인 페이지로 이동 처리

- [O] 로그인 폼 구현
    - [O] 이메일 입력창 구현
    - [O] 비밀번호 입력창 구현
    - [O] 로그인 버튼 구현
        - [O] JWT토큰을 로컬스토리지에 저장하는 함수 구현
        - [O] 로컬스토리지에 JWT가 존재하는지 검증하는 함수 구현
        - [O] 로컬스토리지에 JWT가 존재하는 상태로 /페이지 접속시 /todo로 리다이렉트
        - [O] 로컬스토리지에 JWT가 존재하지 않는 상태로 /todo페이지 접속시 /로 리다이렉트

TODO

- [] 투두 폼 구현
    - [O] 투두리스트 화면 구현
    - [O] 투두리스트 목록 표시 구현
    - [O] 투두리스트 추가 기능 구현
    - [O] 투두리스트 삭제 기능 구현
    - [] 투두리스트 수정 기능 구현

🚀 실행방법

$npm install
$npm start

🚀 시연영상

회원가입
https://user-images.githubusercontent.com/105893642/207695280-4407e349-f980-4190-a8d5-17802505fb80.mov

로그인
원티드_로그인

투두리스트
원티드_투두

😆 배운 점

로그인 및 회원가입 기능을 직접 구현하면서 JWT를 알게 되어 좋았습니다.

😭 아쉬운 점

UI/UX를 좀 더 이쁘게 만들지 못하였고, 코드 가독성이 좋지 않은 것 같습니다ㅠㅠ 또한 투두 리스트에서 수정 기능을 구현하지 못하여서 아쉽고, 삭제 기능 또한 서버 에러가 발생되어서 많이 아쉬움이 남습니다 ㅠ

🫡 앞으로 할 일

1. JWT 학습하여 벨로그에 정리하기
2. 투두리스트 마무리 짓기
3. 리팩토링 하기

About


Languages

Language:JavaScript 74.3%Language:CSS 15.2%Language:HTML 10.6%