|
1 | | - |
2 | 1 | # **Archi Semtle Web Dev** (FE) |
3 | 2 |
|
4 | 3 | ## 📝 **프로젝트 소개** |
5 | | -... |
6 | | - |
7 | 4 |
|
8 | | - |
9 | | -## 🚀 **주요 기능** |
10 | 5 | ... |
11 | 6 |
|
| 7 | +## 🚀 **주요 기능** |
12 | 8 |
|
| 9 | +... |
13 | 10 |
|
14 | 11 | ## 📂 **프로젝트 구조** |
| 12 | + |
15 | 13 | ```plaintext |
16 | 14 | / |
| 15 | +├── .vscode/ # VSCode 환경 설정 |
| 16 | +│ ├── settings.json # VSCode 특정 프로젝트 설정 (예: 포맷터, 들여쓰기 등) |
| 17 | +| |
17 | 18 | ├── documents/ # README 모음 |
18 | 19 | ├── public/ # 정적 파일 (이미지, 폰트 등) |
19 | 20 | ├── src/ # 소스 코드 |
20 | 21 | │ ├── app/ # Next.js App Router 관련 파일 |
21 | | -│ │ ├── fonts/ # 웹폰트 관련 파일 |
22 | | -│ │ ├── favicon.ico # 파비콘 파일 |
23 | | -│ │ ├── globals.css # 전역 스타일링 |
24 | | -│ │ ├── layout.tsx # 레이아웃 컴포넌트 |
25 | | -│ │ └── page.tsx # 루트 페이지 컴포넌트 |
26 | | -│ ├── components/ # 재사용 가능한 컴포넌트 |
27 | | -│ ├── pages/ # (선택) 기존 Next.js Pages 라우팅 (사용 시) |
28 | | -│ ├── styles/ # CSS 및 스타일링 관련 파일 |
29 | | -│ ├── utils/ # 유틸리티 함수 및 공통 로직 |
| 22 | +│ │ ├── about/ # "소개" 페이지 |
| 23 | +│ │ │ ├── page.tsx # /about 경로의 컴포넌트 |
| 24 | +│ │ ├── activities/ # "활동" 페이지 |
| 25 | +│ │ ├── executive/ # "집행부" 페이지 |
| 26 | +│ │ ├── history/ # "History" 페이지 |
| 27 | +│ │ ├── login/ # 로그인 페이지 |
| 28 | +│ │ ├── mypage/ # "마이페이지" 디렉토리 |
| 29 | +│ │ ├── organization/ # "조직도" 페이지 |
| 30 | +│ │ ├── projects/ # 프로젝트 관련 디렉토리 |
| 31 | +│ │ │ ├── page.tsx # /projects 경로의 메인 페이지 |
| 32 | +│ │ │ ├── completed/ # 완료된 프로젝트 관련 디렉토리 |
| 33 | +│ │ │ │ ├── [projectID]/ # 동적 경로: 특정 완료된 프로젝트 상세 페이지 |
| 34 | +│ │ │ │ ├── page.tsx # /projects/completed/:projectID |
| 35 | +│ │ │ ├── recruit/ # 프로젝트 모집 관련 디렉토리 |
| 36 | +│ │ │ ├── [projectID]/ # 동적 경로: 특정 모집 프로젝트 상세 페이지 |
| 37 | +│ │ │ ├── page.tsx # /projects/recruit/:projectID |
| 38 | +│ │ ├── recruiting/ # "가입안내" 페이지 |
| 39 | +│ │ ├── regulations/ # "학회회칙" 페이지 |
| 40 | +│ │ ├── schedule/ # "학회일정" 페이지 |
| 41 | +│ │ ├── secret/ # "Secret 노트" 페이지 |
| 42 | +│ │ ├── fonts/ # 웹폰트 관련 파일 |
| 43 | +│ │ ├── favicon.ico # 웹사이트의 파비콘 설정 파일 |
| 44 | +│ │ ├── global-error.tsx # 전역 에러 페이지 (에러 발생 시 보여질 컴포넌트) |
| 45 | +│ │ ├── layout.tsx # 공통 레이아웃 (Header, Footer 포함) |
| 46 | +│ │ ├── not-found.tsx # 404 Not Found 페이지 |
| 47 | +│ │ ├── page.tsx # 메인 홈 페이지 ("/" 경로) |
| 48 | +│ ├── components/ # 재사용 가능한 UI 컴포넌트 디렉토리 |
| 49 | +│ │ ├── Button.tsx # 재사용 가능한 버튼 컴포넌트 |
| 50 | +│ │ ├── Footer.tsx # 하단 공통 Footer 컴포넌트 |
| 51 | +│ │ ├── Header.tsx # 상단 공통 Header 컴포넌트 |
| 52 | +│ │ ├── Loader.tsx # 로딩 애니메이션 컴포넌트 |
| 53 | +│ │ ├── Navigation.tsx # 네비게이션 바 컴포넌트 |
| 54 | +│ ├── styles/ # 전역 스타일 관리 |
| 55 | +│ │ ├── global.css # 프로젝트 전역 스타일 파일 |
| 56 | +│ ├── types/ # TypeScript 타입 정의 디렉토리 |
| 57 | +│ │ ├── api.ts # API 요청/응답에 사용되는 타입 정의 |
| 58 | +│ │ ├── props.ts # 컴포넌트 Props에 사용되는 타입 정의 |
| 59 | +│ ├── utils/ # 유틸리티 함수 디렉토리 |
| 60 | +│ ├── api.ts # API 호출 관련 함수 |
| 61 | +| |
| 62 | +├── .gitattributes # Git 속성 관리 (예: 줄바꿈 설정, 파일 속성 제어) |
30 | 63 | ├── .gitignore # Git에 포함하지 않을 파일 설정 |
| 64 | +├── .prettierrc # Prettier 코드 포맷터 설정 파일 |
31 | 65 | ├── eslintrc.json # ESLint 설정 파일 |
32 | 66 | ├── next-env.d.ts # TypeScript Next.js 환경 정의 |
33 | 67 | ├── next.config.ts # Next.js 설정 파일 |
|
39 | 73 | ├── tsconfig.json # TypeScript 설정 파일 |
40 | 74 | ``` |
41 | 75 |
|
42 | | - |
43 | | - |
44 | 76 | ## 🔧 **설치 및 실행** |
45 | 77 |
|
46 | 78 | ### 1. **프로젝트 가져오기** |
| 79 | + |
47 | 80 | ```bash |
48 | 81 | git clone https://github.com/Lab-Semtle/semtle-web-client-0.2.git |
49 | 82 | ``` |
50 | 83 |
|
51 | 84 | ### 2. **브랜치 분기** |
| 85 | + |
52 | 86 | ```bash |
53 | 87 | git checkout -b feature/#[이슈번호] |
54 | 88 | git push origin feature/#[이슈번호] |
55 | 89 | ``` |
56 | 90 |
|
57 | 91 | ### 3. **패키지 설치** |
| 92 | + |
58 | 93 | ```bash |
59 | 94 | npm install |
60 | 95 | ``` |
61 | 96 |
|
62 | 97 | ### 4. **개발 서버 실행** |
| 98 | + |
63 | 99 | ```bash |
64 | 100 | npm run dev |
65 | 101 | ``` |
66 | | -- 실행 후 브라우저에서 [http://localhost:3000](http://localhost:3000)을 열어 확인하세요. |
67 | | - |
68 | | - |
69 | | - |
70 | 102 |
|
| 103 | +- 실행 후 브라우저에서 [http://localhost:3000](http://localhost:3000)을 열어 확인하세요. |
71 | 104 |
|
72 | 105 | ## 🌟 **기술 스택** |
73 | | -... |
74 | | - |
75 | 106 |
|
| 107 | +... |
76 | 108 |
|
77 | 109 | ## 📜 **스크립트** |
78 | | -... |
79 | 110 |
|
| 111 | +... |
80 | 112 |
|
81 | 113 | ## 🛠️ **환경 변수 설정** |
| 114 | + |
82 | 115 | 프로젝트의 민감한 정보를 관리하기 위해 `.env` 파일을 사용합니다. |
83 | 116 |
|
84 | 117 | ### `.env.example` |
| 118 | + |
85 | 119 | ```plaintext |
86 | 120 | API_URL= |
87 | 121 | DATABASE_URL= |
88 | 122 | NEXT_PUBLIC_API_KEY= |
89 | 123 | ``` |
| 124 | + |
90 | 125 | - `.env` 파일을 작성한 후, 위의 형식에 맞게 정보를 추가하세요. |
91 | 126 | - `.env` 파일은 `.gitignore`에 포함되어야 합니다. |
92 | 127 |
|
93 | | - |
94 | | - |
95 | 128 | ## 🧑 **TEAM** |
96 | | -... |
97 | | - |
98 | 129 |
|
99 | | - |
100 | | -## 🔗 **참고 자료** |
101 | 130 | ... |
102 | 131 |
|
| 132 | +## 🔗 **참고 자료** |
103 | 133 |
|
| 134 | +... |
104 | 135 |
|
105 | 136 | ## 🐞 **문제 및 개선 사항** |
106 | | -... |
| 137 | + |
| 138 | +... |
0 commit comments