Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions joowon_myPage
Submodule joowon_myPage added at fad84c
26 changes: 26 additions & 0 deletions joowon_mypage2/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 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?

.env
1 change: 1 addition & 0 deletions joowon_mypage2/.husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pnpm exec lint-staged
3 changes: 3 additions & 0 deletions joowon_mypage2/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ignore artifacts:
build
coverage
24 changes: 24 additions & 0 deletions joowon_mypage2/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"experimentalTernaries": false,
"experimentalOperatorPosition": "start",
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": false,
"quoteProps": "as-needed",
"jsxSingleQuote": false,
"trailingComma": "all",
"bracketSpacing": true,
"objectWrap": "preserve",
"bracketSameLine": false,
"arrowParens": "always",
"requirePragma": false,
"insertPragma": false,
"proseWrap": "preserve",
"htmlWhitespaceSensitivity": "css",
"vueIndentScriptAndStyle": true,
"endOfLine": "lf",
"embeddedLanguageFormatting": "auto",
"singleAttributePerLine": false
}
13 changes: 13 additions & 0 deletions joowon_mypage2/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## 🛠️ 작업 내용

<!-- 작업 내용 (스크린샷도 같이 있으면 좋아요) -->

<br>

<br>

## 📱 작업 화면

<!-- img src "이부분에 gif파일 넣어주시면 됩니다" -->

<br>
71 changes: 71 additions & 0 deletions joowon_mypage2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# P-Tip
피팁은 학생들이 교내에서 필요한 다양한 정보를 하나의 플랫폼에서 빠르고 쉽게 접근할 수 있도록 지원하는 시스템입니다.<br>
현재 학생들이 학사 행정, 장학금, 학식 메뉴 등 여러 경로에 흩어진 정보를 찾는 데 많은 어려움을 겪고 있습니다. 피팁은 이를 해결하기 위해 **사용자 친화적인 통합 정보 제공 플랫폼**을 목표로 개발되며, 장기적으로 학교의 공식 정보 제공 채널로 확장될 가능성을 가지고 있습니다.


## [🔗사이트 방문하기](https://www.ptutip.p-e.kr/)

## 📌 주요 기능
### 💸 **솔선수범 장학금**
- 프로그램명으로 검색
- 금액, 날짜로 필터링 조회
- 프로그램 선택 시 학교 사이트 내 상세 페이지 연결
- 본인의 솔선수범 포인트 조회


## 👥 팀원 소개
| `프론트` 이지원 | `프론트` 이채린 | `프론트` 이주원 | `프론트` 김희진 |
|------|------|------|------|
| <img style="width:250px; height:250px" src = "https://github.com/gbwlxhd97.png"> | <img style="width:250px; height:250px" src = "https://github.com/Lee-chaerin.png"> | <img style="width:250px; height:250px" src = "https://github.com/Lee-chaerin.png"> | <img style="width:250px; height:250px" src = "https://github.com/Lee-chaerin.png"> |
| [gbwlxhd97](https://github.com/gbwlxhd97) | [Lee-chaerin](https://github.com/Lee-chaerin) | [Lee-chaerin](https://github.com/Lee-chaerin) | [Lee-chaerin](https://github.com/Lee-chaerin)

## 📆 개발 기간
- 2025.02.18 ~ 진행중

## 🛠️ 기술 스택 (frontend)
```sh
- TypeScript
- React + Vite
- React Query (TanStack Query)
- Zustand
- Tailwind CSS + Shadcn
- ESLint + prettier
```

## 🗂️ 폴더 구조
```sh
FRONTEND_V2/
├── public/
│ └── ...
├── src/
│ ├── components/ : 재사용 가능한 UI 컴포넌트
│ ├── constants/ : 상수 관리
│ ├── hooks/ : 커스텀 React Hooks
│ ├── icons/ : 아이콘 관리
│ ├── lib/ :
│ ├── pages/ : 페이지 컴포넌트(라우팅 단위)
│ ├── services/ : API 호출 및 관련 로직
│ ├── stores/ : 상태 관리
│ ├── types/ : TypeScript 타입 정의
│ ├── utils/ : 유틸리티 함수
| ├── App.tsx
│ └── main.tsx
├── .gitignore
├── package.json
├── vite.config.ts
└── tailwind.config.js
```

## 💻 실행 및 빌드 방법
### 1. 설치
```sh
pnpm i
```
### 2. 개발 서버 실행
```sh
pnpm dev
```
### 3. 빌드
```sh
pnpm run build
```
21 changes: 21 additions & 0 deletions joowon_mypage2/components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "tailwind.config.js",
"css": "src/index.css",
"baseColor": "zinc",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"iconLibrary": "lucide"
}
28 changes: 28 additions & 0 deletions joowon_mypage2/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import js from "@eslint/js";
import globals from "globals";
import reactHooks from "eslint-plugin-react-hooks";
import reactRefresh from "eslint-plugin-react-refresh";
import tseslint from "typescript-eslint";

export default tseslint.config(
{ ignores: ["dist"] },
{
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ["**/*.{ts,tsx}"],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
"react-hooks": reactHooks,
"react-refresh": reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
"react-refresh/only-export-components": [
"warn",
{ allowConstantExport: true },
],
},
},
);
41 changes: 41 additions & 0 deletions joowon_mypage2/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>피팁</title>
<!-- Google tag (gtag.js) -->
<script
async
src="https://www.googletagmanager.com/gtag/js?id=G-V09YJH5MM1"
></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());

gtag("config", "G-L6CWF23Z7S");
</script>

<!-- Open Graph 메타 태그 추가 -->
<meta property="og:title" content="피팁" />
<meta
property="og:description"
content="평택대 학생들을 위한 대학생활 꿀팁"
/>
<meta property="og:url" content="https://www.ptutip.p-e.kr" />
<meta property="og:type" content="website" />

<meta
property="og:image"
content="https://ptip-backend-bucket.s3.ap-northeast-2.amazonaws.com/static/meta_ptip.png"
/>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
63 changes: 63 additions & 0 deletions joowon_mypage2/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"name": "frontend_v2",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite --mode development",
"build": "tsc -b && vite build --mode production",
"lint": "eslint .",
"preview": "vite preview",
"prepare": "husky"
},
"dependencies": {
"@radix-ui/react-dropdown-menu": "^2.1.6",
"@radix-ui/react-progress": "^1.1.2",
"@radix-ui/react-scroll-area": "^1.2.3",
"@radix-ui/react-slider": "^1.2.3",
"@radix-ui/react-slot": "^1.1.2",
"@tanstack/react-query": "^5.66.9",
"axios": "^1.7.9",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"dotenv": "^16.4.7",
"lucide-react": "^0.475.0",
"next-themes": "^0.4.4",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-ga4": "^2.1.0",
"react-highlight-words": "^0.21.0",
"react-icons": "^5.5.0",
"react-router-dom": "^7.2.0",
"sonner": "^2.0.1",
"tailwind-merge": "^3.0.1",
"tailwindcss-animate": "^1.0.7",
"vite-plugin-html-env": "^1.2.8",
"zustand": "^5.0.3"
},
"devDependencies": {
"@eslint/js": "^9.19.0",
"@types/node": "^22.13.4",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"@types/react-highlight-words": "^0.20.0",
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "^10.4.20",
"eslint": "^9.19.0",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.18",
"globals": "^15.14.0",
"husky": "^9.1.7",
"lint-staged": "^15.4.3",
"postcss": "^8.5.2",
"prettier": "3.5.1",
"tailwindcss": "^3.4.17",
"typescript": "~5.7.2",
"typescript-eslint": "^8.22.0",
"vite": "^6.1.0",
"vite-plugin-svgr": "^4.3.0"
},
"lint-staged": {
"**/*": "prettier --write --ignore-unknown"
}
}
Loading