|
|
@ -12,88 +12,70 @@ series = []
|
|
|
|
+++
|
|
|
|
+++
|
|
|
|
|
|
|
|
|
|
|
|
**Marc Leopold** is an apocryphal photographer and visual artist based in Chicago, USA.
|
|
|
|
**Marc Leopold** is an apocryphal photographer and visual artist based in Chicago, USA.
|
|
|
|
He recently decided his previous (and rather imaginary) website, whose purpose was to showcase his work, was beginning to look dated. He decided that it was time for a more modern, up to date portfolio site.
|
|
|
|
Having previously only having a dated, imaginary website to showcase his work, he recently decided that he was in need of a more modern, up to date portfolio site.
|
|
|
|
|
|
|
|
|
|
|
|
Being a photographer's portfolio site, the requirements are fairly basic.
|
|
|
|
|
|
|
|
Aside from the portfolio items, we just need some brief background information and an outline of the services provided along with a contact form.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## The Front End
|
|
|
|
## The Front End
|
|
|
|
|
|
|
|
|
|
|
|
For the front end of this project, I decided to use [Vue.js](https:/etcvuejs.org).
|
|
|
|
The front end of this project, I decided to use [Vue.js](https:/etcvuejs.org).
|
|
|
|
|
|
|
|
Site is mainly to consist of content in the form of images.
|
|
|
|
The site's content will mainly consist of examples of Marc's portfolio in the form of images that are organised into a number of galleries.
|
|
|
|
The main task of a user is expected to be the browsing and viewing of these images.
|
|
|
|
The main task of a user will be the browsing and viewing of these images.
|
|
|
|
A **Single Page Application** give the best user experience.
|
|
|
|
|
|
|
|
No need to do full page reloads, when we only need to update the on-screen images.
|
|
|
|
I feel that using a **Single Page Application** will give a nice user experience whilst browsing through and viewing the images.
|
|
|
|
Can dynamically update page components to create a fast responsive site.
|
|
|
|
The images will be able to be dynamically loaded when required.
|
|
|
|
|
|
|
|
There will be no need for full page reloads, when we only need to update the required on-screen images.
|
|
|
|
|
|
|
|
Instead, we can dynamically update page components to create a fast, responsive site.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## The Back End
|
|
|
|
## The Back End
|
|
|
|
|
|
|
|
|
|
|
|
For the backend I decided to use [October](https://octobercms.com/), a Content Management System, based on the [Laravel](https://laravel.com/) framework, which is a popular, open source, PHP based framework.
|
|
|
|
For the backend I decided to use [October](https://octobercms.com/), a Content Management System, based on the [Laravel](https://laravel.com/) framework, which is a popular, open source, PHP based framework.
|
|
|
|
|
|
|
|
|
|
|
|
The major requirements of a backend for this type of project is simply to store and organise images.
|
|
|
|
The major requirements of a backend for this type of project is simply to store and organise images.
|
|
|
|
|
|
|
|
|
|
|
|
It would be possible to create a fully bespoke image based CMS to handle these requirements.
|
|
|
|
It would be possible to create a fully bespoke image based CMS to handle these requirements.
|
|
|
|
However, this would involve a considerable amount of work and a lot of considerations, such as security best practices, browser compatibility, testing of code, etc.
|
|
|
|
However, this would involve a considerable amount of work and a lot of considerations, such as security best practices, browser compatibility, testing of code, etc.
|
|
|
|
|
|
|
|
|
|
|
|
Fortunately, there are already a number of actively developed libraries and frameworks available that have already solved these issues:
|
|
|
|
Fortunately, there are already a number of libraries and frameworks available that have already solved these issues, been tried and tested with real world use by many users, and are in active development.
|
|
|
|
|
|
|
|
Using one of these shortens development time considerably. We are able to build upon and extend functionality rather than reimplementing these features from scratch.
|
|
|
|
* they have the advantage of being tried and tested with real world use by many users,
|
|
|
|
|
|
|
|
* using one of these shortens development time considerably,
|
|
|
|
|
|
|
|
* we are able to build upon and extend functionality rather than reimplementing these features from scratch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
So for a relatively basic CMS, in which there are no particularly special requirements, it makes perfect sense to make use of a pre-existing platform.
|
|
|
|
So for a relatively basic CMS, in which there are no particularly special requirements, it makes perfect sense to make use of a pre-existing platform.
|
|
|
|
In this case, I chose **October** for a number for reasons.
|
|
|
|
In this case, I used **October** for a number for reasons.
|
|
|
|
|
|
|
|
|
|
|
|
* **Performant**
|
|
|
|
Performant - isn't bloated with unneeded functionality. It instead provides a
|
|
|
|
|
|
|
|
base in which features and functionality may be added if required. This makes it
|
|
|
|
|
|
|
|
faster than some alternatives, such as WordPress for example, which can suffer
|
|
|
|
|
|
|
|
from having a large amount of features included as a base. Also has useful
|
|
|
|
|
|
|
|
default features such as minification of CSS and JavaScript. The templating
|
|
|
|
|
|
|
|
engine (TWIG) generates static HTML.
|
|
|
|
|
|
|
|
|
|
|
|
October isn't bloated with unneeded functionality.
|
|
|
|
Developer oriented - is targeted towards developers. High quality documentation
|
|
|
|
|
|
|
|
and a clean and modern codebase makes it easy to extend and add functionality.
|
|
|
|
|
|
|
|
Plugins are entirely separate - have own database and namespaces preventing
|
|
|
|
|
|
|
|
conflicts between them. The templating system and text file based website
|
|
|
|
|
|
|
|
structure allows for separation of data and presentation and gives easy version
|
|
|
|
|
|
|
|
control management.
|
|
|
|
|
|
|
|
|
|
|
|
It instead provides a base in which features and functionality may be added if required.
|
|
|
|
There is a large developer community. This means a large number of plugins and
|
|
|
|
This makes it faster than some alternatives, such as WordPress for example, which can suffer from having a large amount of features included as a base.
|
|
|
|
themes provided by the community. Not as many as WordPress but many of the
|
|
|
|
It also has useful default features such as minification of CSS and JavaScript. The templating engine, Twig, generates static HTML.
|
|
|
|
WordPress plugins can be considered to be poor quality, particularly among the
|
|
|
|
|
|
|
|
free ones. It can also be difficult to extend WordPress plugins.
|
|
|
|
|
|
|
|
|
|
|
|
* **Developer oriented**
|
|
|
|
Secure when compared to alternatives like WordPress. Only one file that can be
|
|
|
|
|
|
|
|
accessed - `index.php`. There is a more rigorous approval process for plugins and
|
|
|
|
|
|
|
|
themes.
|
|
|
|
|
|
|
|
|
|
|
|
October is targeted towards developers.
|
|
|
|
Administrative interface customisation. This is very useful for a site that will
|
|
|
|
|
|
|
|
involve a lot of users with the ability to manage their accounts.
|
|
|
|
|
|
|
|
|
|
|
|
High quality documentation and a clean and modern codebase makes it easy to extend and add functionality.
|
|
|
|
These reasons are why I consider a platform like October to be better for
|
|
|
|
Plugins are entirely separate - have own database and namespaces preventing conflicts between them.
|
|
|
|
building a backend CMS than, for example WordPress - it is easier to customise
|
|
|
|
The templating system and text file based website structure allows for separation of data and presentation and gives easy version control management.
|
|
|
|
and add the required functionality without the inherent bloat.
|
|
|
|
|
|
|
|
|
|
|
|
* **Community**
|
|
|
|
Having said that, it may sound like WordPress just isn't very good when compared
|
|
|
|
|
|
|
|
to something like October. This, however, just isn't true. WordPress is very
|
|
|
|
There is a large developer community.
|
|
|
|
good at what it actually is - a platform that allows users, who may have limited technical
|
|
|
|
|
|
|
|
ability, to publish a website. For this it is very successful, after all it
|
|
|
|
This means a large number of plugins and themes provided by the community. Not as many as WordPress but many of the WordPress plugins can be considered to be poor quality, particularly among the free ones.
|
|
|
|
powers XX% of the world's websites. However, it is also a victim of its own
|
|
|
|
It can also be difficult to extend WordPress plugins.
|
|
|
|
success. It is a very high profile target with a lot of effort expended in
|
|
|
|
|
|
|
|
finding exploits and vulnerabilities. That, combined with its start as solely a
|
|
|
|
* **Secure**
|
|
|
|
blogging platform, with CMS features bolted on over time, can make leaner, more
|
|
|
|
|
|
|
|
focused alternatives more appealing to developers.
|
|
|
|
Relatively secure when compared to alternatives like WordPress.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There is a single point of entry into the application, with only one file that can ever be accessed - `index.php`.
|
|
|
|
|
|
|
|
This reduces the attack areas available.
|
|
|
|
|
|
|
|
There is also more rigorous approval process for plugins and themes, that with some alternative platforms.
|
|
|
|
|
|
|
|
Each plugin and theme available must undergo a strict verification progress.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* **Customisation**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
It is simple and straight forward to customise the administrative interface.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is very useful for a site that will involve a lot of users with the ability to manage their accounts and decreases development time substantially.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
So, These reasons are why I consider a platform like October to be better for building a backend CMS than, for example WordPress - it is easier to customise and add the required functionality without the inherent bloat of some alternatives.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Having said that, it may sound like WordPress just isn't very good when compared to something like October.
|
|
|
|
|
|
|
|
This, however, just isn't true.
|
|
|
|
|
|
|
|
WordPress is very good at what it actually is - a platform that allows users, who may have limited technical ability, to publish a website.
|
|
|
|
|
|
|
|
For this it is very successful, after all it powers XX% of the world's websites.
|
|
|
|
|
|
|
|
However, it is also a victim of its own success.
|
|
|
|
|
|
|
|
It is a very high profile target with a lot of effort expended in finding exploits and vulnerabilities.
|
|
|
|
|
|
|
|
That, combined with its start as solely a blogging platform, with CMS features bolted on over time, can make leaner, more focused alternatives more appealing to developers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## The Design
|
|
|
|
## The Design
|
|
|
|
|
|
|
|
|
|
|
|