Skip to content

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.

Notifications You must be signed in to change notification settings

Elisbrown/Houseman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Houseman - Service Provider Platform

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.

🌟 Features

Core Functionality

  • 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

User Roles

  • 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

Technical Features

  • 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

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database (Supabase recommended)
  • Vercel account for deployment

Environment Variables

Create a .env.local file with the following variables:

```env

Supabase Configuration

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

Vercel Blob Storage

BLOB_READ_WRITE_TOKEN=your_vercel_blob_token

Database (if using direct PostgreSQL)

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 ```

Installation

  1. Clone the repository ```bash git clone cd houseman-app ```

  2. Install dependencies ```bash npm install ```

  3. Set up the database

    Run the SQL scripts in order: ```bash

    Execute these scripts in your PostgreSQL database

    1. scripts/01-create-tables.sql

    2. scripts/02-seed-data.sql

    3. scripts/03-create-functions.sql

    ```

  4. Start the development server ```bash npm run dev ```

  5. Open your browser Navigate to http://localhost:3000

πŸ—„οΈ Database Schema

Core Tables

  • 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

Key Features

  • 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

πŸ” Authentication

Demo Accounts

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!

Production Setup

  1. Configure Supabase authentication
  2. Set up password hashing with bcrypt
  3. Implement JWT token management
  4. Add social login providers (Google, Facebook)

πŸ“± Mobile Support

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)

🌍 Internationalization

The platform supports multiple languages:

  • English (default)
  • French (FranΓ§ais)

Language preferences are stored locally and persist across sessions.

🎨 UI/UX Features

  • 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

πŸ”§ Development

Project Structure

``` 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 ```

Key Technologies

  • 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

Development Commands

```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 ```

πŸš€ Deployment

Vercel Deployment (Recommended)

  1. Connect to Vercel

    • Push code to GitHub/GitLab
    • Connect repository to Vercel
    • Configure environment variables
  2. Database Setup

    • Create Supabase project
    • Run database migration scripts
    • Configure connection strings
  3. Environment Configuration

    • Add all required environment variables
    • Configure Vercel Blob storage
    • Set up domain (optional)

Manual Deployment

  1. Build the application ```bash npm run build ```

  2. Deploy to your hosting provider

    • Upload build files
    • Configure environment variables
    • Set up database connection

πŸ”’ Security Features

  • 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

πŸ“Š Monitoring & Analytics

  • Error Tracking: Built-in error boundaries
  • Performance Monitoring: Web Vitals tracking
  • User Analytics: Privacy-focused analytics
  • Database Monitoring: Query performance tracking

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

For support and questions:

πŸ—ΊοΈ Roadmap

Phase 1 (Current)

  • βœ… Core platform functionality
  • βœ… User authentication and profiles
  • βœ… Service marketplace
  • βœ… Real-time chat
  • βœ… Booking system

Phase 2 (Coming Soon)

  • πŸ”„ Payment integration
  • πŸ”„ Push notifications
  • πŸ”„ Advanced search filters
  • πŸ”„ Service provider analytics
  • πŸ”„ Mobile app (React Native)

Phase 3 (Future)

  • πŸ“… 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

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published