Skip to content

Add basic community structure (general/anonymous/topic) and features#3

Merged
yulmwu merged 9 commits intomainfrom
feat/boards
Mar 20, 2026
Merged

Add basic community structure (general/anonymous/topic) and features#3
yulmwu merged 9 commits intomainfrom
feat/boards

Conversation

@yulmwu
Copy link
Member

@yulmwu yulmwu commented Mar 19, 2026

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:

  • General board – Only logged-in users can post; only the author can edit/delete; serves as the main board
  • Anonymous board – Posting is allowed regardless of login status; user name and password are required when posting; IP is stored internally
  • Topic – Community separation based on specific subjects; topics cannot be deleted; only the topic creator and administrators can modify them
  • Topic Posts – Only logged-in users can post; only the author can edit/delete; must belong to a specific Topic

Topic List and Posts List support page-based pagination. For more details, refer to docs/RESTAPI/community.md etc.

@yulmwu yulmwu added the enhancement New feature or request label Mar 19, 2026
@yulmwu yulmwu self-assigned this Mar 19, 2026
@yulmwu yulmwu requested a review from Copilot March 19, 2026 11:56
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 CommunityModule with 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.

@yulmwu
Copy link
Member Author

yulmwu commented Mar 19, 2026

16 comments 💀💀
I will do it tomorrow. ☺️

yulmwu and others added 6 commits March 20, 2026 11:29
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>
@yulmwu
Copy link
Member Author

yulmwu commented Mar 20, 2026

Looks good. I will proceed with merging.

@yulmwu yulmwu merged commit 614ee9f into main Mar 20, 2026
5 checks passed
@yulmwu yulmwu deleted the feat/boards branch March 20, 2026 02:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants