Add basic community structure (general/anonymous/topic) and features#3
Merged
Add basic community structure (general/anonymous/topic) and features#3
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds the initial “Community” domain to the NestJS backend, introducing General/Anonymous/Topic boards and Topic Posts with pagination and REST API documentation.
Changes:
- Introduces
CommunityModulewith CRUD-style endpoints for General posts, Anonymous posts (password-based), Topics, and Topic Posts. - Adds shared pagination DTOs/utilities and community-specific mapping helpers.
- Expands test coverage (services/controllers/utils) and documents the new REST API surface.
Reviewed changes
Copilot reviewed 36 out of 38 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
| src/modules/users/users.entity.ts | Switches createdAt to CreateDateColumn for users. |
| src/modules/community/topics/topics.service.ts | Implements topic create/list/detail/update logic. |
| src/modules/community/topics/topics.service.spec.ts | Unit tests for TopicsService. |
| src/modules/community/topics/topics.controller.ts | Adds REST endpoints for topics. |
| src/modules/community/topics/topics.controller.spec.ts | Controller delegation tests for topics. |
| src/modules/community/topics/topic.entity.ts | Adds Topic TypeORM entity. |
| src/modules/community/topics/topic.dto.ts | Adds topic DTOs for request/response + Swagger schemas. |
| src/modules/community/topic-posts/topic-posts.service.ts | Implements topic-post create/list/detail/update/delete logic. |
| src/modules/community/topic-posts/topic-posts.service.spec.ts | Unit tests for TopicPostsService. |
| src/modules/community/topic-posts/topic-posts.controller.ts | Adds REST endpoints for topic posts. |
| src/modules/community/topic-posts/topic-posts.controller.spec.ts | Controller delegation tests for topic posts. |
| src/modules/community/topic-posts/topic-post.entity.ts | Adds TopicPost TypeORM entity. |
| src/modules/community/topic-posts/topic-post.dto.ts | Adds topic-post DTOs for request/response + Swagger schemas. |
| src/modules/community/general/general-posts.service.ts | Implements general-board post CRUD (soft delete) + pagination. |
| src/modules/community/general/general-posts.service.spec.ts | Unit tests for GeneralPostsService. |
| src/modules/community/general/general-posts.controller.ts | Adds REST endpoints for general-board posts. |
| src/modules/community/general/general-posts.controller.spec.ts | Controller delegation tests for general-board posts. |
| src/modules/community/general/general-post.entity.ts | Adds GeneralPost TypeORM entity. |
| src/modules/community/general/general-post.dto.ts | Adds general-post DTOs for request/response + Swagger schemas. |
| src/modules/community/dto/posts.dto.ts | Shared DTO building blocks/validators for community inputs. |
| src/modules/community/community.utils.ts | Adds pagination normalization, IP masking, and entity-to-response mappers. |
| src/modules/community/community.utils.spec.ts | Unit tests for community.utils. |
| src/modules/community/community.module.ts | Wires up entities/services/controllers for Community module. |
| src/modules/community/anonymous/anonymous-posts.service.ts | Implements anonymous-board behavior incl. bcrypt password checks + masked IP responses. |
| src/modules/community/anonymous/anonymous-posts.service.spec.ts | Unit tests for AnonymousPostsService (with mocked bcrypt). |
| src/modules/community/anonymous/anonymous-posts.controller.ts | Adds REST endpoints for anonymous-board posts and extracts IP. |
| src/modules/community/anonymous/anonymous-posts.controller.spec.ts | Controller tests for anonymous-board routes and IP extraction behavior. |
| src/modules/community/anonymous/anonymous-post.entity.ts | Adds AnonymousPost TypeORM entity (incl. passwordHash select:false). |
| src/modules/community/anonymous/anonymous-post.dto.ts | Adds anonymous-post DTOs for request/response + Swagger schemas. |
| src/common/dto/pagination.dto.ts | Adds PageQueryDto and PageMetaDto shared pagination DTOs. |
| src/common/dto/index.ts | Exports pagination DTOs from common/dto. |
| src/app.module.ts | Registers CommunityModule in the application. |
| package.json | Bumps @types/express version. |
| package-lock.json | Lockfile update for @types/express bump. |
| jest.config.js | Increases Jest timeout and slow-test threshold. |
| docs/RESTAPI/errors.md | Adjusts nav order to accommodate new community docs. |
| docs/RESTAPI/community.md | Adds full REST API documentation for Community endpoints. |
| docs/RESTAPI/README.md | Adds community docs link to REST API index. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
Member
Author
|
16 comments 💀💀 |
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Member
Author
|
Looks good. I will proceed with merging. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The core concept of the Sesori project, the community, is composed of General(자유 게시판), Anonymous(익명 게시판), and Topic(토픽), which allows users to create their own communities based on specific subjects.
The features and characteristics of each board are as follows:
Topic List and Posts List support page-based pagination. For more details, refer to
docs/RESTAPI/community.mdetc.