Portfolio Website

vector

Web development

Coding

PostgreSQL

Rust

SASS

CSS

NextJS

HTML

Typescript

Express

handlebars

Rocket

MongoDB

NamePortfolio Website
StatusFinished
Last updatedSat Nov 19 2022
CreatedWed Apr 28 2021

Portfolio

Purpose


I originally made this website because I wanted a place to store and display all of my projects and art. But it soon became much more than that and during its development. I've learned a lot about web development and optimization - I am striving to make the best possible web experience I can.

Features


  • Statically generated pages with on-demand re-validation for optimal performance.
  • Email reminders for projects that haven't been updated but are flagged as in progress.
  • Easily add new projects and art with a fully-fledged admin panel.
  • Simple but safe single user authorization.
  • Dynamic asset serving to safe resources client-side.
  • Fully responsive.
  • Ability to write project descriptions in markdown.
  • Anonymous contact page with anti-spam.
  • API endpoints for project info.
  • Features to improve accessibility.
  • Automatically update last updated on git commit.

Planned Features


  • [ ] hardware key authentication.
  • [ ] Re-implement auto update on git push.
  • [ ] Re-implement email reminders.

Retrospection


The project has evolved many times during its development as I kept learning new and better methods of doing things, and I think it will continue to do so as I strive for perfection. It originally started off as a singular express.js app with Handlebars as view engine and MariaDB as database. This is where the ground works of the website's visual and database design were laid out but I quickly ran into the limitations of this approach. Failing to fix all the shortcomings of this approach one of my friends suggested trying out React. I was very hesitant at first and had quite a rough start with rebuilding the project with an unfamiliar framework. But I think this was the right decision in the end as it pushed me to learn new techniques and frameworks.

Next.js and PostgreSQL

The switch to next.js was the most influential to the functionality and design of the website as it is today, coincidentally around the same time i had a database corruption which made me learn and switch to PostgreSQL.

Rocket.rs and MongoDB

Rust has always been a very intriguing programming language to me. Which is why i decided to learn rust by rewriting the website's API in rust (which is frankly ridiculous) The process of learning both rust and rocket.rs was very challenging and educative, Especially since this is the first low level language I've learned.

Links


Gallery