A photographer asks: "I want a website and I want to be able to upload my own stuff. Can you do this?".
I spent a few months learning Nodejs, Express and MongoDB.
The result is a responsive web application that can be used to upload, edit and delete images in a photo gallery. The user can log on into an admin area to manage photo uploads. Descriptions, names and other input can be added and stored in a database.
I figured out how to store, edit and delete images on Cloudinary.
I used mongoDB to store user data, but first I had to figure out how to sanitize form data and how to get the user authentication and authorisation right.
I learned a lot about basic server configuration by deploying my application on Digital Ocean. This included using SSH keys, a basic firewall setup, pm2, an nginx reverse proxy set up, fail2ban, redirecting to https, letsencrypt, creating a secure diffie-hellman group, server monitoring and lots of other interesting stuff.
I learned how to use cloud9, bitbucket and GIT along the way. I used Materialize on the front end. This a modern responsive CSS framework based on Material Design by Google framework. I'm really happy with the A-score I got from a SSL Server Test on the website of Qualis SSL labs.
This is a redesign of my original work. I wanted to brighten up things and make sure the colors of the images could really stand out. I made it user friendly and got rid of some of those silly plugins and bugs.