Houseman is a comprehensive service provider platform designed for the Central African (CEMAC) region, connecting clients with verified service providers across various categories including cleaning, electronics, beauty, automotive, and more.
- User Authentication: Secure login/registration for clients, providers, and admins
- Service Marketplace: Browse and book services from verified providers
- Real-time Chat: Communicate with service providers through integrated messaging
- Booking Management: Schedule, track, and manage service appointments
- Review System: Rate and review completed services
- KYC Verification: Document verification for service providers
- Multi-language Support: English and French language options
- Progressive Web App: Mobile-optimized experience with offline capabilities
- Clients: Browse services, book appointments, chat with providers
- Providers: List services, manage bookings, communicate with clients
- Admins: Manage users, verify KYC documents, oversee platform operations
- PostgreSQL Database: Robust data storage with Supabase
- Vercel Blob Storage: Secure file uploads for profiles and documents
- Real-time Updates: Live chat and notification system
- Responsive Design: Mobile-first approach with Tailwind CSS
- Type Safety: Full TypeScript implementation
- Modern UI: shadcn/ui components with smooth animations
- Node.js 18+
- PostgreSQL database (Supabase recommended)
- Vercel account for deployment
Create a .env.local file with the following variables:
```env
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
BLOB_READ_WRITE_TOKEN=your_vercel_blob_token
POSTGRES_URL=your_postgres_connection_string POSTGRES_PRISMA_URL=your_postgres_prisma_url POSTGRES_URL_NON_POOLING=your_postgres_non_pooling_url POSTGRES_USER=your_postgres_user POSTGRES_PASSWORD=your_postgres_password POSTGRES_DATABASE=your_postgres_database POSTGRES_HOST=your_postgres_host ```
-
Clone the repository ```bash git clone cd houseman-app ```
-
Install dependencies ```bash npm install ```
-
Set up the database
Run the SQL scripts in order: ```bash
```
-
Start the development server ```bash npm run dev ```
-
Open your browser Navigate to
http://localhost:3000
- users: User accounts and basic information
- user_profiles: Extended user profile data
- service_categories: Service category definitions
- services: Service listings from providers
- bookings: Service appointments and scheduling
- conversations: Chat conversations between users
- messages: Individual chat messages
- reviews: Service ratings and feedback
- kyc_verifications: Provider verification documents
- UUID primary keys for all tables
- JSONB columns for flexible data storage
- Automatic timestamp management
- Referential integrity with foreign keys
- Indexes for optimal query performance
For testing purposes, use these demo credentials:
Admin Account:
- Email:
admin@houseman.cm - Password:
HousemanAdmin2024!
Client Account:
- Email:
client@houseman.cm - Password:
ClientDemo123!
Provider Account:
- Email:
provider@houseman.cm - Password:
ProviderDemo123!
- Configure Supabase authentication
- Set up password hashing with bcrypt
- Implement JWT token management
- Add social login providers (Google, Facebook)
Houseman is built as a Progressive Web App (PWA) with:
- Responsive design for all screen sizes
- Offline functionality
- App-like experience on mobile devices
- Push notification support (coming soon)
The platform supports multiple languages:
- English (default)
- French (FranΓ§ais)
Language preferences are stored locally and persist across sessions.
- Dark/Light Mode: System-aware theme switching
- Smooth Animations: Framer Motion powered transitions
- Accessible Design: WCAG compliant interface
- Modern Components: shadcn/ui component library
- Responsive Layout: Mobile-first design approach
``` houseman-app/ βββ app/ # Next.js app directory β βββ api/ # API routes β βββ globals.css # Global styles β βββ layout.tsx # Root layout β βββ page.tsx # Home page βββ components/ # React components β βββ ui/ # Base UI components β βββ auth/ # Authentication components β βββ dashboard/ # Dashboard components β βββ services/ # Service-related components β βββ providers/ # Context providers βββ hooks/ # Custom React hooks βββ lib/ # Utility libraries βββ types/ # TypeScript type definitions βββ scripts/ # Database scripts βββ public/ # Static assets ```
- Framework: Next.js 14 with App Router
- Database: PostgreSQL with Supabase
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Type Safety: TypeScript
- Authentication: Custom JWT implementation
- File Storage: Vercel Blob
- Deployment: Vercel Platform
```bash npm run dev # Start development server npm run build # Build for production npm run start # Start production server npm run lint # Run ESLint npm run type-check # Run TypeScript checks ```
-
Connect to Vercel
- Push code to GitHub/GitLab
- Connect repository to Vercel
- Configure environment variables
-
Database Setup
- Create Supabase project
- Run database migration scripts
- Configure connection strings
-
Environment Configuration
- Add all required environment variables
- Configure Vercel Blob storage
- Set up domain (optional)
-
Build the application ```bash npm run build ```
-
Deploy to your hosting provider
- Upload build files
- Configure environment variables
- Set up database connection
- Password Hashing: bcrypt for secure password storage
- Input Validation: Server-side validation for all inputs
- SQL Injection Protection: Parameterized queries
- XSS Prevention: Content sanitization
- CSRF Protection: Built-in Next.js protection
- File Upload Security: Type and size validation
- Error Tracking: Built-in error boundaries
- Performance Monitoring: Web Vitals tracking
- User Analytics: Privacy-focused analytics
- Database Monitoring: Query performance tracking
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Email: support@houseman.cm
- Documentation: [Project Wiki]
- Issues: [GitHub Issues]
- β Core platform functionality
- β User authentication and profiles
- β Service marketplace
- β Real-time chat
- β Booking system
- π Payment integration
- π Push notifications
- π Advanced search filters
- π Service provider analytics
- π Mobile app (React Native)
- π AI-powered recommendations
- π Video calling integration
- π Multi-vendor marketplace
- π Advanced reporting
- π API for third-party integrations
Built with β€οΈ for the CEMAC region by Sunyin Elisbrown