Skip to content

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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors