This is an imageboard PHP application that follows the Model-View-Controller (MVC) architectural pattern.
- 🕵️ Anonymous Posting
- 🔑 Tripcode Identification for Users
- 💬 Commenting System
- 📂 Category-based Posts
- 📄 Pagination for Posts
- 👀 View All Posts
- ⭐ Featured Post
- 🔍 Search Post
- 🎨 Color Themes / Dark Mode
- PHP
- MySQL
- Composer
-
Clone the repository:
git clone https://github.com/jemcv/lihimboard.git cd lihimboard composer install -
Set up the database:
- Import the SQL file located at
config/schema.sqlinto your MySQL database.
- Import the SQL file located at
-
Configure the database connection:
- Update the
config.phpfile with your database credentials.
- Update the
-
Update
php.inifor larger image uploads (optional):- If you want to allow larger image uploads, you need to update your
php.inifile. - Locate your
php.inifile. - Open the
php.inifile in a text editor and increase the following settings:upload_max_filesize = 2M post_max_size = 2M
- Restart your web server to apply the changes.
- If you want to allow larger image uploads, you need to update your
To start the server, run the following command:
php -S localhost:8888 -t public
Navigate to http://localhost:8888 in your web browser to access the application.
This project uses PHP_CodeSniffer for linting. To check for coding standard violations, run:
vendor/bin/phpcs
This project uses PHPUnit for testing. To run the tests, use the following command:
vendor/bin/phpunit
The diagram visually represents the relationships as follows:
erDiagram
CATEGORIES ||--o{ POSTS : "has"
POSTS ||--o{ COMMENTS : "has"
CATEGORIES has a one-to-many relationship with POSTS. This means each category can have multiple posts.
POSTS has a one-to-many relationship with COMMENTS. This means each post can have multiple comments.
lihimboard/
├── config/
│ └── config.php # Database configuration
├── public/
│ ├── index.php # Main entry point
│ └── uploads/ # Uploaded images directory
├── src/
│ ├── routes # Handles all the routes
│ ├── Router # Router class
│ ├── Database.php # Database connection
│ ├── Controllers/ # Contains all the controllers
│ ├── Models/ # Contains all the models
│ └── Views/ # Contains all the views
├── tests/ # Test files
├── composer.json # Composer dependencies and autoload info
└── README.md # Project documentation
This project is licensed under the MIT license.
