Back to projects
HireCraft logo

HireCraft

HireCraft is a Springboot powered domestic service marketplace which provides a platform connecting service providers (e.g.plumbers, painters) to employers.

Accomplishments

  • Built stateless JWT authentication (HS512) with Spring Security and a role-based access control (RBAC) system separating Client, Service Provider, and Admin roles.
  • Implemented registration flows capturing phone numbers, plus forgot-password/reset-password logic with email delivery.
  • Seeded roles, permissions, and a default admin user via Flyway migrations.
  • Developed separate ClientProfile and ServiceProviderProfile domain models with full CRUD (occupation, hourly rate, average rating, etc.).
  • Added profile picture upload/update with default profile pictures and CV/document upload, backed by Cloudinary.
  • Built service-provider discovery/filtering so clients can find artisans by skills and ratings.
  • Implemented a booking lifecycle state machine with status tracking (Pending, In Progress, Completed, etc.) and status-update endpoints.
  • Added automated booking notification emails and client-facing booking views.
  • Built a provider dashboard with analytics — accepted-jobs counts, review counts, client metrics, and monthly booking charts (ProviderDashboardMetricsResponse, BookingChart).
  • Integrated a dual payment-gateway system: Paystack (active) and Stripe (legacy), including payment initiation and verification.
  • Implemented escrow payments, split payments, provider subaccounts/onboarding, and webhook handling.
  • Added configurable platform fee (10% default), currency, and minimum-amount settings.
  • Built a review/rating system with creation, filtering, duplicate-submission checks, and per-provider average-rating and review-count calculation.
  • Implemented real-time chat over WebSocket/STOMP (WebSocketConfig, MessageWebSocketController, SimpMessagingTemplate).
  • Built a notification system (model, service, DTOs, REST retrieval) tied to booking and review events.
  • Configured PostgreSQL with Flyway migrations applied automatically on startup (schema creation, seeding, location data).
  • Set up CORS configuration to support the separate frontend client.

Links

Skills used

Java 17Spring BootSpring Security (JWT)PostgreSQLFlywayWebSocket (STOMP)PaystackStripeCloudinaryMaven

Status

Completed
Not Live