Testa is a Galician term used in printing and binding referring to the top edge of a book.
It is also a comprehensive Laravel package that extends the Lunar e-commerce platform. Testa offers an opinionated, feature-rich solution specifically designed for building advanced, content-driven online stores for bookshops.
This package is tailored for bookshops that utilize Geslib as their primary management system. It relies on the numaxlab/lunar-geslib package for the core Geslib integration and complements it by providing a ready-to-use storefront implementation.
Furthermore, Testa expands Lunar's capabilities by integrating a full-featured educational platform, a membership system, news and events management, and other key tools.
Testa was designed in a collaboration between Traficantes de Sueños, Katakrak and NUMAX.
- Content Management: Create and manage static pages, promotional banners, and image slides.
- Education Platform:
- Manage courses, modules, and topics.
- Dedicated "Course" product type in Lunar.
- Media Library:
- Upload and manage Audio, Video, and Document files.
- Control media visibility (e.g., public, members-only).
- Membership System:
- Define membership tiers and plans.
- Manage subscriptions and member-exclusive benefits.
- News & Events:
- Publish articles.
- Create and manage events with types and venues.
- Editorial Area: Manage reviews and special "editorial" collections.
- Donation System: Includes a pre-configured, flexible "Donation" product type.
- Lunar & Filament Integration:
- Extends core Lunar models like
ProductandCustomer. - Extends the Filament admin panel for
ProductandCustomerresources.
- Extends core Lunar models like
- Provides a rich set of Livewire and Blade components for the storefront.
- PHP ^8.4
- Laravel 12
- LunarPHP
- Lunar Geslib
After following the official Laravel installation instructions to create a new project, you can install this package via Composer:
composer require numaxlab/testaThe package service provider will be auto-discovered by Laravel.
-
Add the Filament Plugins to the Lunar Panel in the register method of your
AppServiceProviderLunarPanel::panel(function ($panel) { return $panel ->plugins([ GeslibPlugin::make(), TestaPlugin::make(), ShippingPlugin::make(), SpatieLaravelTranslatablePlugin::make() ->defaultLocales(['es', 'en']), // Setup the languages you want to use ]); })->register();
-
Run the Installer Commands
This is a crucial step. The installer commands will set up required Lunar attributes, collection groups, tags, and seed initial data needed for the package to function correctly.
php artisan lunar:geslib:install php artisan lunar:testa:install
The package uses Pest for testing. You can run the tests using the following command:
composer testOr
./vendor/bin/pestPlease see CONTRIBUTING.md for details.
The MIT License (MIT). Please see License File for more information.
- Adrián Pardellas Blunier (adrian@numax.org)
- X. Carlos Hidalgo (carlos@numax.org)