|
|
|
@ -4,87 +4,10 @@ date = 2020-02-01T18:54:46Z
|
|
|
|
|
title = "Marc Leopold Photography"
|
|
|
|
|
description = ""
|
|
|
|
|
slug = ""
|
|
|
|
|
tags = ["October CMS", "Vue"]
|
|
|
|
|
tags = []
|
|
|
|
|
categories = ["Portfolio"]
|
|
|
|
|
featured_image = "/images/leopold/large-1.jpg"
|
|
|
|
|
externalLink = ""
|
|
|
|
|
series = []
|
|
|
|
|
+++
|
|
|
|
|
|
|
|
|
|
**Marc Leopold** is an apocryphal photographer and visual artist based in Chicago, USA.
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
## The Front End
|
|
|
|
|
|
|
|
|
|
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 main task of a user is expected to 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.
|
|
|
|
|
Can dynamically update page components to create a fast responsive site.
|
|
|
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
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 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.
|
|
|
|
|
|
|
|
|
|
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 used **October** for a number for reasons.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
There is a large developer community. 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. It can also be difficult to extend WordPress plugins.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Administrative interface customisation. This is very useful for a site that will
|
|
|
|
|
involve a lot of users with the ability to manage their accounts.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
Wanted to focus on the images.
|
|
|
|
|
Wanted striking, interesting images on the home page to create interest.
|
|
|
|
|
Wanted colour scheme to be dark and monochromatic.
|
|
|
|
|
This is so that I can use full colour on those images and elements that I want to attract attention to and not have user be distracted by other elements that aren't the focus of the page.
|
|
|
|
|
|
|
|
|
|
## The Deployment
|
|
|
|
|
|
|
|
|
|
Hosted on a Virtual Private Server using Docker.
|
|
|
|
|
|
|
|
|
|
TODO
|
|
|
|
|