Project case study
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.
At a glance
The work before the feature list
- Problem
- 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)
- Context
- Independent project
- Period
- Aug 2024 - May 2025
Ownership
What I was responsible for
- Backend Developer & Lead (KurazTech Internship)
Under the hood
Technical depth, available when it is useful
The implementation detail is grouped by system area so the page remains scannable.
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
Evidence
What can be inspected
The screenshots, source links, and walkthrough above are the currently available project evidence.
Contact



