diff --git a/README.md b/README.md index f42e6ef..76b9400 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,82 @@ +# 인포럼 (Inforum) + +

+ ## About the Project -개발기록을 쉽고 즐겁게, 무한한 개발 이야기 공간, 인포럼 -Link : https://www.inforum24.com +개발 기간 : 2023.06 ~ 2023.11 +개발 인원 : 3명 (FE 1, BE 2) +배포 링크 : https://www.inforum24.com + +생성형 AI를 활용한 텍스트 자동 생성 기능, 채용 도우미 서비스 등 다양한 기능을 제공하는 통합 개발자 커뮤니티 서비스 - +

## Stacks - +### FE + + + +### BE + + + +### DevOps + + + +## 화면 구성 + +| 랜딩 페이지 | 로그인 | +| :--------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | +| landing | login | +| 회원가입 | 시리즈 | +| signup | series | +| 메모 | Q&A | +| memo | q a | +| 시리즈 상세 | 메모 상세 | +| seriesDetail | memoDetail | +| Q&A 상세 | 시리즈 작성 | +| q aDetail | createSeries | +| 메모 작성 | Q&A 작성 | +| createMemo | createQ a | +| 마이페이지 | 자기소개서 작성 | +| mypage | intro | +| 채용 도우미 | 채용자 페이지 | +| job1 | job2 | -## 핵심 기능 +## 주요 기능 -#### 1. 컨텐츠 생산성 향상을 위한 기능 +### 1. 컨텐츠 생산성 향상을 위한 기능 - 생성형 AI를 활용한 텍스트 자동 생성 - 생성형 AI를 활용한 요약, 태그 자동 생성 -- 오픈소스( https://github.com/steven-tey/novel )를 활용한 블럭 기반 웹에디터 -- 시리즈 +- Notion 형식의 블럭 기반 웹에디터 +- 메모를 여러 개 모아둘 수 있는 시리즈 -#### 2. 컨텐츠 생산 동기 부여를 위한 기능 +### 2. 컨텐츠 생산 동기 부여를 위한 기능 -- Post history -- 등급 제도 +- 등급 제도 (브론즈, 실버, 골드, 플래티넘, 다이아, 인피니티) +- 작성 기록을 UI로 확인할 수 있는 Post history - 채용 도우미 서비스 + - 자기소개서 작성 + - 구직자 추천 + - 미니 면접 -#### 3. 일반 커뮤니티 기능 +### 3. 일반 기능 -- 댓글 -- 알림 -- 검색 -- 좋아요 -- Q&A +- 관심 기술 분야를 힌 눈에 확인할 수 있는 마이페이지 +- 커뮤니티 기능(댓글, 좋아요, 검색, 팔로우/팔로잉) +- 태그 기반 게시물 추천 ## 개발 현황 MVP 개발완료 및 배포 (23.08.14) 사용성 테스트 수행 (23.08.15 ~ 23.08.22) 피드백 반영 (23.08.23~) -v2 배포 (23.10.11) -v2.5 배포 (23.10.23) +배포 2 (23.10.11) +배포 3 (23.10.23) 마케팅 (23.10.25 ~ 23.11.12) -v3 배포(23.11.07) -디버깅 및 성능 개선(11.07~) +배포 4 (23.11.07) +리팩토링 및 성능 개선 (11.07~) diff --git a/src/app/me/[slug]/layout.tsx b/src/app/me/[slug]/layout.tsx index 2b051d2..bcb9790 100644 --- a/src/app/me/[slug]/layout.tsx +++ b/src/app/me/[slug]/layout.tsx @@ -135,3 +135,16 @@ export default async function MeLayout({ children, params: { slug } }: Props) { ); } + +export async function generateMetadata({ params: { slug } }: Props) { + const userId = Number(slug); + const { nickname } = await getUserInfo(userId); + if (nickname === undefined) { + notFound(); + } + + return { + title: `${nickname} - 인포럼`, + description: `${nickname}의 마이페이지입니다.`, + }; +} diff --git a/src/app/memos/layout.tsx b/src/app/memos/layout.tsx index 1413dad..aaae75d 100644 --- a/src/app/memos/layout.tsx +++ b/src/app/memos/layout.tsx @@ -7,7 +7,7 @@ import { Metadata } from 'next'; import { cookies } from 'next/headers'; export const metadata: Metadata = { - title: '인포럼 - Memos', + title: 'Memos - 인포럼', description: '인포럼 Memos 페이지입니다.', keywords: ['inforum', '인포럼', 'memo', '메모', '블로그', 'blog'], }; diff --git a/src/app/questions/layout.tsx b/src/app/questions/layout.tsx index f177ca2..725e4a2 100644 --- a/src/app/questions/layout.tsx +++ b/src/app/questions/layout.tsx @@ -8,7 +8,7 @@ import { Metadata } from 'next'; import { cookies } from 'next/headers'; export const metadata: Metadata = { - title: '인포럼 - Q&A', + title: 'Q&A - 인포럼', description: '인포럼 Q&A 페이지입니다.', keywords: ['inforum', '인포럼', 'question', 'answer', '질문', '답변', 'q&a'], }; diff --git a/src/app/ranking/page.tsx b/src/app/ranking/page.tsx index f53edfa..12f6bff 100644 --- a/src/app/ranking/page.tsx +++ b/src/app/ranking/page.tsx @@ -9,7 +9,7 @@ import { Metadata } from 'next'; import { cookies } from 'next/headers'; export const metadata: Metadata = { - title: '인포럼 - Ranking', + title: 'Ranking - 인포럼', description: '인포럼 Ranking 페이지입니다.', keywords: [ 'inforum', diff --git a/src/app/series/layout.tsx b/src/app/series/layout.tsx index af74a39..c95f7aa 100644 --- a/src/app/series/layout.tsx +++ b/src/app/series/layout.tsx @@ -7,7 +7,7 @@ import { Metadata } from 'next'; import { cookies } from 'next/headers'; export const metadata: Metadata = { - title: '인포럼 - Series', + title: 'Series - 인포럼', description: '인포럼 Series 페이지입니다.', keywords: ['inforum', '인포럼', '시리즈', 'series', '블로그', 'blog'], };