[codex] 주일 주보 및 월기 악보 추가#90
Draft
min1336 wants to merge 2 commits into
Draft
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds support for Sunday bulletin images (2-slot upload/replace/delete by admins + public viewing page) and introduces new home/link entries for “주일 주보” and “월기 악보” via database migrations.
Changes:
- Add bulletin image storage + API (
GET /bulletin,PUT /bulletin/:slot,DELETE /bulletin/:slot) and expose uploaded images via a static route. - Add client pages for bulletin viewing (
/bulletin) and admin bulletin management (/admin/bulletin), plus an admin menu entry. - Add link seed/migrations for “주일 주보” (internal
/bulletin/) and “월기 악보” (external URL), and adjust link opening logic to support internal paths.
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| server/src/routes/index.ts | Mount bulletin router and serve bulletin images via a static route. |
| server/src/routes/bulletin.ts | New bulletin image API and upload handling. |
| server/src/model/dataSource.ts | Add repository export for BulletinImage. |
| server/src/model/bulletin.ts | New model helpers for 2-slot bulletin image storage. |
| server/src/entity/bulletinImage.ts | New TypeORM entity for bulletin images. |
| server/src/migration/1782521200000-CreateBulletinImage.ts | Create bulletin_image table. |
| server/src/migration/1782600000000-AddSundayBulletinLink.ts | Seed “주일 주보” link pointing to /bulletin/. |
| server/src/migration/1782700000000-AddMonthlySheetMusicLink.ts | Seed “월기 악보” external link. |
| client/src/types/bulletin.ts | Add client-side types for bulletin images. |
| client/src/app/link/page.tsx | Use configured axios + support internal link navigation. |
| client/src/app/bulletin/page.tsx | New public bulletin image viewer page. |
| client/src/app/admin/components/Header/index.tsx | Add “주보 관리” menu item. |
| client/src/app/admin/bulletin/page.tsx | New admin bulletin image upload/replace/delete UI. |
| .gitignore | Ignore bulletin upload directory and additional local config files. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+13
to
+16
| export const bulletinImagePath = "../bulletin/image/" | ||
| const maxBulletinImageSize = 10 * 1024 * 1024 | ||
|
|
||
| fs.mkdirSync(bulletinImagePath, { recursive: true }) |
Comment on lines
+39
to
+44
| if (link.url.startsWith("/")) { | ||
| window.location.href = link.url | ||
| return | ||
| } | ||
| window.open(link.url, "_blank") | ||
| } |
Comment on lines
+38
to
+54
| <IconButton | ||
| onClick={goBack} | ||
| sx={{ | ||
| position: "fixed", | ||
| top: 12, | ||
| left: 12, | ||
| zIndex: 9999, | ||
| color: "#111", | ||
| bgcolor: "rgba(255,255,255,0.88)", | ||
| boxShadow: "0 2px 10px rgba(0,0,0,0.14)", | ||
| "&:hover": { | ||
| bgcolor: "white", | ||
| }, | ||
| }} | ||
| > | ||
| <ArrowBackIcon /> | ||
| </IconButton> |
iubns
reviewed
Jun 29, 2026
iubns
left a comment
Member
There was a problem hiding this comment.
기능상으론 큰 문제가 없어보여요!
그래도 지난주 주보도 볼 수 있으면 좋을거 같아요~
Comment on lines
+6
to
+7
| .env.local | ||
| ormconfig.js |
Member
There was a problem hiding this comment.
이거 파일 위치가 여기가 아니텐데?!!
서버 안에 있는 .gitignore 파일에 해야하는데, 이미 되어 있을겁니다~
Comment on lines
+10
to
+35
| INSERT INTO \`link\` ( | ||
| \`id\`, | ||
| \`title\`, | ||
| \`type\`, | ||
| \`url\`, | ||
| \`displayOrder\`, | ||
| \`isActive\` | ||
| ) | ||
| SELECT | ||
| '${sundayBulletinLinkId}', | ||
| '주일 주보', | ||
| 'link', | ||
| '/bulletin/', | ||
| linkOrder.nextDisplayOrder, | ||
| true | ||
| FROM ( | ||
| SELECT COALESCE(MAX(\`displayOrder\`), 0) + 1 AS nextDisplayOrder | ||
| FROM \`link\` | ||
| ) AS linkOrder | ||
| WHERE NOT EXISTS ( | ||
| SELECT 1 | ||
| FROM \`link\` | ||
| WHERE \`id\` = '${sundayBulletinLinkId}' | ||
| OR \`title\` = '주일 주보' | ||
| OR \`url\` = '/bulletin/' | ||
| ) |
Comment on lines
+10
to
+37
| INSERT INTO \`link\` ( | ||
| \`id\`, | ||
| \`title\`, | ||
| \`type\`, | ||
| \`url\`, | ||
| \`displayOrder\`, | ||
| \`isActive\` | ||
| ) | ||
| SELECT | ||
| '${monthlySheetMusicLinkId}', | ||
| '월기 악보', | ||
| 'link', | ||
| 'https://m.site.naver.com/14Nhc', | ||
| linkOrder.nextDisplayOrder, | ||
| true | ||
| FROM ( | ||
| SELECT COALESCE(MAX(\`displayOrder\`), 0) + 1 AS nextDisplayOrder | ||
| FROM \`link\` | ||
| ) AS linkOrder | ||
| WHERE NOT EXISTS ( | ||
| SELECT 1 | ||
| FROM \`link\` | ||
| WHERE \`id\` = '${monthlySheetMusicLinkId}' | ||
| OR \`title\` = '월기 악보' | ||
| OR \`url\` = 'https://m.site.naver.com/14Nhc' | ||
| ) | ||
| `) | ||
| } |
Comment on lines
+1
to
+2
| "use client" | ||
|
|
Member
There was a problem hiding this comment.
주보는 주차별로 목록이 있고 내려가면서 쭉 볼 수 있으면 좋을거 같은데!..
딱 이번주만 보이는것보단, 지난주도 볼 수 있으면 좋지 않을까요?
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.
변경 사항
검증
주일 주보,월기 악보표시 확인git diff --check origin/main..HEAD통과