initial very rough draft

This commit is contained in:
ray 2020-02-09 20:01:45 +00:00
parent 83fad2d61b
commit bea39dc3d9
1 changed files with 78 additions and 1 deletions

View File

@ -6,8 +6,85 @@ description = ""
slug = ""
tags = ["October CMS", "Vue"]
categories = ["Portfolio"]
featured_image = "/images/leopold/large-1.jpg"
externalLink = ""
series = []
+++
TODO
**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.