CanvasBid

Art auction API platform (Laravel 12) with real-time bidding, Chapa payment integration, Filament 4 admin panel, and comprehensive API documentation. Powers React web frontend and Flutter mobile applications.

Role
Backend Developer & Lead (KurazTech Internship)
Period
Aug 2024 - May 2025
Status
Completed

Technology Stack

Laravel 12 API Sanctum Reverb Chapa Filament 4 Spatie Permission Spatie Media Library Swagger/OpenAPI OAuth Laravel Echo Pusher AfroMessage

Platform Features

API Architecture & Documentation

  • API-first backend with Sanctum token authentication for secure endpoints
  • L5-Swagger generated OpenAPI documentation at /api/documentation
  • Versioned API endpoints (/api/v1/) with clean RESTful structure
  • Database-agnostic configuration (SQLite default, PgSQL/MySQL ready)
  • Frontend assets ready: Vite 7 + Tailwind CSS v4, Axios, Laravel Echo, Pusher JS

Domain Models & Data Architecture

  • Core models: Auctions, Bids, Payments, Categories with phone/email verification flows
  • PHP enums for auction type/status with type-safe state management
  • Advanced Eloquent scopes for filtering and live-first ordering
  • Spatie Media Library collections for artwork and winner documents
  • Nested relation managers for complex data relationships

Real-Time Bidding System

  • BidPlaced events broadcast over Laravel Reverb/Presence channels
  • Laravel Echo + Pusher JS consumption for real-time updates
  • Queued listener SendBidNotifications orchestrates outbid + artist alerts
  • Throttled email/database notification strategies for performance
  • Live bidding data synchronization across all connected clients

Payment Integration

  • Chapa controller handles payment initiation, status lookups, and webhook callbacks
  • Queue-safe verification logic for webhook processing
  • Payment states wired into auction lifecycle management
  • End-to-end payment flow with secure transaction tracking

Filament 4 Admin Panel

  • Filament resources for auctions, bids, artists, users with reusable schema/table builders
  • Global search functionality across admin resources
  • Nested relation managers for managing complex relationships
  • Media-aware infolists with preview capabilities
  • Staff can curate auctions, bids, and users without touching raw data

Authentication & Onboarding

  • Dual registration flows: magic-link email verification or instant /api/v1/register
  • Google Sign-In via Laravel Socialite for seamless OAuth
  • AfroMessage integration for phone number validation and verification
  • Phone-based role upgrades to artist with throttled verification endpoints
  • Sanctum-protected user/account routes for secure API access
  • Throttled verification endpoints to prevent abuse

Notifications System

  • Multiple ShouldQueue notification classes: ending soon, ended, outbid, admin alerts
  • Notifications stored in database + mail channels for dual delivery
  • /api/v1/notifications endpoints with unread counts and bulk actions
  • Queued listeners with throttled strategies for email and database notifications
  • Real-time notification events integrated with bidding system

Developer Tooling & Quality

  • L5-Swagger (php artisan l5-swagger:generate) for API documentation
  • PHPUnit 11 test suite scaffold for comprehensive testing
  • Laravel Pint formatter for code style consistency
  • Sail + Boost dev tooling for local development
  • Composer 'dev' script concurrently serves API, queue worker, log tailer, and Vite assets

Like what you see?

Reach out directly on any of these channels.