Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
- Simple, fast routing engine.
- Powerful dependency injection container.
- Multiple back-ends for session and cache storage.
- Expressive, intuitive database ORM.
- Database agnostic schema migrations.
- Robust background job processing.
- Real-time event broadcasting.
Laravel is accessible, powerful, and provides tools required for large, robust applications.
Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
You may also try the Laravel Bootcamp, where you will be guided through building a modern Laravel application from scratch.
If you don't feel like reading, Laracasts can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel Partners program.
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.
In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [email protected]. All security vulnerabilities will be promptly addressed.
The Laravel framework is open-sourced software licensed under the MIT license.
A modern Laravel-based Bible reading application with support for multiple translations and OSIS XML format.
- Multiple Bible Translations: Support for KJV, ASV, and Māori translations
- Clean Architecture: Separate parsers for different OSIS verse formats (milestone vs contained)
- Modern UI: Beautiful, responsive interface with dark mode support
- Search Functionality: Full-text search across verses
- RESTful API: JSON endpoints for programmatic access
- Comprehensive Testing: Full test suite with Pest PHP
- KJV (King James Version, 1769) - English, milestone verse format
- ASV (American Standard Version, 1901) - English, contained verse format
- MAO (Māori Version, 2009) - Māori, contained verse format
The application uses a clean parser architecture to handle different OSIS XML formats:
OsisParserInterface
- Common interface for all parsersMilestoneOsisParser
- Handles KJV-style milestone verses (sID/eID format)ContainedOsisParser
- Handles ASV/MAO-style contained verses (osisID format)OsisReader
- Main service that auto-detects format and delegates to appropriate parser
TranslationService
- Manages translation configurations and reader instancesOsisReader
- Core service for reading OSIS XML files
The application includes a comprehensive test suite built with Pest PHP:
-
Unit Tests: 52 tests covering core functionality
BibleConfigTest
- Configuration validation (13 tests)TranslationServiceTest
- Translation management (17 tests)OsisReaderTest
- Core OSIS reading functionality (6 tests)MilestoneOsisParserTest
- KJV parser testing (8 tests)ContainedOsisParserTest
- ASV/MAO parser testing (8 tests)
-
Feature Tests: HTTP route and web interface testing
- Home page functionality
- Translation switching
- Book and chapter navigation
- Search functionality
- API endpoints
- Error handling
# Run all tests
./vendor/bin/pest
# Run specific test suites
./vendor/bin/pest tests/Unit/
./vendor/bin/pest tests/Feature/
# Run with custom script (organized output)
./run-tests.sh
# Run specific test groups
./vendor/bin/pest --filter="BibleConfig"
./vendor/bin/pest --filter="TranslationService"
./vendor/bin/pest --filter="Home page"
- Total Tests: 50+ tests
- Assertions: 100+ assertions
- Coverage: Core services, parsers, configuration, and web interface
- Clone the repository
- Install dependencies:
composer install
- Copy environment file:
cp .env.example .env
- Generate application key:
php artisan key:generate
- Place OSIS XML files in
assets/
directory - Configure translations in
config/bible.php
- Serve the application:
php artisan serve
Bible translations are configured in config/bible.php
:
'translations' => [
'kjv' => [
'name' => 'King James Version',
'short_name' => 'KJV',
'language' => 'English',
'year' => '1769',
'filename' => 'kjv.osis.xml',
'description' => 'The classic King James Version...',
'is_default' => true,
],
// ... other translations
],
GET /api/books?translation={key}
- List all booksGET /api/{book}/chapters?translation={key}
- List chapters for a bookGET /api/{book}/{chapter}/verses?translation={key}
- List verses for a chapterGET /api/search?q={query}&translation={key}
- Search verses
- Place OSIS XML file in
assets/
directory - Add configuration entry in
config/bible.php
- The system will auto-detect the verse format and use the appropriate parser
- SOLID Principles: Clean separation of concerns
- Interface-based Design: Extensible parser system
- Comprehensive Testing: High test coverage with Pest
- Modern Laravel: Uses latest Laravel features and best practices
This project is open-sourced software licensed under the MIT license.