Portfolio

Portfolio Website


Stack: Python, Django, HTML, CSS, JavaScript, nginx

Project Repository

Purpose

This website was created as a way to show off a few of the projects I created, alongside giving my thoughts on them. This website was also created to be hosted on a raspberry pi, with the intention of being added to my resume as a way to show my experience.

These projects were created for various reasons, but they were all major learning experiences as all the projects used new technologies, softwares, and languages that I had little to no prior knowledge on.

I also wanted to learn how to self-host a website on a local machine. I have previously developed websites for classwork in college, but have never done anything with them. This project is a stepping stone for me to be able to host my own websites in the future.

CSS Logo HTML Logo

What I Learned

Creating this website I got a lot more experience in website development, especially front-end design, and learned how to use django. The biggest hurdle was designing the website in a minimalist style, to give it a modern look and feel. Having a vision of what I wanted the website to do and look like made it much easier to create and design.

The main takeaways from developing this project was not about website creation itself, as it was not new to me, but instead due the hosting and Linux side. Linux in its entirety was something I had no experience with, and using a raspberry pi to run the website alongside using nginx to host the website and create the reverse proxy were all things I had to learn as I worked on the project.

Learning the basics of Linux is something that I knew would be very beneficial to me, as Linux is an OS that I will frequently use during my career. It's best to expose myself to it and learn the basics now, before I need to use it and end up being behind or overwhelmed from having to learn it quickly.

Python image

Process

This website was created from scratch using a blank django project, with no template or cookie cutters used. The first step was to learn how to run a basic page and access it from the browser, which was a simple task that I completed by using a beginners tutorial to django.

The next major step is creating the pages I intend to have on the website and setting up the routing to traverse between them. This was also a simple task, due to the beginners tutorial covering it. I did run into some minor issues here due to the vague explanations given by the tutorial, but following a video guide cleared up any confusion.

The most difficult part of creating this website was the layout and CSS. I have very little experience in graphic design and CSS in general, but I decided that I did not want to look up templates or tutorials for the layout and design. Instead, I designed it entirely through trial and error, which was possible due to creating a vision of what I wanted the website to look like beforehand. Without having a design goal, I do not believe I would have created something visually pleasing, and I most likely would have resorted to a guide or template.

Linux Logo