English | نسخه فارسی
A modern, full-stack barbershop booking application designed with a focus on User Experience (UX) and User Interface (UI). This project is developed to be bilingual (Persian/English) and uses local storage for a seamless offline-first demo experience.
- Bilingual Support (i18n): Seamlessly switch between Persian (RTL) and English (LTR) across the entire application.
- Custom Branding: Integrated ErPyCode personal branding and digital signatures throughout the UI.
- Offline-First Storage: Uses Browser LocalStorage to persist data without the need for a database (Perfect for portfolio demos).
- Smart AI Assistant: Integrated Google Gemini AI to answer customer queries and provide style consultations.
- Advanced Admin Panel: Complete management of services, appointments, and shop settings.
This project was designed and developed by ErPyCode.
Usage Terms: You are free to use this project in your portfolio or for your own projects, provided that:
- You credit the original developer (ErPyCode) in your project's Credits section or README file.
- You do not remove the digital signatures present in the code or UI without permission.
- If significant changes are made, please still link back to the original source.
- Frontend: React.js, Vite, Tailwind CSS
- State & Storage: LocalStorage API
- AI Integration: Google Gemini API
- Animations: Framer Motion (via Motion for React)
- Icons: Lucide React
- Clone the repository:
git clone https://github.com/ErPyCode/styleflow-barbershop.git- Install dependencies:
npm install- Create a
.envfile and add your Gemini API key:
GEMINI_API_KEY=your_key_here- Run the development server:
npm run devBy default, this project uses LocalStorage. If you wish to connect it to a real database like Supabase:
- Open
supabaseClient.tsand initialize your Supabase client. - In
services/dataService.ts, replace the LocalStorage logic with Supabase fetch/upsert calls. - Define your
bookingsandservicestables following the structures mentioned in the project documentation.
- Remove "About Project" Page: Simply remove the
/aboutroute inApp.tsxand hide the navigation items incomponents/Layout.tsx. - Update Contact Info: Social links and contact details are located in
pages/AboutProject.tsx. - Change Branding: Project titles and banners can be updated in
services/LanguageContext.tsx.
Crafted with ❤️ by @ErPyCode GitHub | Telegram | Email
- URL:
/admin/login - Default Username:
admin - Default Password:
admin
Designed for portfolio showcase.