diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..23d2ed41 --- /dev/null +++ b/.env.example @@ -0,0 +1,10 @@ +# 해당 파일을 복사해서 .env 를 만들고 실제 값을 채워주세요 +# .env 는 커밋되지 않습니다 (.gitignore) + +VITE_API_BASE_URL=# 백엔드 API 주소 + +VITE_APP_URL=# OAuth redirect_uri 조립에 사용하는 앱 주소 + +# Swagger 스펙(/api-docs) Basic 인증 헤더 - API 타입 자동 생성(pnpm generate:types)에 사용 +# 값 생성: echo -n 'swagger계정:비밀번호' | base64 → "Basic <결과>" +SWAGGER_BASIC_AUTH="Basic " diff --git a/.gitignore b/.gitignore index 3ece3c8a..8d1d3591 100644 --- a/.gitignore +++ b/.gitignore @@ -23,4 +23,6 @@ dist-ssr *.sln *.sw? -.env* \ No newline at end of file +.env + +/docs \ No newline at end of file diff --git a/README.md b/README.md index 8c2d7602..53fd5a63 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,76 @@ -# React + TypeScript + Vite +
-This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +# BOAZ 공식 홈페이지 -Currently, two official plugins are available: +**국내 최초 빅데이터 동아리 BOAZ의 공식 홈페이지** +
-- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +boaz-og -## React Compiler +🔗 Service link: https://www.bigdataboaz.com/ -The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). +
-## Expanding the ESLint configuration +## Tech Stack -If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: +- **Framework**: React 19 + TypeScript +- **Build Tool**: Vite +- **Styling**: Vanilla Extract +- **Routing**: React Router v7 +- **State Management**: TanStack Query +- **HTTP Client**: Axios +- **Linting**: ESLint, Prettier, Stylelint +- **Git Hooks**: Lefthook + Commitlint -```js -export default defineConfig([ - globalIgnores(["dist"]), - { - files: ["**/*.{ts,tsx}"], - extends: [ - // Other configs... +## Getting Started 🔥 - // Remove tseslint.configs.recommended and replace with this - tseslint.configs.recommendedTypeChecked, - // Alternatively, use this for stricter rules - tseslint.configs.strictTypeChecked, - // Optionally, add this for stylistic rules - tseslint.configs.stylisticTypeChecked, +### Installation +```bash +pnpm install +``` + +### Development +```bash +pnpm dev +``` + +### Build +```bash +pnpm build +``` + +### Lint +```bash +pnpm lint # ESLint +pnpm lint:css # Stylelint +pnpm format # Prettier +``` + +### API 타입 생성 +> Node.js를 사용하여 OpenAPI 3.0 및 3.1 스키마를 빠르게 TypeScript로 변환해주는 [OpenAPI TypeScript](https://github.com/openapi-ts/openapi-typescript) 라이브러리를 사용합니다. - // Other configs... - ], - languageOptions: { - parserOptions: { - project: ["./tsconfig.node.json", "./tsconfig.app.json"], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]); +```bash +pnpm generate:types ``` -You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: - -```js -// eslint.config.js -import reactX from "eslint-plugin-react-x"; -import reactDom from "eslint-plugin-react-dom"; - -export default defineConfig([ - globalIgnores(["dist"]), - { - files: ["**/*.{ts,tsx}"], - extends: [ - // Other configs... - // Enable lint rules for React - reactX.configs["recommended-typescript"], - // Enable lint rules for React DOM - reactDom.configs.recommended, - ], - languageOptions: { - parserOptions: { - project: ["./tsconfig.node.json", "./tsconfig.app.json"], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]); +## Project Structure +> FSD 아키텍처 layers를 적용했습니다 +``` +src/ +├── app/ # 앱 설정 (라우팅, 프로바이더, 레이아웃) +├── pages/ # 페이지 컴포넌트 +├── widgets/ # 위젯 (페이지 단위 조합 컴포넌트) +├── features/ # 기능 단위 모듈 +├── entities/ # 엔티티 (도메인 모델) +└── shared/ # 공통 유틸, API, UI 컴포넌트 ``` + +## Contributors 🌱 + +### 1기 + +| Profile | Name | GitHub | Role | +|---------|------|--------|------| +| | yooncandooit | [@yooncandooit](https://github.com/yooncandooit) | Lead | +| | onlyone130 | [@onlyone130](https://github.com/onlyone130) | Member | +| | ity0526 | [@ity0526](https://github.com/ity0526) | Member | diff --git a/public/assets/images/activity/conference.webp b/public/assets/images/activity/conference.webp index 3c5a3db7..0436b6cd 100644 Binary files a/public/assets/images/activity/conference.webp and b/public/assets/images/activity/conference.webp differ diff --git a/public/assets/images/footer/crycheesebuger-logo.svg b/public/assets/images/footer/crycheesebuger-logo.svg new file mode 100644 index 00000000..594c4927 --- /dev/null +++ b/public/assets/images/footer/crycheesebuger-logo.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/footer/hspace-logo.svg b/public/assets/images/footer/hspace-logo.svg index f19f3489..701fee8b 100644 --- a/public/assets/images/footer/hspace-logo.svg +++ b/public/assets/images/footer/hspace-logo.svg @@ -1,9 +1,45 @@ - - - - - - - - + + + + + + + + + + + + + diff --git a/public/landing.html b/public/landing.html index 6527c70b..1899d1a8 100644 --- a/public/landing.html +++ b/public/landing.html @@ -1466,6 +1466,13 @@ flex: 0 0 auto; } + .landing-footer-logo-row { + display: flex; + align-items: center; + gap: 23px; + flex-wrap: wrap; + } + .landing-footer-heading { margin: 0; color: #000000; @@ -2456,13 +2463,22 @@

함께 성장한 사람들의 목소리