{"id":15093668,"url":"https://github.com/fernaerell/Digital-Bulletin-Board-PHP","last_synced_at":"2025-10-09T18:30:35.713Z","repository":{"id":208897237,"uuid":"721875942","full_name":"fernaerell/Digital-Bulletin-Board-PHP","owner":"fernaerell","description":"This is a technological innovation designed to modernize the traditional concept of school bulletin boards. By combining the latest web technologies, this project utilizes HTML, CSS, JavaScript, PHP, CodeIgniter 4, Composer, and MySQL to create a dynamic and responsive platform.","archived":false,"fork":false,"pushed_at":"2025-04-02T00:49:24.000Z","size":419,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-03T05:47:56.496Z","etag":null,"topics":["ci4","codeigniter4","css","html","javascripts","js","mading","mading-digital","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fernaerell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-22T00:38:03.000Z","updated_at":"2025-04-02T00:50:23.000Z","dependencies_parsed_at":"2023-11-23T22:20:47.781Z","dependency_job_id":"6f2ea319-552f-49c8-9013-019c4bf54352","html_url":"https://github.com/fernaerell/Digital-Bulletin-Board-PHP","commit_stats":null,"previous_names":["fern-aerell/mading-digital","fernaerell/digital-bulletin-board-php"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fernaerell/Digital-Bulletin-Board-PHP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernaerell%2FDigital-Bulletin-Board-PHP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernaerell%2FDigital-Bulletin-Board-PHP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernaerell%2FDigital-Bulletin-Board-PHP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernaerell%2FDigital-Bulletin-Board-PHP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fernaerell","download_url":"https://codeload.github.com/fernaerell/Digital-Bulletin-Board-PHP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernaerell%2FDigital-Bulletin-Board-PHP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001947,"owners_count":26083226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci4","codeigniter4","css","html","javascripts","js","mading","mading-digital","php"],"created_at":"2024-09-25T11:24:40.223Z","updated_at":"2025-10-09T18:30:35.708Z","avatar_url":"https://github.com/fernaerell.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Digital Bulletin Board (PHP)\n\n\"Digital Bulletin Board\" is a technological innovation designed to modernize the traditional concept of school bulletin boards. By integrating the latest web technologies, this project uses HTML, CSS, JavaScript, PHP, CodeIgniter 4, Composer, and MySQL to create a dynamic and responsive platform.\n\n| Contents |\n| -------- |\n| [Technologies Used](#technologies-used) |\n| [Key Features](#key-features) |\n| [Requirements](#requirements) |\n| [Setup on Raspberry Pi](#setup-on-raspberry-pi) |\n| [Creators and Roles](#creators-and-roles) |\n\n## Technologies Used\n1. **HTML, CSS, and JavaScript:** These technologies bring the user interface to life, ensuring an engaging and responsive user experience.\n\n2. **PHP and CodeIgniter 4:** Used as the web development framework to streamline development and ensure project security. CodeIgniter 4 provides a structured environment that simplifies resource management.\n\n3. **Composer:** With Composer, the PHP dependency manager, this project can easily manage and update the required third-party libraries.\n\n4. **MySQL:** As the database management system, MySQL is used to store and manage data related to videos, QR codes, marquee news texts, and school schedules.\n\n## Key Features\n1. **Video Display:** The Digital Bulletin Board allows live video streaming, adding a multimedia dimension to the information being displayed.\n\n2. **QR Code:** It provides easy access by embedding QR codes, allowing users to easily access further information.\n\n3. **Marquee News Text:** It features scrolling news text, ensuring that the most current and important information gets maximum attention.\n\n4. **School Activity Schedule:** Automatically displays the school schedule according to the current day, providing easy access to time-related guidance.\n\n5. **Control Panel:** An easily accessible user interface for managing content. The control panel allows users to update database data, change the layout, and make other modifications.\n\n6. **Automated Updates:** Any changes made through the control panel are automatically reflected in the Digital Bulletin Board display, ensuring accuracy and consistency of information.\n\nThe \"Digital Bulletin Board\" project not only brings a modern touch to the traditional school bulletin board but also enhances efficiency in delivering information. By combining the latest technologies and effective management through the control panel, this project introduces an innovative and responsive approach to managing school information.\n\n## Requirements\n- MySQL 5.1+\n- PHP v8.2+\n- PHP v8.2+ Extensions:\n  - php-intl\n  - php-mbstring\n  - php-json\n  - php-mysql\n  - php-curl\n  - php-gd\n  - php-dom\n- Apache 2.4.56+\n- Composer v2.6.3+\n\n## Setup on Raspberry Pi\n\n1. **Update Linux**\n```sh\nsudo apt update -y\nsudo apt upgrade -y\nsudo apt-get update -y \nsudo apt-get upgrade -y\n```\n\n2. **Install Git**\n```sh\nsudo apt install git -y\n```\n\n3. **Install MySQL and Change Root User Password**\n```sh\n# Install MySQL\nsudo apt install mariadb-server -y\n\n# For viewing MySQL status\nsudo service mysql status\n\n# Start MySQL\nsudo service mysql start\n\n# Stop MySQL\nsudo service mysql stop\n\n# Change MySQL root user password\nsudo mysql -u root -p\nALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';\nexit;\n```\n\n4. **Install Apache**\n```sh\n# Install Apache\nsudo apt install apache2 -y\n\n# For viewing Apache status\nsudo service apache2 status\n\n# Start Apache\nsudo service apache2 start\n\n# Stop Apache\nsudo service apache2 stop\n```\n\n5. **Install PHP 8.2 \u0026 All PHP 8.2 Extensions**\n\nAdd PHP 8.2 repository on Raspberry Pi\n\nSource: https://pimylifeup.com/raspberry-pi-latest-php/\n```sh\nsudo apt install lsb-release\n\ncurl https://packages.sury.org/php/apt.gpg | sudo tee /usr/share/keyrings/suryphp-archive-keyring.gpg \u003e/dev/null\n\necho \"deb [signed-by=/usr/share/keyrings/suryphp-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/sury-php.list\n\nsudo apt update\n```\n\nInstall PHP 8.2\n```sh\nsudo apt install php8.2 php8.2-intl php8.2-mbstring php8.2-mysql php8.2-curl php8.2-gd php8.2-dom -y\n```\n\n6. **Install Composer (Command-line installation)**\n\nSource: https://getcomposer.org/download/\n```sh\n# Download the installer to the current directory\nphp -r \"copy('https://getcomposer.org/installer', 'composer-setup.php');\"\n\n# Verify the installer SHA-384\nphp -r \"if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;\"\n\n# Run the installer\nphp composer-setup.php\n\n# Remove the installer\nphp -r \"unlink('composer-setup.php');\"\n\n# Global install\nsudo mv composer.phar /usr/local/bin/composer\n```\n\n7. **Clone \u0026 Setup Project**\n\nClone and install all required dependencies\n```sh\ncd /var/www\n\nsudo git clone https://github.com/AerellSmk/Mading-Digital.git\n\nsudo mv Mading-Digital mading_digital\n\ncd mading_digital\n\nsudo composer install\n```\n\nCopy the `env` file and edit the `.env` file\n\n```\nsudo cp env .env\nsudo nano .env\n```\n\nUncomment `CI_ENVIRONMENT`\n\n```\n# CI_ENVIRONMENT = production\nto\nCI_ENVIRONMENT = production\n```\n\nUncomment `app.baseURL` and set the URL to match the IP address\n```\n# app.baseURL = ''\nto\napp.baseURL = 'http://ip-address'\n```\n\nUncomment the database config and set the database configuration\n```\n# database.default.hostname = localhost\n# database.default.database = ci4\n# database.default.username = root\n# database.default.password = root\n# database.default.DBDriver = MySQLi\n# database.default.port = 3306\nto\ndatabase.default.hostname = localhost\ndatabase.default.database = mading_digital\ndatabase.default.username = root\ndatabase.default.password = user_root_password\ndatabase.default.DBDriver = MySQLi\ndatabase.default.port = 3306\n```\n\nCreate the database\n```sh\nsudo php spark db:create mading_digital\n\n./reset_database.sh\n```\n\nEnable Apache's `mod_rewrite`\n```sh\nsudo a2enmod rewrite\n```\n\nSet the `DocumentRoot` in `000-default.conf`\n```sh\ncd /etc/apache2/sites-available\n\nsudo nano 000-default.conf\n```\n\n```\nDocumentRoot /var/www/html\nto\nDocumentRoot /var/www/mading_digital\n```\n\nAdd the `mading_digital` directory in `apache2.conf`\n```sh\ncd /etc/apache2\n\nsudo nano apache2.conf\n```\n\n```\n\u003cDirectory /var/www/mading_digital/\u003e\n    Options Indexes FollowSymLinks\n    AllowOverride All\n    Require all granted\n\u003c/Directory\u003e\n```\n\nChange folder owner, group, and file permissions\n```sh\ncd /var/www\n\nsudo chown -R www-data:www-data mading_digital\n\nsudo chmod -R 755 mading_digital\n```\n\nChange values for `upload_max_filesize` and `post_max_size` in `php.ini`\n```\nsudo nano /etc/php/8.2/apache2/php.ini\n```\n\n```\nupload_max_filesize = 2M\npost_max_size = 8M\nto\nupload_max_filesize = 1G\npost_max_size = 1G\n```\n\nRestart Apache\n```\nsudo service apache2 restart\n```\n\n8. **Fix Video Autoplay**\n\nIn the browser's site settings, under sound, add the URL `http://localhost` to allow autoplay videos on the Digital Bulletin Board.\n\n9. **Make Digital Bulletin Board Auto-Start on Boot**\n\nEdit the autostart file\n```sh\nsudo nano /etc/xdg/lxsession/LXDE-pi/autostart\n```\n\nAdd the following\n```\n@/usr/bin/chromium http://ip-address/ --start-fullscreen\n```\n\n## Creators and Roles\n- Aerell (Design, Frontend, Backend)\n- Reza (Design, Frontend)\n- Nico (Design, Frontend)\n- Justin (Design, Frontend)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernaerell%2FDigital-Bulletin-Board-PHP","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernaerell%2FDigital-Bulletin-Board-PHP","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernaerell%2FDigital-Bulletin-Board-PHP/lists"}