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