Skip to content

Commit

Permalink
Merge pull request #4 from boostcampwm-2024/Feature/#003_환경_설정
Browse files Browse the repository at this point in the history
Feature/#3 환경 설정
  • Loading branch information
pipisebastian authored Nov 6, 2024
2 parents ce1f46d + 542a4d0 commit e20e12f
Show file tree
Hide file tree
Showing 45 changed files with 8,699 additions and 21 deletions.
3 changes: 1 addition & 2 deletions .github/ISSUE_TEMPLATE/bug-fix-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ about: 버그 픽스 템플릿
title: ''
labels: Bug
assignees: ''

---

## 🚨 버그 내용

- 어떤 상황에서 일어난 버그인지 작성해주세요.

## 예상 결과
Expand Down
3 changes: 1 addition & 2 deletions .github/ISSUE_TEMPLATE/feature-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ about: 기능 추가 템플릿
title: ''
labels: Feat
assignees: ''

---

## ✏️ 기능
## ✏️ 기능

- 추가하려는 기능에 대해 설명해주세요.

Expand Down
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/refactor-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ about: 리팩토링 템플릿
title: ''
labels: Refactor
assignees: ''

---

## 🛠️ 리팩토링 내용
Expand Down
3 changes: 1 addition & 2 deletions .github/ISSUE_TEMPLATE/request-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ about: "\U0001F3A4 불편사항 제보 템플릿"
title: ''
labels: ''
assignees: ''

---

## 🎤 불편사항 내용
## 🎤 불편사항 내용

- 어떤 불편사항이 있는지 작성해주세요.

Expand Down
8 changes: 5 additions & 3 deletions .github/ISSUE_TEMPLATE/🚨-bug-report-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ about: 버그 제보 템플릿
title: ''
labels: Bug
assignees: ''

---

## 🚨 버그 내용
Expand All @@ -13,17 +12,20 @@ assignees: ''

## 버그 발생 상황

- 어떤 상황에서 일어난 버그인지 설명 해주세요.
- 어떤 상황에서 일어난 버그인지 설명 해주세요.
- 추가적으로, 기대했던 동작은 무엇이었는지 설명해주세요.

## 접속중인 환경

- [ ] PC
- [ ] 모바일

### 사용 중인 브라우저 및 버전

- ex. chrome 125.0

### 사용 중인 기기명 및 OS 버전
### 사용 중인 기기명 및 OS 버전

- ex. iPhone 15 Pro Max, iOS 17.2.1

## 스크린샷 (선택)
1 change: 0 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

- 변경 사항이 코드에 어떻게 반영되었는지, 특히 리뷰어가 주의해야 할 부분이 있다면 상세히 설명합니다.


## 🙏 질문 사항

- [ ] 리뷰어에게 부탁하고싶은 체크리스트를 추가합니다.
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/node_modules
**/node_modules

/dist
/build
.DS_Store
.env
10 changes: 10 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"semi": true,
"trailingComma": "all",
"singleQuote": true,
"printWidth": 100,
"tabWidth": 2,
"arrowParens": "always",
"endOfLine": "auto",
"bracketSpacing": true
}
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,31 @@

![Group 38 (1)](https://github.com/user-attachments/assets/a882c5c5-b205-43cc-9a16-2f5e87dbd6aa)

## 📋 프로젝트 이름 : `Nocta`

> 🌌 밤하늘의 별빛처럼, 자유로운 인터랙션 실시간 에디터
- 실시간 기록 협업 소프트웨어입니다.

## 👩‍💻 팀 이름 : `Glassmo` (글래스모)

- 글래스모피즘의 약자

## 📅 프로젝트 기간

> 2024.10.28 ~ 2024.12.06
## 🌱 팀원 소개

| 김현훈 | 민연규 | 민정우 | 장서윤 |
|:---:|:---:|:---:|:---:|
| 김현훈 | 민연규 | 민정우 | 장서윤 |
| :-------------------------------------------------------------------: | :-------------------------------------------------------------------: | :--------------------------------------------------------------------: | :-----------------------------------------------------------------------: |
| <img src="https://github.com/hyonun321.png" width="100" height="100"> | <img src="https://github.com/Ludovico7.png" width="100" height="100"> | <img src="https://github.com/minjungw00.png" width="100" height="100"> | <img src="https://github.com/pipisebastian.png" width="100" height="100"> |
| FE+BE | FE | BE | FE |
| [@hyonun321](https://github.com/hyonun321) | [@Ludovico7](https://github.com/Ludovico7) | [@minjungw00](https://github.com/minjungw00) | [@pipisebastian](https://github.com/pipisebastian) |
| FE+BE | FE | BE | FE |
| [@hyonun321](https://github.com/hyonun321) | [@Ludovico7](https://github.com/Ludovico7) | [@minjungw00](https://github.com/minjungw00) | [@pipisebastian](https://github.com/pipisebastian) |

## 🔧 기술 스택


**Common**

<div align="left"> <img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=TypeScript&logoColor=white"/> <img src="https://img.shields.io/badge/Prettier-F7B93E?style=flat-square&logo=Prettier&logoColor=black"/> <img src="https://img.shields.io/badge/ESLint-4B32C3?style=flat-square&logo=ESLint&logoColor=white"/> <img src="https://img.shields.io/badge/Jest-C21325?style=flat-square&logo=Jest&logoColor=white"/> <img src="https://img.shields.io/badge/PNPM-F69220?style=flat-square&logo=PNPM&logoColor=white"/> <img src="https://img.shields.io/badge/Playwright-2EAD33?style=flat-square&logo=Playwright&logoColor=white"/> </div>

**Frontend**
Expand All @@ -38,7 +40,6 @@

<div align="left"> <img src="https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=Docker&logoColor=white"/> <img src="https://img.shields.io/badge/Nginx-009639?style=flat-square&logo=Nginx&logoColor=white"/> <img src="https://img.shields.io/badge/GitHub_Actions-2088FF?style=flat-square&logo=GitHubActions&logoColor=white"/> <img src="https://img.shields.io/badge/NCloud-03C75A?style=flat-square&logo=Naver&logoColor=white"/> </div>


## 🚀 프로젝트 시작 가이드

**Frontend**
Expand All @@ -62,6 +63,7 @@ npm run dev
# 프로덕션 빌드
npm run build
```

</details>

**Backend**
Expand All @@ -87,6 +89,6 @@ npm run build

## 🔗 프로젝트 링크

| 노션 | 디자인 |
|:---|:---|
| [Notion](https://abrupt-feta-9a9.notion.site/web33-12a9ff1b21c38003b600f57baa654626?pvs=4) | [Figma]()|
| 노션 | 디자인 |
| :----------------------------------------------------------------------------------------- | :-------- |
| [Notion](https://abrupt-feta-9a9.notion.site/web33-12a9ff1b21c38003b600f57baa654626?pvs=4) | [Figma]() |
24 changes: 24 additions & 0 deletions client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
50 changes: 50 additions & 0 deletions client/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

- Configure the top-level `parserOptions` property like this:

```js
export default tseslint.config({
languageOptions: {
// other options...
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
},
});
```

- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`
- Optionally add `...tseslint.configs.stylisticTypeChecked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:

```js
// eslint.config.js
import react from 'eslint-plugin-react';

export default tseslint.config({
// Set the react version
settings: { react: { version: '18.3' } },
plugins: {
// Add the react plugin
react,
},
rules: {
// other rules...
// Enable its recommended rules
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
},
});
```
86 changes: 86 additions & 0 deletions client/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import react from 'eslint-plugin-react';
import reactHooks from 'eslint-plugin-react-hooks';
import jsxA11y from 'eslint-plugin-jsx-a11y';
import { fileURLToPath } from 'url';
import { dirname, resolve } from 'path';
import rootConfig from '../eslint.config.js';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

/** @type {import('eslint').Linter.FlatConfig[]} */
export default [
...rootConfig,

{
files: ['src/**/*.{ts,tsx}'],
plugins: {
react,
'react-hooks': reactHooks,
'jsx-a11y': jsxA11y,
},
languageOptions: {
parserOptions: {
project: resolve(__dirname, './tsconfig.json'),
ecmaFeatures: {
jsx: true,
},
},
globals: {
document: true,
window: true,
navigator: true,
},
},
rules: {
// Airbnb React 규칙
'react/boolean-prop-naming': ['error', { rule: '^(is|has)[A-Z]([A-Za-z0-9]?)+' }],
'react/function-component-definition': [
'warn',
{
namedComponents: 'arrow-function',
unnamedComponents: 'arrow-function',
},
],
'react/jsx-boolean-value': ['error', 'never'],
'react/jsx-closing-bracket-location': ['error', 'line-aligned'],
'react/jsx-closing-tag-location': 'error',
'react/jsx-curly-spacing': ['error', { when: 'never', children: true }],
'react/jsx-equals-spacing': ['error', 'never'],
'react/jsx-first-prop-new-line': ['error', 'multiline'],
'react/jsx-handler-names': 'warn',
'react/jsx-indent': ['error', 2],
'react/jsx-key': 'error',
'react/jsx-max-props-per-line': ['error', { maximum: 1, when: 'multiline' }],
'react/jsx-no-bind': 'warn',
'react/jsx-no-duplicate-props': 'error',
'react/jsx-pascal-case': 'error',

// 개발 초기를 위한 규칙 완화
'react/react-in-jsx-scope': 'off',
'react/jsx-props-no-spreading': 'off',
'react/require-default-props': 'off',
'react/prop-types': 'off',

// React Hooks
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',

// JSX A11y - 개발 초기에는 경고로만
'jsx-a11y/click-events-have-key-events': 'warn',
'jsx-a11y/no-static-element-interactions': 'warn',
'jsx-a11y/label-has-associated-control': 'warn',
},
settings: {
'import/resolver': {
typescript: {
alwaysTryTypes: true,
project: resolve(__dirname, './tsconfig.json'),
},
},
react: {
version: 'detect',
},
},
},
];
13 changes: 13 additions & 0 deletions client/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React + TS</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
28 changes: 28 additions & 0 deletions client/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "client",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"lint": "eslint \"src/**/*.{ts,tsx}\" --fix",
"preview": "vite preview"
},
"dependencies": {
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@vitejs/plugin-react": "^4.3.3",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.14",
"vite": "^5.4.10",
"vite-tsconfig-paths": "^5.1.0"
}
}
1 change: 1 addition & 0 deletions client/public/vite.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit e20e12f

Please sign in to comment.