{"id":18431459,"url":"https://github.com/matrixpower1004/snowball-board","last_synced_at":"2026-03-19T04:22:08.808Z","repository":{"id":180049482,"uuid":"664489254","full_name":"matrixpower1004/snowball-board","owner":"matrixpower1004","description":"패스트캠퍼스 토이프로젝트 3 ","archived":false,"fork":false,"pushed_at":"2023-07-26T13:56:29.000Z","size":239,"stargazers_count":0,"open_issues_count":3,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-21T02:46:28.677Z","etag":null,"topics":["h2-database","java17","mybatis","spring-jpa","spring-web","springboot2-x","thymeleaf"],"latest_commit_sha":null,"homepage":"","language":null,"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/matrixpower1004.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-10T05:10:48.000Z","updated_at":"2023-07-10T06:14:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"e4c5b263-2ba6-46ee-9c74-80eff2e85f82","html_url":"https://github.com/matrixpower1004/snowball-board","commit_stats":null,"previous_names":["matrixpower1004/snowball-board"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/matrixpower1004/snowball-board","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matrixpower1004","download_url":"https://codeload.github.com/matrixpower1004/snowball-board/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28629924,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["h2-database","java17","mybatis","spring-jpa","spring-web","springboot2-x","thymeleaf"],"created_at":"2024-11-06T05:24:54.969Z","updated_at":"2026-01-21T08:12:27.857Z","avatar_url":"https://github.com/matrixpower1004.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 패스트캠퍼스 Toy Project III : 게시판 제작하기\n\n## 게시판 기능 명세서\n1. 회원가입\n\t- [ ]  [회원가입 페이지] 회원가입 구현 (id, username, password, email, nickName, role, createdAt, updatedAt) - role은 새싹 회원과 우수 회원으로 구분 (디폴트 : 새싹회원, 게시글 수 10 개 이상 우수 회원)\n2. 로그인\n\t- [ ]  [로그인 페이지] 로그인 구현 (username, password)\n3. 유저네임 중복체크\n\t- [ ]  [회원가입 페이지] 동일 username 중복체크하기\n4. 회원정보보기\n\t- [ ]  [회원정보 페이지] username, email, role, createdAt 확인\n5. 회원정보 수정하기\n\t- [ ]  [회원정보 수정페이지] email, nickName 변경가능\n6. 비밀번호 수정하기\n\t- [ ]  [비밀번호 수정 페이지] 비밀번호 수정 구현\n7. 게시글 카테고리\n\t- [ ]  새싹회원 게시판, 우수회원 게시판 구현 (게시판은 2개이지만 하나의 화면을 공유해서 사용하고 카테고리로 구분함)\n8. 게시글 쓰기\n\t- [ ]  [게시글 쓰기 페이지] - 권한(새싹, 우수)에 따라 다른 게시판에 글이 적어짐 (썸머노트 적용)\n9. 게시글 목록보기\n\t- [ ]  [게시글 목록보기 페이지] 게시글 목록보기 (id, title, content, thumbnail, user의 nickName 화면에 보여야 함, content내용을 화면에 2줄이 넘어가면 Ellipsis(...)으로 스타일 변경, 정렬은 id순 Desc\n\t\t- [x]  게시글 목록보기\n\t\t- [ ]  게시글 페이징\n\n## 사용 언어 및 기술 스택\n- Java 17\n- Gradle\n- Lombok\n- Junit, AssertJ\n- Springboot 2.7.13\n- MyBatis 3\n- Thymeleaf\n- Spring Security\n\n## 개발환경\n- IntelliJ IDEA\n- H2 DB\n\n## 협업 툴\n- Github Project\n- Slack\n- Zoom\n## DB Table\n```sql\n-- status : Current Status of User. TRUE(Activated) / FALSE(UnActivated)\n-- role : BLACK, BEGINNER, EXPERT, ADMIN\nCREATE TABLE `user_tb`\n(\n    `id`           BIGINT PRIMARY KEY AUTO_INCREMENT,\n    `user_account` VARCHAR(15)                           NOT NULL UNIQUE,\n    `user_name`    VARCHAR(10)                           NOT NULL,\n    `password`     VARCHAR(72)                           NOT NULL,\n    `email`        VARCHAR(30)                           NOT NULL,\n    `nick_name`    VARCHAR(10)                           NOT NULL UNIQUE,\n    `user_status`  BOOLEAN     DEFAULT TRUE              NOT NULL,\n    `user_role`    VARCHAR(20) DEFAULT 'BEGINNER'        NOT NULL,\n    `created_at`   TIMESTAMP   DEFAULT CURRENT_TIMESTAMP NOT NULL,\n    `updated_at`   TIMESTAMP   DEFAULT CURRENT_TIMESTAMP NOT NULL\n) DEFAULT CHARSET = utf8mb4;\n\n\n-- post(게시판)\nCREATE TABLE `post`\n(\n    `id`          BIGINT PRIMARY KEY AUTO_INCREMENT,\n    `user_id`     BIGINT                              NOT NULL,\n    `title`       VARCHAR(255)                        NOT NULL,\n    `content`     TEXT                                NOT NULL,\n    `blind_state` BOOLEAN   DEFAULT false, -- ture면 게시글 블라인드 상태\n    `created_at`  TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n    `updated_at`  TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    FOREIGN KEY (user_id) REFERENCES user_tb (id)\n) DEFAULT CHARSET = utf8mb4;\n\n\n-- 게시글 신고 게시판. 하나의 게시글은 한 유저가 한 번만 신고할 수 있다.\ncreate table `report_board`\n(\n    `id`             bigint primary key auto_increment,\n    `post_id`        bigint       not null comment '신고 대상 게시글',\n    `report_type`    varchar(20)  not null comment '신고 유형 : 욕설, 비방, 음란, 스팸,광고',\n    `reporter_id`    bigint       not null comment '신고자 id',\n    `report_img_url` varchar(255) not null comment '증거 스크린샷',\n    `report_date`    timestamp    not null default now() comment '신고 일자',\n    FOREIGN KEY (post_id) REFERENCES post (id),\n    FOREIGN KEY (reporter_id) REFERENCES user_tb (id),\n    UNIQUE (post_id, reporter_id)\n) DEFAULT CHARSET = utf8mb4;\n\n\n-- comment(댓글)\nCREATE TABLE `comment`\n(\n    `id`         BIGINT PRIMARY KEY AUTO_INCREMENT,\n    `post_id`    BIGINT                              NOT NULL,\n    `user_id`    BIGINT                              NOT NULL,\n    `content`    VARCHAR(50)                         NOT NULL,\n    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,\n    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    FOREIGN KEY (post_id) REFERENCES post (id),\n    FOREIGN KEY (user_id) REFERENCES user_tb (id)\n) DEFAULT CHARSET = utf8mb4;\n\n\n-- REPLY (대댓글)\nCREATE TABLE `reply`\n(\n    `id`         BIGINT PRIMARY KEY AUTO_INCREMENT,\n    `comment_id` BIGINT      NOT NULL,\n    `user_id`    BIGINT      NOT NULL,\n    `content`    VARCHAR(50) NOT NULL,\n    `created_at` TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,\n    `updated_at` TIMESTAMP            DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n    FOREIGN KEY (comment_id) REFERENCES comment(id),\n    FOREIGN KEY (user_id) REFERENCES user_tb (id)\n) DEFAULT CHARSET = utf8mb4;\n```\n### DB 테이블 및 테스트용 더미 데이터는 애플리케이션 시작 시 자동으로 insert 됩니다.\n## ERD\n![Image](https://github.com/matrixpower1004/snowball-board-admin/assets/104916288/1c872b8a-aeea-4372-b95b-e495141b2143)\n## 팀원 역할 분담\n- 팀장 : [이지상] (https://github.com/matrixpower1004/snowball-board-admin)\n  * 프로젝트 셋업\n  * 신고 게시판, 게시판, 댓글(대댓글) DB 테이블 설계\n  * 테스트용 더미 데이터 생성\n  * Admin 기능\n  * [API명세서] (https://docs.google.com/spreadsheets/d/1qEEMAMGnR2dmHo5dzFqQ1OJ8OIxQWEr2DDqrvdOPgFo/edit#gid=0)\n- 팀원 : [배종윤] (https://github.com/jy-b)\n  * 미완성된 상태라 각자 맡은 부분의 최신버젼입니다\n  * https://github.com/jy-b/snowball-board/tree/feature/user-refactoring\n- 팀원 : [박민기] (https://github.com/Coding9nt)\n  * 게시판 기능\n- 팀원 : [박성욱] (https://github.com/gosuuk)\n  * 댓글, 대댓글 기능\n## 프로젝트 후기\n- 팀장 : 이지상\n  * 멀티 모듈 프로젝트라는 개념을 알지 못해서 중간에 프로젝트 자체를 완전히 분리하는 시행 착오를 겪은 점이 아쉬웠습니다.\n  * 제일 먼저 화면을 대략적으로 구상하고 프로젝트를 시작했어야 했는데, 보여줄 화면에 대한 구상 없이 DB 설계부터 하다보니 많은 시행착오와 테이블 변경을 해야 했던 점이 아쉬웠습니다.\n  * 기능을 작은 단위로 쪼개서 핵심 기능부터 구현하고, 점차 부가적인 기능 구현으로 진행하지 못한 점이 아쉬웠습니다.\n  * Admin의 핵심 기능이 아닌 게시판 페이징 처리에 너무 많은 시간을 투자하여, 반드시 구현해야 할 핵심 기능을 제대로 구현하지 못한 점이 아쉬웠습니다.\n  * 팀장으로서 프로젝트를 제대로 마무리 짓지 못한 점이 아쉬웠습니다.\n\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrixpower1004%2Fsnowball-board","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatrixpower1004%2Fsnowball-board","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrixpower1004%2Fsnowball-board/lists"}