{"id":18884458,"url":"https://github.com/wonsss/locker","last_synced_at":"2025-10-10T06:34:30.325Z","repository":{"id":109114454,"uuid":"579580882","full_name":"wonsss/locker","owner":"wonsss","description":"사물함 배정","archived":false,"fork":false,"pushed_at":"2024-01-27T05:15:17.000Z","size":616,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T21:49:55.360Z","etag":null,"topics":["react","typescript","webpack"],"latest_commit_sha":null,"homepage":"https://random-locker.vercel.app/","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/wonsss.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,"roadmap":null,"authors":null}},"created_at":"2022-12-18T06:50:59.000Z","updated_at":"2023-08-19T01:19:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"bf3ddb4f-298a-4197-b6ef-2702acc19275","html_url":"https://github.com/wonsss/locker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"wonsss/react-boilerplate","purl":"pkg:github/wonsss/locker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wonsss%2Flocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wonsss%2Flocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wonsss%2Flocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wonsss%2Flocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wonsss","download_url":"https://codeload.github.com/wonsss/locker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wonsss%2Flocker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002966,"owners_count":26083489,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["react","typescript","webpack"],"created_at":"2024-11-08T07:12:48.875Z","updated_at":"2025-10-10T06:34:30.309Z","avatar_url":"https://github.com/wonsss.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 사물함 배정\n\n## 기능 구현 목록\n\n- 홈(/home)\n  - [x] `새롭게 사물함 배정하기` 버튼을 클릭할 수 있다. 클릭 시, `/name` 경로로 이동한다.\n  - [x] 기존에 배정된 사물함 배정 결과를 확인 및 삭제할 수 있다.\n  - [x] 저장된 이름 목록을 확인 및 삭제할 수 있다.\n  - [x] 저장된 사물함 목록을 확인 및 삭제할 수 있다.\n- 이름(/name)\n  - [x] 배정할 이름들의 목록을 띄어쓰기하여 입력하면, `공백`을 기준으로 구분하여 배열로 읽히며, 동시에 렌더링된다.\n  - [x] 목록의 제목을 입력 후, `다음` 버튼을 누르면 `/locker` 경로로 이동한다.\n  - [x] 입력한 이름의 목록은 `로컬스토리지`에 자동으로 저장된다.\n  - [x] 이름 목록 선택칸에 `로컬스토리지`에 저장된 데이터가 표시된다.\n  - [x] 선택한 이름 목록을 `로컬스토리지`에서 삭제할 수 있다.\n- 사물함(/locker)\n  - [x] 사물함의 사이즈(세로 개수, 가로 개수)와 사물함명을 입력하면, 동시에 예상 사물함이 렌더링된다.\n  - [x] 사물함의 제목을 입력 후, `랜덤으로 배정하기` 버튼을 누르면 `/result` 경로로 이동한다.\n  - [x] 입력한 사물함의 사이즈는 `로컬스토리지`에 자동으로 저장된다.\n  - [x] 사물함 사이즈 선택칸에 `로컬스토리지`에 저장된 데이터가 표시된다.\n  - [x] 선택한 사물함을 `로컬스토리지`에서 삭제할 수 있다.\n- 랜덤 배정(/result)\n  - [x] 사물함이 랜덤으로 배정되어 표시된다.\n  - [x] 사물함 배정 결과(배정 제목, 이름 정보, 사물함 정보)는 함께 `로컬스토리지`에 저장된다.\n  - [x] 배정된 결과를 이미지로 다운받을 수 있다.\n\n- 기타\n  - [x] 이름(1단계), 사물함(2단계), 랜덤 배정(3단계)를 지나는 동안 페이지 레이아웃 최상단에 현재 단계를 상태바로 표시한다.\n  - [x] 전역상태는 Recoil로 관리한다.\n\n* `로컬스토리지`는 필요시 `서버`로 대체될 수 있다. 서버로 대체될 경우, 인증 및 인가가 필요할 수 있다.\n\n- 배포: GCP 도커라이즈\n\n## 실행\n\nnode version : 14.17.0\n\n- 설치\n\n```bash\nyarn\n```\n\n- development 모드로 구동\n\n```bash\nyarn run start:dev\n```\n\n- production 모드로 빌드\n\n```bash\nyarn run build:prod\n```\n\n- 테스트\n\n```bash\nyarn run test\n```\n\n- 스토리북\n\n```bash\nyarn run storybook\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwonsss%2Flocker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwonsss%2Flocker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwonsss%2Flocker/lists"}