# Simple PHP MVC Blog System


## Description

This *PHP Blog System* has an MVC pattern, uses Traits (PHP 5.4), Namespace (PHP 5.3), Singleton pattern, PDO (PHP 5.1) and the new PHP Password Hashing feature (PHP 5.5).

The project was a *PHP Challenge Project* I have done.


## Why this MVC Blog System can be very Useful for You?

If you need to code a simple website under a Professional and very nice/clean code (as I really enjoy doing), this script will be very useful in order to *start on good basis* and *save time and money*.

However, if you need to build a blog system, again this project can be used as a *framework* to start your project easily under a *good development pattern* and *good development practice* and organization.


## Requirements that were Requested for the Project

### Requirements

* The project should be written in object-oriented PHP targeting version 5.5 or higher
* It should be all self-written, no existing frameworks or libraries
* It should have good security (e.g., hashed passwords, protect against SQL injection, shouldn't have any error when we try to change URL query strings or to hack it, etc)
* Should use a MySQL database to store admin account and article data

### Specification

*Build a simple blog with the following functionalities*

#### The Frontend

* List of blog articles showing the **title**, **body** truncated to 100 characters, and **date**. It should show only the latest 5 articles
* Single blog article showing the **title**, **full body**, and the **date**

#### The Backend

* List of all the blog articles
* Possibility to add a new blog article with a title and body. The title should allow a maximum of 50 characters
* Possibility to edit an existing blog article
* Possibility to delete an article
* Logout feature for the admin user

HTML and CSS code should be kept to the minimum needed to make the website functional – This project is purely to assess how you approach the problem and not how good it looks.


## Server Requirements of the Web App

* **Application Server** PHP 5.5.0 or higher.

* **PHP Extension** mbstring

* **Database MySQL/MariaDB 5** or higher.


## The Author

[Pierre-Henry Soria](http://ph7.me)


## Contact the Author

By email at: *phy [AT] hizup [D0T] uk*


## License

This blog system (PHP script) is under [Lesser General Public License](http://www.gnu.org/copyleft/lesser.html) (LGPL); See the LICENSE.txt file for more information.
