/project

FineApp

A full-stack creative services platform built to replace manual booking coordination with structured workflows for clients, creatives, and admins.

Role

Lead builder / full-stack developer

Built

From scratch

Status

Live platform with real users

Stack

Next.js · Spring Boot · MySQL · Auth0 · Cloudinary · Railway · PayFast · WebSockets · Resend · Liquibase

/overview

Why it exists

FineApp started as a response to a real operational problem. The earlier setup worked as a portfolio and discovery site, but bookings still depended on a person manually coordinating every conversation between clients and creatives.

That made scaling difficult, increased admin overhead, and kept the most important workflows outside the product. FineApp replaced that with a platform where clients and creatives can move through discovery, communication, booking, payment, and completion without admin intervention.

/what-i-built

What I built

  • Built the platform from the ground up, from repo structure and backend architecture to frontend product flows and deployment.
  • Migrated from a lightweight portfolio-style setup to a full custom platform under FineApp.co.za.
  • Implemented client, creative, admin, and super-admin workflows.
  • Built real-time messaging, booking logic, request flows, payments, notifications, media handling, reviews, audit logging, and admin tooling.
  • Integrated Auth0, PayFast, Cloudinary, Railway, WebSockets, Resend, and Liquibase-backed schema management.
/flows

Direct booking flow

Clients can browse creatives, open a conversation, agree on details, pay through the platform, and only then receive direct contact details.

  • Clients can discover a creative, review pricing and portfolio, and start a booking conversation.
  • Creatives can confirm availability and accept or negotiate booking details.
  • Bookings move through state transitions rather than ad-hoc chat only.
  • After payment is confirmed through PayFast, the platform releases client and creative contact details automatically.

Open request flow

Clients can publish an open request and let multiple creatives apply before selecting one.

  • Clients can create a request instead of targeting one creative directly.
  • Multiple creatives can apply to the same request and chat with the client.
  • When the client selects one creative, the other proposals close automatically.
  • Participants receive updates and the selected path continues into the normal paid booking lifecycle.

Creative onboarding and portfolio management

Creatives can become bookable quickly while still having control over rates, packages, media, and identity.

  • Creatives onboard through Auth0-backed signup and role assignment.
  • They can define rates, session packages, specialties, and portfolio content.
  • Media is uploaded to Cloudinary while references and ordering stay in MySQL.
  • The system is usable with minimal setup, but supports richer profile and gallery management over time.
/architecture

System architecture

FineApp is structured as a multi-service web platform with a Next.js frontend, Spring Boot backend, MySQL database, and external integrations for authentication, media, payments, email, and real-time communication.

Interactive system view

FineApp as a system

A high-level view of how users, backend modules, and external services connect across booking, requests, messaging, payments, media, and admin operations.

Core domains

Users and rolesCreatives and portfoliosBookings and proposalsRequestsMessagingPaymentsNotificationsReviewsAudit logs
/backend

Backend design and data model

FineApp’s backend is organized around distinct service domains rather than a single monolithic flow. Core modules include authentication and authorization, creatives and portfolio management, booking and request workflows, payments, notifications, reviews, gallery handling, and audit logging.

Modules

  • Auth and authorization
  • Creatives and onboarding
  • Bookings and proposals
  • Booking messages and timeline
  • Requests
  • Payments
  • Notifications
  • Reviews
  • Gallery and media
  • Audit logging
  • Admin controls

Key entities

  • User
  • Creative
  • Booking
  • BookingMessage
  • BookingPayment
  • BookingTimeline
  • BookingChangeProposal
  • Request
  • Review
  • Notification
  • GalleryImage
  • UserAuditLog
/challenges

Replacing manual coordination with product logic

The original workflow depended on a human intermediary. FineApp moved that coordination into the platform itself.

  • Discovery, communication, booking confirmation, payment, and release logic were all moved into the product.
  • This reduced admin dependency while still protecting platform commission and control.

Stateful booking and request workflows

Direct bookings and open requests share overlapping logic but have different entry points and lifecycle rules.

  • The platform supports direct bookings, open requests, multi-creative proposals, selection, payment, completion, and automatic cleanup.
  • Request flows can transition into normal booking flows, which made the state model more intricate than a simple CRUD app.

Real-time messaging and moderation

Messaging and notifications were built with WebSockets and tied directly to booking workflows.

  • Messages appear in real time between platform participants.
  • The system blocks contact details, links, and profanity before the correct booking stage.
  • Some system messages are generated automatically as state changes occur.

Security, permissions, and auditability

The platform had to be secure enough for role-based actions, payments, admin controls, and user data handling.

  • Auth0 roles and permissions separate clients, creatives, admins, and super-admins.
  • Sensitive backend actions rely on authenticated identity rather than trusting client-provided IDs.
  • Audit logs capture platform activity across bookings, media, user changes, payments, and moderation-related actions.

Performance and infrastructure tuning

Later iterations required architecture and efficiency improvements after earlier versions consumed too many resources.

  • Production usage forced a second pass on backend behavior and resource usage.
  • This led to more disciplined thinking around caching, architecture, and operational cost.
/admin

Admin and operational tooling

FineApp includes internal tooling for operating the platform, not just customer-facing pages.

Booking oversight

Admins can browse bookings, inspect details, view timelines, see messages, and check payment state from internal tools.

Creative management

Admins can review creatives, inspect profiles, adjust details, and control listing order based on business needs.

Gallery uploader

Internal tooling supports structured media upload workflows for general galleries and creator-specific content.

Audit logs

Admins can filter activity by action, actor, entity, and request metadata to investigate behavior and trace platform changes.

/audit

Audit logging and operational insight

FineApp captures audit events across booking, media, payment, request, and user workflows. Logs include actor identity, roles, action type, target entity, request metadata, HTTP outcomes, and before/after change data where relevant.

These logs are useful operationally, but they have also surfaced product insight. One example was discovering how heavily creatives relied on phones for uploads and account management, which changed how mobile experience was prioritized.

BOOKING_MESSAGE_SENTREQUEST_APPLIEDGALLERY_MEDIA_UPLOADEDPAYMENT_INITIATEDUSER_PROFILE_IMAGE_UPDATEDBOOKING_STATUS_UPDATED
/screens

Selected internal views

Audit logs

Audit logs

Filterable internal visibility into user actions, messages, uploads, and operational events.

Gallery uploader

Gallery uploader

Internal upload tooling for media workflows tied to platform galleries and creative portfolios.

Admin bookings

Admin bookings

Operational list view for booking oversight, filters, status monitoring, and quick inspection.

Booking detail

Booking detail

Detailed view into booking state, timeline, payment, and message history.

Creative management

Creative management

Admin editing and profile management for creators, specialties, and display ordering.

Creative detail editor

Creative detail editor

Profile editing controls for identity, specialties, availability, images, and other operational fields.

/results

Current state

  • Live production platform with real users and real workflows.
  • Roughly 30 creatives already onboarded.
  • Supports client, creative, admin, and super-admin behavior.
  • Handles real messaging, booking, review, and payment-related flows.
  • WhatsApp notifications are prepared for future rollout pending verification and testing.
/reflection

What this project taught me

FineApp pushed me beyond building interfaces into designing and operating a full product system. It involved workflow design, security, permissions, state modeling, integrations, admin tooling, infrastructure, and real operational tradeoffs.

It also changed how I think about backend structure and platform ownership, especially in systems where business logic is tightly coupled to trust, payments, communication, and user roles.

/back