🗣️ 이 프로젝트는 스프링 부트와 인텔리제이를 활용한 웹 기반 게시판 관리 시스템으로, 사용자와 관리자를 위한 다양한 기능을 제공합니다.
사용자는 시스템을 통해 회원 가입, 로그인, 개인 정보 수정, 그리고 게시글 작성 및 수정 등의 기능을 이용할 수 있습니다. 특히, 시스템은 회원의 등급에 따라 게시판 접근 권한을 구분하여, 사용자 참여도를 높이는데 효과적입니다.
또한, 관리자는 회원 및 게시글 관리, 블랙리스트 고객 관리, 그리고 통계 확인 등의 기능을 통해 커뮤니티를 효과적으로 관리할 수 있습니다. 이 시스템은 다양한 사용자 요구와 효율적인 커뮤니티 관리를 지원하기 위해 설계되었습니다.
이 외에도 중복체크, 비밀번호 수정, 카테고리별 게시판 구분, 게시글 페이징, 검색, 상세보기, 삭제, 신고 등 다양한 기능을 제공하고 있습니다.
🗓️ 프로젝트 기간 : 7월 10일 (월) ~ 7월 21일 (금)
👨👨👧👧 팀 구성 : 신용호 - 정호윤 - 강경민 - 양수현
개발환경
- IntelliJ IDEA
주요 프레임워크 / 라이브러리
- JDK 11
- SpringBoot 2.7.x
- Spring Data JPA
- Spring Security
- Spring MyBatis
- Thymeleaf
빌드 도구
- Gradle
데이터베이스
- MySQL
- Docker
- Html/CSS
- JavaScript
| 회원가입 | 로그인 | 유저 네임 중복체크 |
| 회원 정보 보기 | 회원 정보 수정 | 비밀번호 수정 |
회원가입 실행화면
- 회원가입 페이지에서 회원가입 구현 (id, username, password, email, nickName, role, createdAt, updatedAt)- role은 새싹회원과 우수회원으로 구분(디폴트: 새싹회원, 게시글 수 10개 이상 우수 회원)
| 게시글 카테고리 | 게시글 쓰기 | 게시글 목록 보기 |
| 게시글 페이징 | 게시글 검색 | 게시글 상세 보기 |
| 게시글 삭제 | 게시글 수정 | 게시글 신고 |
게시글 상세보기 실행화면
- 게시글 상세보기 페이지에서 id, title, content, nickName, 댓글의 comment 리스트(id, comment, 댓글의 작성자 nickName) 이 화면에 보여야 함. - 게시글 삭제버튼과 수정버튼 보여야 함(본인이 적은 글에 대해서만) - 댓글 삭제버튼이 보여야함(본인이 적은 댓글에 대해서만)
| 댓글 쓰기 | 댓글 삭제 |
| 관리자 회원 권한 관리 | 관리자 회원 Email 전송 관리 | 관리자 게시글 CRUD 관리 |
| 관리자 게시글 통계 관리 | 관리자 블랙리스트 고객 등록 | 관리자 블랙리스트 고객 해제 |
패키지 구조 보기
``` 📦 ├─ .gitignore ├─ README.md ├─ build.gradle ├─ docker-compose.yml ├─ gradle │ └─ wrapper │ ├─ gradle-wrapper.jar │ └─ gradle-wrapper.properties ├─ gradlew ├─ gradlew.bat ├─ settings.gradle └─ src ├─ main │ ├─ java │ │ └─ com │ │ └─ fastcampus │ │ └─ toyboard │ │ ├─ ToyboardApplication.java │ │ ├─ board │ │ │ ├─ controller │ │ │ │ └─ BoardController.java │ │ │ ├─ dto │ │ │ │ ├─ BoardDto.java │ │ │ │ ├─ BoardRequestDto.java │ │ │ │ ├─ BoardResponseDto.java │ │ │ │ ├─ BoardResponseWithComment.java │ │ │ │ └─ BoardWithCommentDto.java │ │ │ ├─ model │ │ │ │ └─ Board.java │ │ │ ├─ repository │ │ │ │ ├─ BoardRepository.java │ │ │ │ └─ IBoard.java │ │ │ └─ service │ │ │ └─ BoardService.java │ │ ├─ comment │ │ │ ├─ controller │ │ │ │ ├─ ChildCommentController.java │ │ │ │ └─ CommentController.java │ │ │ ├─ dto │ │ │ │ ├─ ChildCommentDto.java │ │ │ │ ├─ ChildCommentRequestDto.java │ │ │ │ ├─ ChildCommentResponse.java │ │ │ │ ├─ CommentDto.java │ │ │ │ ├─ CommentRequestDto.java │ │ │ │ ├─ CommentResponseDto.java │ │ │ │ └─ CommentResponseWithChildren.java │ │ │ ├─ model │ │ │ │ ├─ ChildComment.java │ │ │ │ └─ Comment.java │ │ │ ├─ repository │ │ │ │ ├─ ChildCommentRepository.java │ │ │ │ └─ CommentRepository.java │ │ │ └─ service │ │ │ ├─ ChildCommentService.java │ │ │ └─ CommentService.java │ │ ├─ common │ │ │ ├─ MainController.java │ │ │ ├─ exceptions │ │ │ │ ├─ ErrorController.java │ │ │ │ └─ ToyboardInternalExceptionHandler.java │ │ │ └─ jpa │ │ │ └─ BaseTimeEntity.java │ │ ├─ config │ │ │ ├─ JpaConfig.java │ │ │ ├─ ThymeleafConfig.java │ │ │ └─ security │ │ │ ├─ BoardUserAuthenticationFilter.java │ │ │ ├─ BoardUserManager.java │ │ │ ├─ BoardUserToken.java │ │ │ ├─ PasswordEncoderConfig.java │ │ │ └─ SecurityConfig.java │ │ ├─ report │ │ │ ├─ controller │ │ │ │ └─ ReportController.java │ │ │ ├─ dto │ │ │ │ └─ ReportRequestDto.java │ │ │ ├─ model │ │ │ │ ├─ Report.java │ │ │ │ └─ ReportType.java │ │ │ ├─ repository │ │ │ │ └─ ReportRepository.java │ │ │ └─ service │ │ │ └─ ReportService.java │ │ └─ user │ │ ├─ controller │ │ │ └─ BoardUserController.java │ │ ├─ dto │ │ │ ├─ BoardUserDto.java │ │ │ └─ BoardUserRequest.java │ │ ├─ model │ │ │ ├─ BoardAuthority.java │ │ │ └─ BoardUser.java │ │ ├─ repository │ │ │ ├─ BoardAuthorityRepository.java │ │ │ └─ BoardUserRepository.java │ │ └─ service │ │ └─ BoardUserService.java │ └─ resources │ ├─ application.yml │ ├─ data.sql │ ├─ static │ │ └─ assets │ │ ├─ css │ │ ├─ img │ │ ├─ js │ │ ├─ scss │ │ └─ vendor │ │ ├─ aos │ │ ├─ bootstrap-icons │ │ ├─ bootstrap │ │ ├─ glightbox │ │ ├─ php-email-form │ │ └─ swiper │ └─ templates │ ├─ board │ │ ├─ detail.html │ │ ├─ detail.th.xml │ │ ├─ index.html │ │ ├─ index.th.xml │ │ ├─ report-post.html │ │ ├─ report-post.th.xml │ │ ├─ update-post.html │ │ ├─ update-post.th.xml │ │ ├─ write-post.html │ │ └─ write-post.th.xml │ ├─ common │ │ ├─ footer.html │ │ ├─ head.html │ │ ├─ header.html │ │ └─ header.th.xml │ ├─ error.html │ ├─ error.th.xml │ ├─ error │ │ ├─ error400.html │ │ ├─ error400.th.xml │ │ ├─ error403.html │ │ ├─ error403.th.xml │ │ ├─ error404.html │ │ ├─ error404.th.xml │ │ ├─ error500.html │ │ └─ error500.th.xml │ ├─ login-failed.html │ ├─ login-failed.th.xml │ ├─ login.html │ ├─ login.th.xml │ ├─ sign-up.html │ ├─ sign-up.th.xml │ └─ user │ ├─ edit.html │ ├─ edit.th.xml │ ├─ editPw.html │ ├─ editPw.th.xml │ ├─ my-info.html │ └─ my-info.th.xml └─ test └─ java └─ com └─ fastcampus └─ toyboard └─ ToyboardApplicationTests.java ``` ©generated by [Project Tree Generator](https://woochanleee.github.io/project-tree-generator)👨💻정호윤
- 회원 정보 수정 기능 구현
- 회원 정보 수정 페이지 구현
- 회원 가입 기능 구현
- 회원 가입 페이지 구현
👩💻양수현
- 게시글 기능 구현
- 게시글 신고 기능 구현
👨💻신용호
- 브렌치 관리 및 프로젝트 전반 진행 총괄
- 유저 프론트 페이지 구현
- 스프링 시큐리티 초기 설정 및 회원 로그인 구현
- 유저 DB 설정 (with Docker compose)
- 댓글/대댓글 기능 구현
👩💻강경민
- 관리자 기능 구현
- 관리자 페이지 구현










