{"id":25065914,"url":"https://github.com/lkdcode/book-buddy","last_synced_at":"2025-03-31T13:54:17.028Z","repository":{"id":208582879,"uuid":"721982332","full_name":"lkdcode/book-buddy","owner":"lkdcode","description":null,"archived":false,"fork":false,"pushed_at":"2023-11-29T07:26:44.000Z","size":1329,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T19:58:41.035Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/lkdcode.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-22T07:28:22.000Z","updated_at":"2023-11-22T07:48:02.000Z","dependencies_parsed_at":"2025-02-06T19:55:49.674Z","dependency_job_id":"0cbb5292-1386-478c-853c-34e543f04fd6","html_url":"https://github.com/lkdcode/book-buddy","commit_stats":null,"previous_names":["lkdcode/book-buddy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkdcode%2Fbook-buddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkdcode%2Fbook-buddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkdcode%2Fbook-buddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkdcode%2Fbook-buddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lkdcode","download_url":"https://codeload.github.com/lkdcode/book-buddy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246477020,"owners_count":20783926,"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-02-06T19:55:43.100Z","updated_at":"2025-03-31T13:54:17.003Z","avatar_url":"https://github.com/lkdcode.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Book Buddy\n\n## 개발 환경\n\n- Java - 17\u003cbr/\u003e\n- Spring boot - 2.7.14\u003cbr/\u003e\n- Spring Data JPA\u003cbr/\u003e\n- CI/CD - Github Actions\u003cbr/\u003e\n- AWS Elastic Beanstalk\u003cbr/\u003e\n- MySql,H2,Junit5,Gradle,Swagger,PostMan\u003cbr/\u003e\n\n## 기능 정의서\n\n\u003e 1) _사용자_\u003cbr/\u003e\n     - 회원가입\n\u003e\n\u003e 2) _도서관리_\u003cbr/\u003e\n     - 도서를 등록한다\u003cbr/\u003e\n     - 등록된 도서를 수정한다\u003cbr/\u003e\n     - 등록된 도서에 대한 대출이력을 확인한다\u003cbr/\u003e\n     - 아이디를 입력 후 도서에 대한 대출처리를 한다\u003cbr/\u003e\n     - 도서에 대하여 반납처리한다\u003cbr/\u003e\n\n### 사용자\n\n\u003e 회원가입\n\n- [x] 이메일(UK), 비밀번호, 이름으로 회원가입을 할 수 있다.\u003cbr/\u003e\n- [x] 요청 시 이메일(UK), 비밀번호, 이름은 각각 누락될 수 없다.\u003cbr/\u003e\n- [x] 회원 가입 시 이메일(UK)은 중복될 수 없다.\u003cbr/\u003e\n\n### 도서\n\n\u003e 도서를 등록한다\n\n- [x] ISBN(UK), 제목, 저자, 수량으로 도서를 등록 할 수 있다.\u003cbr/\u003e\n- [x] 요청 시 ISBN(UK), 제목, 저자, 수량은 각각 누락될 수 없다.\u003cbr/\u003e\n- [x] 등록 시 ISBN(UK) 은 중복될 수 없다.\u003cbr/\u003e\n\n\u003e 등록된 도서를 수정한다\n\n- [x] 등록된 도서의 ISBN(UK), 제목, 저자, 수량은 각각 수정할 수 있다.\u003cbr/\u003e\n- [x] 요청 시 ISBN(UK), 제목, 저자, 수량은 각각 누락될 수 없다.\u003cbr/\u003e\n- [x] 수정 시 ISBN(UK) 은 중복될 수 없다.\u003cbr/\u003e\n\n\u003e 등록된 도서에 대한 대출이력을 확인한다\n\n- [x] 도서의 번호(PK)로 해당 도서의 대출 이력을 조회할 수 있다.\u003cbr/\u003e\n- [x] 요청 시 도서의 번호(PK)는 누락될 수 없다.\u003cbr/\u003e\n- [x] 대출 이력은 가장 최근 대출 내역부터 내림차순으로 정렬한다.\u003cbr/\u003e\n\n\u003e 아이디를 입력 후 도서에 대한 대출 처리를 한다\n\n- [x] 유저 이메일(UK)과 도서 번호(PK)로 도서 대출을 할 수 있다.\u003cbr/\u003e\n- [x] 요청 시 유저 이메일과 도서 번호(PK)를 누락할 수 없다.\u003cbr/\u003e\n- [x] 유저가 이미 빌린 책의 중복 대출은 허용하지 않는다.\u003cbr/\u003e\n- [x] 여러 사용자가 동시에 대출 요청을 하더라도 대출이 가능한 도서 수량만큼만 대출할 수 있다.\u003cbr/\u003e\n\n\u003e 도서에 대하여 반납처리한다\n\n- [x] 유저 이메일과 도서 번호(pk)로 도서 반납을 할 수 있다.\u003cbr/\u003e\n- [x] 요청 시 유저 이메일과 도서 번호(PK)를 누락할 수 없다.\u003cbr/\u003e\n- [x] 이미 반납한 도서는 재 반납이 불가하다.\u003cbr/\u003e\n- [x] 동시에 여러 반납 요청이 와도 반납 가능한 도서 수만큼만 반납을 허용한다.\u003cbr/\u003e\n\n## ERD\n\n```mermaid\n---\ntitle: Book Buddy ERD\n---\nerDiagram\n    tb_user |o--o{ tb_loan: OneToMany\n    tb_book |o--o{ tb_loan: OneToMany\n    tb_book |o--o{ tb_loan: OneToMany\n\n    tb_user {\n        id BIGINT PK \"Auto Increment\"\n        careted_at DATETIME(6)\n        updated_at DATETIME(6)\n        email VARCHAR(255) UK\n        password VARCHAR(255) \"NOT NULL\"\n        name VARCHAR(255) \"NOT NULL\"\n    }\n\n    tb_book {\n        id BIGINT PK \"Auto Increment\"\n        careted_at DATETIME(6)\n        updated_at DATETIME(6)\n        ISBN VARCHAR(20) UK\n        title VARCHAR(255) \"NOT NULL\"\n        author VARCHAR(255) \"NOT NULL\"\n        quantity INT \"NOT NULL\"\n    }\n\n    tb_loan {\n        id BIGINT PK \"Auto Increment\"\n        careted_at DATETIME(6)\n        updated_at DATETIME(6)\n        borrowed_at DATETIME(6)\n        returned_at DATETIME(6)\n        book_id BIGINT FK\n        user_email VARCHAR(255) FK\n    }\n```\n\n## API\n\n\u003e END-POINT : Rmsoft-lkdcode-env.eba-pywyjuyk.ap-northeast-2.elasticbeanstalk.com\n\n![SwaggerApi.png](outputs%2FSwaggerApi.png)\n\n## Architecture\n\n![Architecture.png](outputs%2FArchitecture.png)\n\n## AWS\n\n![AWS Elastic Beanstalk.png](outputs%2FAWS%20Elastic%20Beanstalk.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flkdcode%2Fbook-buddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flkdcode%2Fbook-buddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flkdcode%2Fbook-buddy/lists"}