Compensa?
Compare suplementos, protetor solar, hidratante, fraldas, papel higiênico, lava-roupas e ração pelo preço por quantidade.
Translation pending
Book verified service professionals across the UAE. 50,000+ happy customers. Rated 4.9/5.
Translation pending
CommerceTypeScript · CSSGitHub @aleeshyakrishnaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
AI-Enabled Service Booking & Management Platform - Client side
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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.