{"id":25065923,"url":"https://github.com/lkdcode/temfriendbe","last_synced_at":"2025-08-24T09:17:25.194Z","repository":{"id":180959512,"uuid":"665981323","full_name":"lkdcode/temfriendbe","owner":"lkdcode","description":"🦠 [Temfriend] BackEnd Repository","archived":false,"fork":false,"pushed_at":"2023-12-20T09:42:09.000Z","size":599,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T19:58:44.128Z","etag":null,"topics":["springboot"],"latest_commit_sha":null,"homepage":"","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-07-13T12:38:15.000Z","updated_at":"2023-12-20T09:22:13.000Z","dependencies_parsed_at":"2023-12-19T08:49:26.136Z","dependency_job_id":"fbc4eee8-e959-4303-bc39-b203693e2896","html_url":"https://github.com/lkdcode/temfriendbe","commit_stats":null,"previous_names":["lkdcode/temfriendbe"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkdcode%2Ftemfriendbe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkdcode%2Ftemfriendbe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkdcode%2Ftemfriendbe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lkdcode%2Ftemfriendbe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lkdcode","download_url":"https://codeload.github.com/lkdcode/temfriendbe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246477044,"owners_count":20783929,"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":["springboot"],"created_at":"2025-02-06T19:55:44.193Z","updated_at":"2025-03-31T13:54:18.697Z","avatar_url":"https://github.com/lkdcode.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Header](https://capsule-render.vercel.app/api?type=waving\u0026customColorList=8,78,127,39,195,247\u0026color=gradient\u0026text=TemFriend\u0026fontColor=ffffff\u0026animation=fadeIn)\n\n우리는 우리의 템포로 친해진다!\u003cbr/\u003e\n등급제도로 운영되는 친구 커뮤니티\u003cbr/\u003e\n\n\u003cbr/\u003e\n\n### 📚 기술 스택\n\n\u003cimg src=\"https://img.shields.io/badge/Java  17-007396?style=flat-square\u0026logo=openJDK\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/Spring Boot 2.7.14-6DB33F?style=flat-square\u0026logo=Springboot\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/Spring Security-6DB33F?style=flat-\u0026logo=springsecurity\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/Spring Data JPA-gray?style=flat-square\u0026logo=DataJPA\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cbr/\u003e\n\u003cimg src=\"https://img.shields.io/badge/Junit-25A162?style=flat-\u0026logo=JUnit5\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/JWT-black?logo=jsonwebtokens\u0026logoColor=pink\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/MapStruct-gray?logo=MapStruct\u0026logoColor=#147284\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cbr/\u003e\n\u003cimg src=\"https://img.shields.io/badge/MySQL-4479A1?style=flat-square\u0026logo=MySQL\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/Redis-beige?logo=redis\u0026logoColor=#DC382D\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/H2-4479A1?style=flat-square\u0026logo=H2\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/Flyway-CC0200?logo=flyway\u0026logoColor=fff\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cbr/\u003e\n\u003cimg src=\"https://img.shields.io/badge/AWS Elastic Beanstalk-white?logo=amazon\u0026logoColor=#FF9900\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/AWS EC2-white?logo=amazonec2\u0026logoColor=#FF9900\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/AWS RDS-white?logo=amazon\u0026logoColor=#FF9900\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/AWS Elastic Cache-white?logo=amazon\u0026logoColor=#FF9900\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/githubActions-white?logo=githubactions\u0026logoColor=#2088FF\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cbr/\u003e\n\u003cimg src=\"https://img.shields.io/badge/Gradle-4429A1?style=flat-square\u0026logo=gradle\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/Swagger-85EA2D?style=flat-square\u0026logo=Swagger\u0026logoColor=white\u0026style=flat\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/DBeaver-gray?logo=dbeaver\u0026logoColor=#382923\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/Postman-gray?logo=Postman\u0026logoColor=#FF6C37\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/intellijidea-gray?logo=intellijidea\u0026logoColor=#000000\u0026style=flat-square\"/\u003e\u003c/a\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 🚀 EndPoint\n\n[도메인](http://temfriend-env.eba-6bxfcpqr.ap-northeast-2.elasticbeanstalk.com/)\u003c/br\u003e\n[Swagger](http://temfriend-env.eba-6bxfcpqr.ap-northeast-2.elasticbeanstalk.com/swagger-ui/index.html)\n\n\u003cbr/\u003e\n\n### 🏛️ Architecture\n\n![Architecture.png](docs%2FArchitecture.png)\n\n\u003cbr/\u003e\n\n### 🚀 기능 정의서\n\n해당 프로젝트의 기능, 시나리오 등을 정의합니다.\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n#### 🎯 회원 가입\n\n사용자는 신규 `회원 가입`이 가능하다.\n\n\u003e - [x] 중복된 이메일은 `가입`에 실패한다.\n\u003e - [x] 중복된 닉네임은 `가입`에 실패한다.\n\n#### 🎯 로그인 \u0026 로그아웃\n\n가입한 사용자는 서비스 이용을 위해 `로그인`을 해야 한다.\u003cbr/\u003e\n\n\u003e - [x] 이메일과 패스워드로 `로그인` 할 수 있다.\n\u003e - [x] 로그인 성공 시 `토큰(JWT)`을 발급한다.\n\u003e - [x] 로그아웃은 해당 `토큰(JWT)`을 `Redis` 블랙리스트에 추가하며 만료 시킨다.\n\n#### 🎯 게시글 작성,수정,삭제\n\n로그인한 사용자는 `게시글` 서비스를 이용할 수 있다.\u003cbr/\u003e\n\n\u003e - [x] 유효한 `토큰(JWT)`을 가진 요청만 게시글 작성을 할 수 있다.\n\u003e - [x] 유효한 `토큰(JWT)`을 가진 요청만 게시글 수정을 할 수 있다.\n\u003e - [x] 유효한 `토큰(JWT)`을 가진 요청만 게시글 삭제를 할 수 있다.\n\u003e - [x] 게시글 삭제는 컬럼을 `marking` 해 관리하며 실제로 삭제하지 않는다.\n\n#### 🎯 댓글 작성\n\n로그인한 사용자는 게시글에 `댓글`을 작성할 수 있다.\u003cbr/\u003e\n\n\u003e - [x] 유효한 `토큰(JWT)`을 가진 요청만 댓글 작성을 할 수 있다.\n\u003e - [x] 유효한 `토큰(JWT)`을 가진 요청만 댓글 수정을 할 수 있다.\n\u003e - [x] 유효한 `토큰(JWT)`을 가진 요청만 댓글 삭제를 할 수 있다.\n\n#### 🎯 점수 정책\n\n유저의 등급제도에 필요한 점수 정책이다.\u003cbr/\u003e\n필요 이상의 점수를 획득하면 자동으로 등급이 상승한다.\u003cbr/\u003e\n\n\u003e - [x] 로그인 시 `점수`를 획득한다.\n\u003e - [x] 게시글 작성 시 `점수`를 획득한다.\n\u003e - [ ] 댓글 작성 시 `점수`를 획득한다.\n\u003e - [ ] 등급은 `Bronze`, `Silver`, `Gold`, `Platinum`, `Diamond` 이 존재한다.\n\n#### 🎯 활동 내역\n\n유저의 로그인 및 게시글 작성, 댓글 작성 등의 활동 내역을 관리한다.\u003cbr/\u003e\n\n\u003e - [x] 로그인 시 획득할 수 있는 점수의 시간은 최소 6시간이다.\n\u003e - [x] 게시글 작성 시 획득할 수 있는 점수의 시간은 최소 3시간이다.\n\u003e - [ ] 댓글 작성 시 획득할 수 있는 점수의 시간은 최소 x시간이다.\n\n\u003cbr/\u003e\n\n### 🔖 커밋 컨벤션\n\n\u003cu\u003e\"태그 [클래스명] : 내용\"\u003c/u\u003e 의 형태로 커밋한다.\u003cbr/\u003e\n\u003cbr/\u003e\n\n| 태그 이름    | 설명                           |\n|----------|------------------------------|\n| Feat     | 새로운 기능을 추가한 경우               |\n| Add      | 기존 기능에 새로운 기능을 추가한 경우        |\n| Refactor | 기존 로직과 상관없이 코드를 개선 및 수정한 경우  |\n| Rename   | 파일 혹은 폴더명을 수정하거나 옮기는 작업만한 경우 |\n| Test     | 테스트와 관련된 경우                  |\n| Docs     | 문서와 관련된 경우                   |\n| Chore    | 빌드 및 설정과 관련된 경우              |\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n---\n\n© 2023 TemFriend. All rights reserved.\u003cbr/\u003e\nDesigned with ❤️ by [lkdcode]","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flkdcode%2Ftemfriendbe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flkdcode%2Ftemfriendbe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flkdcode%2Ftemfriendbe/lists"}