Compensa?
보충제·선크림·보습제·기저귀·화장지·세제·사료를 용량당 가격으로 비교
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기AI-Enabled Service Booking & Management Platform - Client side
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Frontend application for ProServe, built with Next.js, TypeScript, and the App Router. This application provides the user interface for managing services, authentication, dashboards, and other platform features.
src/
├── app/ # App Router pages and layouts
├── components/ # Reusable UI components
├── features/ # Feature-specific modules
├── hooks/ # Custom React hooks
├── lib/ # Shared utilities and configurations
├── services/ # API service functions
├── types/ # TypeScript interfaces and types
├── utils/ # Helper functions
├── constants/ # Application constants
├── styles/ # Global styles
└── middleware.ts # Application middleware
Ensure you have the following installed:
Check versions:
node -v
npm -v
Clone the repository:
git clone <repository-url>
Navigate to the project:
cd proserve-frontend
Install dependencies:
npm install
Create a .env.local file in the project root.
Example:
NEXT_PUBLIC_API_BASE_URL=http://localhost:5000/api
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
Do not commit
.env.localto source control.
Start the development server:
npm run dev
Application runs at:
http://localhost:3000
npm run build
Start the production server:
npm start
Run ESLint:
npm run lint
| Command | Description |
|---|---|
npm run dev | Start development server |
npm run build | Build the application |
npm start | Run production build |
npm run lint | Run ESLint |
npm test | Run unit tests (Vitest) |
npm run test:watch | Run tests in watch mode |
The frontend communicates with the backend through REST APIs.
Base URL is configured using:
NEXT_PUBLIC_API_BASE_URL
All API calls should be implemented inside:
src/services/
'use client').Example:
interface ButtonProps {
title: string;
}
export default function Button({ title }: ButtonProps) {
return <button>{title}</button>;
}
| Item | Convention |
|---|---|
| Components | PascalCase |
| Hooks | camelCase (useAuth) |
| Functions | camelCase |
| Variables | camelCase |
| Route folders | kebab-case |
| Constants | UPPER_SNAKE_CASE |
Use:
Validation schemas should be stored close to the feature or in a dedicated validation folder.
The services page (src/app/services/page.tsx) keeps only UI. Its logic lives in reusable hooks:
| Hook | What it does |
|---|---|
useServicesData | Loads categories and services, maps API data, falls back to demo data, and cancels in-flight requests (AbortController) on unmount or retry. |
useServiceFilters | Search, category, location and sort state. The URL is the source of truth, so filtered results are shareable and survive refresh. Category/location update the URL immediately; search updates it only after typing stops. |
useDebouncedValue | Returns a value only after it has stopped changing for a delay (300 ms for search). |
Filtering and sorting are pure functions in src/lib/service-filters.ts, so they are tested without rendering. Tests live next to the code in __tests__ folders.
Use:
Avoid unnecessary global state.
Use:
@/components
@/features
@/hooks
@/services
@/utils
@/types
Avoid long relative imports like:
../../../components/Button
Create a new branch:
git checkout -b feature/feature-name
Commit changes:
git add .
git commit -m "feat: add login page"
Push changes:
git push origin feature/feature-name
any.This project is proprietary and intended for internal use unless otherwise specified.