RESEARCH AND IMPLEMENTATION DECISIONS
17 October 2026

Scope and method
This catalogue verifies 51 distinct public project resources using their official repository metadata. The same catalogue informs both Table 4 extraction and attendance import; it is not a claim that 51 systems were installed or individually tested. Decisions below are engineering judgments for this cPanel deployment. Repository descriptions establish project purpose, not compatibility with this exact application. Only the dependencies in composer.lock and the bundled UI assets are installed.

Table 4 import alternatives
1. PHP-native Excel plus PDF text extraction: SELECTED. PhpSpreadsheet handles XLS/XLSX, Smalot PDFParser handles searchable PDF text. This avoids a permanent Python/Java process on shared cPanel hosting. Structured preview and lecturer confirmation are mandatory. Only explicitly identifiable week rows are mapped; unmapped activities remain blank for academic completion.
2. Tabula/Camelot/pdfplumber: useful for complex PDF geometry, but require Java/Python or a separate service. Suitable for local preparation; not installed in the hosted application.
3. OCRmyPDF/Tesseract/PaddleOCR: useful for scanned documents, but require additional native binaries and layout verification. Scanned input must be preprocessed locally in this release.
4. Docling/Unstructured/table-transformer: candidates for a dedicated document-processing service. Higher resource and deployment requirements make them unsuitable as required shared-hosting components in this build.
5. AI-only extraction: not selected as the authority for curriculum facts. Optional self-hosted Ollama supports draft advice; the application does not let model output approve records or write academic facts automatically.

Attendance import alternatives
1. Native streaming CSV: SELECTED. Fixed, documented headers; strict UTF-8 and DD/MM/YYYY checks; duplicate student checks; matching semester, lecturer and assigned programme codes/names; atomic commit after preview.
2. PhpSpreadsheet CSV import: viable but unnecessary for the fixed CSV contract; retained for Excel document handling instead.
3. League CSV: a viable specialised parser, but the current import does not require an additional dependency beyond PHP fgetcsv.
4. Laravel Excel/OpenSpout: useful at larger scale. This application limits imports to 500 students and uses direct PhpSpreadsheet for template workbooks.
5. Cloud document AI: not a default because it would require service configuration, cost and transmission of institutional data. No paid service is required for the implemented import.

UI, approval and document decisions
AdminLTE 4.0.0 and Bootstrap 5.3.8 are bundled locally; no CDN is required at runtime. Chart.js 4.5.1 provides aggregate status graphics. Laravel policies are implemented in a central Access service with scoped queries; workflow transitions use database transactions and row locks. Submitted snapshots and signatures are encrypted with the application key, and approvals retain their submission digest. This is application-level electronic signing, not a certificate-based qualified signature or an independent tamper-proof archive.
Original documents are kept privately. Original-template PDFs now use FPDI/tFPDF with offline-converted original backgrounds. This preserves source geometry without requiring Office conversion software on cPanel; final visual acceptance is still required. The three original XLSX templates can also be populated and exported, with explicit capacity limits. Original Excel formulas and layout are retained, subject to Excel/LibreOffice rendering differences.

Verified project resources

1. laravel/framework
   Official source: https://github.com/laravel/framework
   Relevance: Application framework.
   Repository description: Laravel is a web application framework with expressive, elegant syntax.

2. ColorlibHQ/AdminLTE
   Official source: https://github.com/ColorlibHQ/AdminLTE
   Relevance: Responsive admin interface.
   Repository description: AdminLTE - Free admin dashboard template based on Bootstrap 5

3. twbs/bootstrap
   Official source: https://github.com/twbs/bootstrap
   Relevance: Mobile form layout.
   Repository description: The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

4. PHPOffice/PhpSpreadsheet
   Official source: https://github.com/PHPOffice/PhpSpreadsheet
   Relevance: Excel and attendance templates.
   Repository description: A pure PHP library for reading and writing spreadsheet files

5. smalot/pdfparser
   Official source: https://github.com/smalot/pdfparser
   Relevance: Table 4 PDF text extraction.
   Repository description: PdfParser, a standalone PHP library, provides various tools to extract data from a PDF file.

6. PHPOffice/PHPWord
   Official source: https://github.com/PHPOffice/PHPWord
   Relevance: Office form templates.
   Repository description: A pure PHP library for reading and writing word processing documents

7. dompdf/dompdf
   Official source: https://github.com/dompdf/dompdf
   Relevance: PHP PDF rendering.
   Repository description: HTML to PDF converter for PHP

8. mpdf/mpdf
   Official source: https://github.com/mpdf/mpdf
   Relevance: PDF rendering alternative.
   Repository description: PHP library generating PDF files from UTF-8 encoded HTML

9. tecnickcom/TCPDF
   Official source: https://github.com/tecnickcom/TCPDF
   Relevance: PDF rendering alternative.
   Repository description: Deprecated: PHP PDF library, superseded by tc-lib-pdf (https://github.com/tecnickcom/tc-lib-pdf)

10. Setasign/FPDI
   Official source: https://github.com/Setasign/FPDI
   Relevance: Original PDF overlay.
   Repository description: FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF.

11. barryvdh/laravel-dompdf
   Official source: https://github.com/barryvdh/laravel-dompdf
   Relevance: Laravel PDF integration.
   Repository description: A DOMPDF Wrapper for Laravel

12. SpartnerNL/Laravel-Excel
   Official source: https://github.com/SpartnerNL/Laravel-Excel
   Relevance: Spreadsheet import alternative.
   Repository description: 🚀 Supercharged Excel exports and imports in Laravel

13. openspout/openspout
   Official source: https://github.com/openspout/openspout
   Relevance: Large spreadsheet import.
   Repository description:  Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way 

14. thephpleague/csv
   Official source: https://github.com/thephpleague/csv
   Relevance: CSV validation alternative.
   Repository description: CSV data manipulation made easy in PHP

15. tabulapdf/tabula
   Official source: https://github.com/tabulapdf/tabula
   Relevance: PDF table review.
   Repository description: Tabula is a tool for liberating data tables trapped inside PDF files

16. tabulapdf/tabula-java
   Official source: https://github.com/tabulapdf/tabula-java
   Relevance: PDF table extraction.
   Repository description: Extract tables from PDF files

17. camelot-dev/camelot
   Official source: https://github.com/camelot-dev/camelot
   Relevance: PDF table extraction alternative.
   Repository description: A Python library to extract tabular data from PDFs

18. jsvine/pdfplumber
   Official source: https://github.com/jsvine/pdfplumber
   Relevance: PDF geometry inspection.
   Repository description: Plumb a PDF for detailed information about each char, rectangle, line, et cetera — and easily extract text and tables.

19. py-pdf/pypdf
   Official source: https://github.com/py-pdf/pypdf
   Relevance: PDF inspection.
   Repository description: A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files

20. ocrmypdf/OCRmyPDF
   Official source: https://github.com/ocrmypdf/OCRmyPDF
   Relevance: Scanned PDF preprocessing.
   Repository description: OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched

21. tesseract-ocr/tesseract
   Official source: https://github.com/tesseract-ocr/tesseract
   Relevance: Local OCR.
   Repository description: Tesseract Open Source OCR Engine (main repository)

22. PaddlePaddle/PaddleOCR
   Official source: https://github.com/PaddlePaddle/PaddleOCR
   Relevance: OCR alternative.
   Repository description: Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100+ languages.

23. JaidedAI/EasyOCR
   Official source: https://github.com/JaidedAI/EasyOCR
   Relevance: OCR alternative.
   Repository description: Ready-to-use OCR with 80+ supported languages and all popular writing scripts including Latin, Chinese, Arabic, Devanagari, Cyrillic and etc.

24. docling-project/docling
   Official source: https://github.com/docling-project/docling
   Relevance: Document extraction alternative.
   Repository description: Get your documents ready for gen AI

25. Unstructured-IO/unstructured
   Official source: https://github.com/Unstructured-IO/unstructured
   Relevance: Document processing alternative.
   Repository description: Convert documents to structured data effortlessly. Unstructured is open-source ETL solution for transforming complex documents into clean, structured formats for language models.  Visit our website to learn more about our enterprise grade Platform product for production grade workflows, partitioning, enrichments, chunking and embedding.

26. microsoft/table-transformer
   Official source: https://github.com/microsoft/table-transformer
   Relevance: Table detection alternative.
   Repository description: Table Transformer (TATR) is a deep learning model for extracting tables from unstructured documents (PDFs and images). This is also the official repository for the PubTables-1M dataset and GriTS evaluation metric.

27. ollama/ollama
   Official source: https://github.com/ollama/ollama
   Relevance: Self-hosted AI assistant.
   Repository description: Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.

28. ggml-org/llama.cpp
   Official source: https://github.com/ggml-org/llama.cpp
   Relevance: Local inference alternative.
   Repository description: LLM inference in C/C++

29. vllm-project/vllm
   Official source: https://github.com/vllm-project/vllm
   Relevance: AI serving alternative.
   Repository description: A high-throughput and memory-efficient inference and serving engine for LLMs

30. open-webui/open-webui
   Official source: https://github.com/open-webui/open-webui
   Relevance: AI interface reference.
   Repository description: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

31. spatie/laravel-permission
   Official source: https://github.com/spatie/laravel-permission
   Relevance: Role permissions alternative.
   Repository description: Associate users with roles and permissions

32. spatie/laravel-activitylog
   Official source: https://github.com/spatie/laravel-activitylog
   Relevance: Audit logging alternative.
   Repository description: Log activity inside your Laravel app

33. spatie/laravel-medialibrary
   Official source: https://github.com/spatie/laravel-medialibrary
   Relevance: Private evidence handling alternative.
   Repository description: Associate files with Eloquent models

34. spatie/laravel-backup
   Official source: https://github.com/spatie/laravel-backup
   Relevance: Backup reference.
   Repository description: A package to backup your Laravel app

35. laravel/fortify
   Official source: https://github.com/laravel/fortify
   Relevance: Authentication reference.
   Repository description: Backend controllers and scaffolding for Laravel authentication.

36. laravel/sanctum
   Official source: https://github.com/laravel/sanctum
   Relevance: API authentication reference.
   Repository description: Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.

37. laravel/horizon
   Official source: https://github.com/laravel/horizon
   Relevance: Queue operations reference.
   Repository description: Dashboard and code-driven configuration for Laravel queues.

38. laravel/telescope
   Official source: https://github.com/laravel/telescope
   Relevance: Development diagnostics reference.
   Repository description: An elegant debug assistant for the Laravel framework.

39. laravel/pint
   Official source: https://github.com/laravel/pint
   Relevance: PHP formatting.
   Repository description: Laravel Pint is an opinionated PHP code style fixer for minimalists.

40. sebastianbergmann/phpunit
   Official source: https://github.com/sebastianbergmann/phpunit
   Relevance: Automated regression tests.
   Repository description: The PHP Unit Testing framework.

41. pestphp/pest
   Official source: https://github.com/pestphp/pest
   Relevance: Test runner alternative.
   Repository description: The elegant testing framework for PHP developers and AI agents.

42. microsoft/playwright
   Official source: https://github.com/microsoft/playwright
   Relevance: Browser verification.
   Repository description: Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API. 

43. chartjs/Chart.js
   Official source: https://github.com/chartjs/Chart.js
   Relevance: Dashboard statistics.
   Repository description: Simple HTML5 Charts using the <canvas> tag

44. apache/echarts
   Official source: https://github.com/apache/echarts
   Relevance: Chart alternative.
   Repository description: Apache ECharts is a powerful, interactive charting and data visualization library for browser

45. yairEO/tagify
   Official source: https://github.com/yairEO/tagify
   Relevance: Multiple programme input alternative.
   Repository description: 🔖 lightweight, efficient Tags input component in Vanilla JS / React / Angular / Vue

46. Choices-js/Choices
   Official source: https://github.com/Choices-js/Choices
   Relevance: Accessible multiple selection alternative.
   Repository description: A vanilla JS customisable select box/text input plugin ⚡️

47. flatpickr/flatpickr
   Official source: https://github.com/flatpickr/flatpickr
   Relevance: Date entry alternative.
   Repository description: lightweight, powerful javascript datetimepicker with no dependencies

48. DataTables/DataTablesSrc
   Official source: https://github.com/DataTables/DataTablesSrc
   Relevance: Table navigation alternative.
   Repository description: DataTables source repository

49. select2/select2
   Official source: https://github.com/select2/select2
   Relevance: Selection alternative.
   Repository description: Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.

50. frappe/education
   Official source: https://github.com/frappe/education
   Relevance: Education management reference.
   Repository description: Open source education / school management system

51. paperless-ngx/paperless-ngx
   Official source: https://github.com/paperless-ngx/paperless-ngx
   Relevance: Document retention reference.
   Repository description: A community-supported supercharged document management system: scan, index and archive all your documents

Other primary documentation consulted
https://laravel.com/framework/docs/releases
https://laravel.com/framework/docs/deployment
https://phpspreadsheet.readthedocs.io/en/latest/topics/reading-files/
https://github.com/smalot/pdfparser/blob/master/doc/Usage.md
https://www.adminlte.io/themes/v4/docs/getting-started.html
https://getcomposer.org/doc/03-cli.md
https://docs.ollama.com/api
These sources support the tool choices. They do not certify the completed system or the university's ISO compliance.

Revision 1.2 decision review, 18 October 2026
The existing 51-resource catalogue remains applicable; the implementation retains PHP-native parsing on cPanel. For signatures, LONGTEXT plus normalized encrypted PNG is selected over public filesystem storage to preserve existing snapshot behaviour. For concurrency, optimistic locking with retained input is selected over last-write-wins, which could lose another lecturer's work. For signed amendments, a separate revision draft is selected over rewriting an approved snapshot. For uploads, a module-scoped hub reuses the validated preview/commit importer rather than adding a second data pipeline.
Current primary references checked:
https://www.php.net/manual/en/function.imagecreatefromstring.php
https://laravel.com/framework/docs/validation
Image formats depend on GD build support; actual decoding is verified by tests and system checks.

Revision 1.3 comparison
Teaching-plan CSV uses a documented flat row contract plus preview/transactional confirmation, rather than blindly replacing records or inferring structure from arbitrary spreadsheets. Existing optimistic version checks protect concurrent edits. DOCX uses bounded ZipArchive plus DOMDocument/LIBXML_NONET, rather than a required Python/Office process on shared hosting. TXT uses UTF-8 validation. Existing 51 verified official project resources continue to inform the selected import/rendering design; they are not claimed as installed packages. Exact default heading typography is delivered through an embedded document font subset, rather than relying on server font substitution.
