{"id":29568827,"url":"https://github.com/fivethreeeo/wanted-pre-onboarding-frontend","last_synced_at":"2025-12-31T14:13:48.057Z","repository":{"id":152233574,"uuid":"624762657","full_name":"fivethreeeo/wanted-pre-onboarding-frontend","owner":"fivethreeeo","description":"4월 프론트엔드 인턴십 - 사전 과제","archived":false,"fork":false,"pushed_at":"2023-04-10T16:50:42.000Z","size":1648,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-08-04T19:25:37.593Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://sangbeomheo.github.io/wanted-pre-onboarding-frontend/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fivethreeeo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-04-07T07:42:01.000Z","updated_at":"2023-08-04T19:25:38.613Z","dependencies_parsed_at":"2023-04-26T21:01:18.893Z","dependency_job_id":null,"html_url":"https://github.com/fivethreeeo/wanted-pre-onboarding-frontend","commit_stats":null,"previous_names":["fivethreeeo/wanted-pre-onboarding-frontend"],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/fivethreeeo/wanted-pre-onboarding-frontend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivethreeeo%2Fwanted-pre-onboarding-frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivethreeeo%2Fwanted-pre-onboarding-frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivethreeeo%2Fwanted-pre-onboarding-frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivethreeeo%2Fwanted-pre-onboarding-frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fivethreeeo","download_url":"https://codeload.github.com/fivethreeeo/wanted-pre-onboarding-frontend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivethreeeo%2Fwanted-pre-onboarding-frontend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265866474,"owners_count":23840969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-19T01:07:31.054Z","updated_at":"2025-12-31T14:13:48.030Z","avatar_url":"https://github.com/fivethreeeo.png","language":"TypeScript","readme":"# 원티드 프리온보딩 프론트엔드 - 선발 과제 제출\n\n## 실행 방법\n\n```\nnpm install\nnpm run start\n```\n\n\u003cbr\u003e\n\n## 배포 링크\n\nhttps://sangbeomheo.github.io/wanted-pre-onboarding-frontend/\n\n\u003cbr\u003e\n\n## 구현 사항\n\n### ✅ Assignment 1 : 회원가입과 로그인 페이지에 이메일과 비밀번호의 유효성 검사기능을 구현\n\n- [x] 이메일, 비밀번호 조건 통과 여부에 따라 `submit`버튼의 `disabled` 속성을 부여 `true | false`\n\n\u003cbr\u003e\n\n### ✅ Assignment 2 : 회원가입 페이지에서 버튼을 클릭 시 회원가입을 진행하고 회원가입이 정상적으로 완료되었을 시 /signin 경로로 이동\n\n- [x] 회원가입 성공 =\u003e '/signin' 경로로 이동\n- [x] 회원가입 실패 =\u003e `alert` 메시지 제공\n\n\u003cbr\u003e\n\n### ✅ Assignment 3 : 로그인 페이지에서 버튼을 클릭 시, 로그인을 진행하고 로그인이 정상적으로 완료되었을 시 /todo 경로로 이동\n\n- [x] 로그인 성공 =\u003e JWT를 로컬스토리지에 저장, '/todo' 경로로 이동\n- [x] 로그인 실패 =\u003e `alert` 메시지 제공\n\n\u003cbr\u003e\n\n### ✅ Assignment 4 : 로그인 여부에 따른 리다이렉트 처리를 구현\n\n- 로컬스토리지에 토큰 보유\n  - [x] `/signin` 또는 `/signup` 페이지에 접속한다면 `/todo` 경로로 리다이렉트\n- 로컬스토리지에 토큰 미보유\n  - [x] `/todo` 페이지에 접속한다면 `/signin` 경로로 리다이렉트\n\n\u003cbr\u003e\n\n### ✅ Assignment 5 : `/todo` 경로에 접속하면 투두 리스트의 목록을 보여주기\n\n- [x] TODO의 완료 여부는 `\u003cinput type=\"checkbox\" /\u003e`를 통해 표현해주세요\n- [x] TODO는 `\u003cli\u003e` tag를 이용해 감싸주세요\n\n\u003cbr\u003e\n\n### ✅ Assignment 6 : 리스트 페이지에 새로운 TODO를 입력할 수 있는 input과 추가 button을 만들어주세요\n\n- [x] TODO 입력 input에는 data-testid=\"new-todo-input\" 속성을 부여해주세요\n- [x] TODO 추가 button에는 data-testid=\"new-todo-add-button\" 속성을 부여해주세요\n- [x] 추가 button을 클릭하면 입력 input의 내용이 새로운 TODO로 추가되도록 해주세요\n- [x] TODO를 추가 한 뒤 새로고침을 해도 추가한 TODO가 목록에 보여야 합니다.\n\n\u003cbr\u003e\n\n### ✅ Assignment 7 : TODO의 체크박스를 통해 완료 여부를 수정할 수 있도록 해주세요.\n\n- [x] 체크박스 클릭 시 화면에서 체크, updateTodo api 요청\n\n\u003cbr\u003e\n\n### ✅ Assignment 8 : TODO 우측에 수정버튼과 삭제 버튼을 만들어주세요\n\n- [x] 수정 버튼에는 data-testid=\"modify-button\" 속성을 부여해주세요\n- [x] 삭제 버튼에는 data-testid=\"delete-button\" 속성을 부여해주세요\n\n\u003cbr\u003e\n\n### ✅ Assignment 9 : 투두 리스트의 삭제 기능을 구현해주세요\n\n- [x] 투두 리스트의 TODO 우측의 삭제버튼을 누르면 해당 아이템이 삭제되도록 해주세요\n\n\u003cbr\u003e\n\n### ✅ Assignment : 투두 리스트의 수정 기능을 구현해주세요\n\n- [x] TODO 우측의 수정 버튼을 누르면 수정모드가 활성화 되도록 해주세요\n- [x] 수정모드에서는 TODO의 내용을 변경할 수 있어야 합니다.\n- [x] 수정모드에서는 TODO의 내용이 input창 안에 입력된 형태로 변경해주세요\n  - [x] 수정 input창에는 data-testid=\"modify-input\" 속성을 부여해주세요\n- [x] 수정모드에서는 TODO의 우측에 제출버튼과 취소버튼이 표시되게 해주세요\n  - [x] 제출버튼에는 data-testid=\"submit-button\" 속성을 부여해주세요\n  - [x] 취소버튼에는 data-testid=\"cancel-button\" 속성을 부여해주세요\n- [x] 제출버튼을 누르면 수정한 내용을 제출해서 내용이 업데이트 될 수 있도록 해주세요\n- [x] 취소버튼을 누르면 수정한 내용을 초기화 하고, 수정모드를 비활성화 해주세요\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffivethreeeo%2Fwanted-pre-onboarding-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffivethreeeo%2Fwanted-pre-onboarding-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffivethreeeo%2Fwanted-pre-onboarding-frontend/lists"}