Find local craftsmen β’ Book services β’ Connect with professionals
β Star this repo β’ π Report Bug β’ π‘ Request Feature
Hirafi (ΨΨ±ΩΩ) is a platform that connects customers with skilled craftsmen and service providers in Morocco. Whether you need a plumber, electrician, carpenter, or any other skilled professional, Hirafi helps you find and book the right person for the job.
In Morocco, finding reliable craftsmen is often difficult:
- No centralized platform to find skilled workers
- Hard to verify quality and reliability
- Language barriers (Arabic/French)
- No easy way to compare prices and services
Hirafi provides:
- π Search & Discovery - Find craftsmen by category and location
- β Reviews & Ratings - See what others say about each craftsman
- π¬ Direct Communication - Chat with workers before booking
- π Location-Based - Find professionals near you
- π± Mobile App - Android app for on-the-go access
| Feature | Description |
|---|---|
| π Smart Search | Search by category, location, or skill |
| π€ Worker Profiles | Detailed profiles with portfolio and reviews |
| β Rating System | Rate and review completed jobs |
| π¬ In-App Chat | Communicate directly with workers |
| π Booking System | Schedule appointments easily |
| π Notifications | Get alerts for new messages and bookings |
| π Multi-Language | Arabic, French, and English support |
| π± Android App | Native mobile experience |
Hirafi supports various categories:
| Category | Examples |
|---|---|
| π§ Plumbing | Plumbers, pipe fitters |
| β‘ Electrical | Electricians, wiring specialists |
| πͺ΅ Carpentry | Carpenters, furniture makers |
| π¨ Painting | Painters, decorators |
| ποΈ Construction | Masons, builders |
| βοΈ HVAC | AC technicians, heating specialists |
| π Automotive | Mechanics, car electricians |
| π§Ή Cleaning | House cleaning, deep cleaning |
| πΏ Gardening | Landscapers, gardeners |
| π± More | And many more... |
- Node.js 18+
- npm or yarn
- Supabase account (free tier available)
- Android Studio (for Android development)
# 1. Clone the repository
git clone https://github.com/YASSINENFAI/hirafi.git
cd hirafi
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.example .env.local
# Edit .env.local with your Supabase credentials
# 4. Run the development server
npm run devCreate a .env.local file:
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key- π Web: http://localhost:3000
- π± Android:
npm run android:build && npx cap open android
# Build the Next.js app
npm run build
# Sync with Capacitor
npx cap sync android
# Open in Android Studio
npx cap open android- Open the project in Android Studio
- Build β Generate Signed Bundle/APK
- Follow the signing process
- Your APK will be in
android/app/build/outputs/
| Category | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript |
| Styling | Tailwind CSS 4 |
| Backend | Supabase (PostgreSQL, Auth, Storage) |
| Mobile | Capacitor 8 |
| Animation | Framer Motion |
| State | React Context, SWR |
hirafi/
βββ src/
β βββ app/ # Next.js app router pages
β βββ components/ # React components
β βββ lib/ # Utilities and helpers
β β βββ supabase/ # Supabase client setup
β βββ types/ # TypeScript types
β βββ utils/ # Utility functions
β βββ constants/ # App constants
βββ android/ # Android Capacitor project
βββ public/ # Static assets
βββ capacitor.config.ts # Capacitor configuration
Hirafi currently operates in major Moroccan cities:
- ποΈ Ψ§ΩΨ―Ψ§Ψ± Ψ§ΩΨ¨ΩΨΆΨ§Ψ‘ (Casablanca)
- ποΈ Ψ§ΩΨ±Ψ¨Ψ§Ψ· (Rabat)
- π Ω Ψ±Ψ§ΩΨ΄ (Marrakech)
- β Ψ·ΩΨ¬Ψ© (Tangier)
- πΊ ΩΨ§Ψ³ (Fes)
- ποΈ Ψ£ΩΨ§Ψ―ΩΨ± (Agadir)
- π° Ω ΩΩΨ§Ψ³ (Meknes)
- π ΩΨ¬Ψ―Ψ© (Oujda)
- π Ψ§ΩΩΩΩΨ·Ψ±Ψ© (Kenitra)
- π ΨͺΨ·ΩΨ§Ω (Tetouan)
- ποΈ Ψ§ΩΨ¬Ψ―ΩΨ―Ψ© (El Jadida)
- β°οΈ Ψ¨ΩΩ Ω ΩΨ§Ω (Beni Mellal)
Hirafi includes several security measures:
- β 2FA Authentication - Two-factor authentication support
- β Phone Validation - Moroccan phone number validation
- β Data Sanitization - Input sanitization for all forms
- β Secure Storage - Encrypted local storage
- β Session Management - Secure token refresh
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Free to use for personal and commercial projects!
If you find this project helpful, please consider:
- β Starring this repository
- π Reporting bugs via Issues
- π‘ Suggesting features via Issues
- π’ Sharing with others
Created by Yassine
- GitHub: @YASSINENFAI
- Email: azffhk@gmail.com
- Telegram: @FGMANO
β If you like this project, give it a star! β
Made with β€οΈ in Morocco π²π¦