{"id":18431460,"url":"https://github.com/matrixpower1004/snowball-board-admin","last_synced_at":"2026-04-30T09:35:09.049Z","repository":{"id":180619914,"uuid":"665407200","full_name":"matrixpower1004/snowball-board-admin","owner":"matrixpower1004","description":"패스트캠퍼스 토이프로젝트 3 Admin 게시판 기능 구현","archived":false,"fork":false,"pushed_at":"2023-07-26T13:47:57.000Z","size":190,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-21T02:50:26.130Z","etag":null,"topics":["gradle","java17","lombok","mail","mybatis","security","springboot2","thymeleaf"],"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/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-12T06:21:49.000Z","updated_at":"2023-07-26T04:20:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"4e4f74af-3bbf-42f9-9527-ccd8c8e2767f","html_url":"https://github.com/matrixpower1004/snowball-board-admin","commit_stats":null,"previous_names":["matrixpower1004/snowball-board-admin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/matrixpower1004/snowball-board-admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matrixpower1004","download_url":"https://codeload.github.com/matrixpower1004/snowball-board-admin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrixpower1004%2Fsnowball-board-admin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32460781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"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":["gradle","java17","lombok","mail","mybatis","security","springboot2","thymeleaf"],"created_at":"2024-11-06T05:24:55.314Z","updated_at":"2026-04-30T09:35:09.032Z","avatar_url":"https://github.com/matrixpower1004.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 패스트캠퍼스 Toy Project III : Admin 게시판 \n\n## 관리자 게시판 체크 리스트\n  1. 관리자 회원 권한 관리\n      - [ ]  회원의 role 변경 가능해야 함\n  2. 관리자 회원 Email 전송 관리\n      - [ ]  회원에게 email 전송 가능해야 함\n  3. 관리자 게시글 CRUD 관리\n      - [x]  게시글 목록보기,\n      - [ ]  삭제하기, 숨기기/보이기, 블랙리스트(욕설) 등록 가능해야 함 (수정, 상세보기는 구현할 필요 없음)\n  4. 관리자 게시글 통계 관리\n      - [x]  유저의 게시글 수, 댓글 수를 볼 수 있고,\n      - [x]  댓글수가 많은 유저 순, 게시글수가 많은 유저 순으로 정렬가능해야 함\n  5. 관리자 블랙리스트 고객 등록/해제\n      - [x]  게시글 신고목록 페이지 구현,\n      - [ ]  해당 페이지에서 블랙리스트 고객 등록 및 해제 가능\n\n### 체크 되어 있는 기능 외에는 UI 및 기능 미구현 상태입니다.\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## API 명세서\nhttps://docs.google.com/spreadsheets/d/1qEEMAMGnR2dmHo5dzFqQ1OJ8OIxQWEr2DDqrvdOPgFo/edit#gid=0\n## 팀원 역할 분담\n- 팀장 : [이지상] (https://github.com/matrixpower1004)\n  * 프로젝트 셋업\n  * 신고 게시판, 게시판, 댓글(대댓글) DB 테이블 설계\n  * 테스트용 더미 데이터 생성\n  * Admin 기능\n- 팀원 : [배종윤] (https://github.com/jy-b)\n  * Spring Security 설정\n  * 유저 DB 테이블 설계\n  * 유저 기능(가입, 로그인)\n  * 유저 등업 배치 처리\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-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatrixpower1004%2Fsnowball-board-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrixpower1004%2Fsnowball-board-admin/lists"}