2026-05-22 00:58:43 -04:00
2026-05-22 00:58:43 -04:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-05-17 17:04:47 -04:00
2026-05-08 00:17:42 -04:00
2026-05-17 17:04:47 -04:00
2026-04-18 10:51:22 -04:00
2026-04-18 11:14:08 -04:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00
2026-02-10 22:11:06 -05:00

Current Software Architecture of alrahma_sunday_school

software-architecture

CodeIgniter 4 Application Starter

What is CodeIgniter?

CodeIgniter is a PHP full-stack web framework that is light, fast, flexible and secure. More information can be found at the official site.

This repository holds a composer-installable app starter. It has been built from the development repository.

More information about the plans for version 4 can be found in CodeIgniter 4 on the forums.

You can read the user guide corresponding to the latest version of the framework.

Installation & updates

composer create-project codeigniter4/appstarter then composer update whenever there is a new release of the framework.

When updating, check the release notes to see if there are any changes you might need to apply to your app folder. The affected files can be copied or merged from vendor/codeigniter4/framework/app.

Setup

Copy env to .env and tailor for your app, specifically the baseURL and any database settings.

Important Change with index.php

index.php is no longer in the root of the project! It has been moved inside the public folder, for better security and separation of components.

This means that you should configure your web server to "point" to your project's public folder, and not to the project root. A better practice would be to configure a virtual host to point there. A poor practice would be to point your web server to the project root and expect to enter public/..., as the rest of your logic and the framework are exposed.

Please read the user guide for a better explanation of how CI4 works!

Repository Management

We use GitHub issues, in our main repository, to track BUGS and to track approved DEVELOPMENT work packages. We use our forum to provide SUPPORT and to discuss FEATURE REQUESTS.

This repository is a "distribution" one, built by our release preparation script. Problems with it can be raised on our forum, or as issues in the main repository.

Server Requirements

PHP version 8.1 or higher is required, with the following extensions installed:

Warning

  • The end of life date for PHP 7.4 was November 28, 2022.
  • The end of life date for PHP 8.0 was November 26, 2023.
  • If you are still using PHP 7.4 or 8.0, you should upgrade immediately.
  • The end of life date for PHP 8.1 will be December 31, 2025.

Additionally, make sure that the following extensions are enabled in your PHP:

  • json (enabled by default - don't turn it off)
  • mysqlnd if you plan to use MySQL
  • libcurl if you plan to use the HTTP\CURLRequest library

Slip Printer Configuration

The late-slip printer can be configured via .env. The controller supports both uppercase PRINTER_* keys and dotted printer.* keys.

  • PRINTER_MODE or printer.mode: network (default), usb, or windows
    • Special: disabled/off/none skips device printing (useful in test)
  • PRINTER_HOST / PRINTER_PORT or printer.host / printer.port: Network printer TCP settings
  • PRINTER_USB_VID / PRINTER_USB_PID or printer.usb.vid / printer.usb.pid: USB printer identifiers (Linux/Mac)
  • PRINTER_WINDOWS_NAME or printer.windows.name: Windows printer share/port name (Windows only)
  • PRINTER_CHARS_PER_LINE or printer.chars_per_line: Characters per line (80mm paper ≈ 4856)
  • PRINTER_FEED_LINES or printer.feed_lines: Number of trailing blank lines before cut

Notes:

  • When PRINTER_MODE=windows is set on a non-Windows OS, the app falls back to network mode.
  • USB mode on Linux/Mac requires both VID and PID values.

Testing

The PHPUnit suite expects a real database connection so it can apply migrations and seed data from tests/_support/Database. Tests will use the tests database group defined in app/Config/Database.php, which already points to localhost and the u280815660_school schema.

Before running ./vendor/bin/phpunit or php spark test, copy env to .env.testing (or .env) and set the matching environment variables:

database.tests.hostname = localhost
database.tests.database = your_test_database
database.tests.username = your_username
database.tests.password = your_password
database.tests.DBDriver = MySQLi
database.tests.DBPrefix =

That ensures the CIUnitTestCase base class can connect, run migrations, and tear down data between tests. Once configured, run the suite with ./vendor/bin/phpunit or php spark test --testsuite=App to validate the API.

S
Description
No description provided
Readme 120 MiB
Languages
PHP 74.9%
JavaScript 23.3%
CSS 1%
Hack 0.5%
HTML 0.3%