PHP Content Management System (CMS)
Project Description
This was a training project that I did to learn PHP and to further my skills in modern web technologies such as Ajax, jQuery and material design. This project was a content management system built out of PHP with a heavy emphasis on security. In this project, security features were designed to protect against unauthorized access of information, SQL injection, cross site scripting, data validation, database compliance validation, and front end or client side validation. This project allows for:
- Posts
- Categories
- Comments
- Users
- Public Site
- Administrator Site
Public Site
In addition to the display view for posts, the public site also has search functionalities for Post Categories, Authors, Tags, Latest Posts, and general search capabilities. Visitors to the site can also submit comments, which must be approved by administrators before they are made available to the public. The public facing design was created with the popular framework Bootstrap.
Administrator Site
This section of the site is secured by user validation. If a hacker attempts three failed logins, it will lock them out of the system for a period of time. During this period of time the hacker cannot attempt to break into the system as the forms are disabled during that time. After the user is validated, it welcomes them into the site.
This project also contains a dashboard with several cards, graphs, and widgets. Each of the graphs has drill down abilities to link out to corresponding data. The post and comment activity feed or line chart allows you to search through months and years to find corresponding data of post and comment activity using Ajax and Chart.js. The dashboard also comes equipped with an intuitive to do list widget. This widget allows you to mark as complete or incomplete to-do list items. It also allows you to add, edit, or delete list items. This to-do list widget runs on jQuery and Ajax.
This CMS also contains the ability to add and edit posts, comments, categories, and users. Please take a few minutes and view a short video about the project.
What I Learned from this Project
This was my first experience working with PHP. It was exciting to build a project from the ground up with all the many features this tool offers. It was also exciting to work with Ajax and JQuery on a much more complex level. This was definitely a project that will help me move forward in the future both with project management and other PHP projects. Some of the specifics I learned in this project were a greater knowledge of Ajax use, PHP syntax, security practices for PHP, and time and date functions, among others.