This website is a Node.js application built from scratch. It is a redesign of my portfolio website, which had previously been built on WordPress. The entire site is deployed on a Digital Ocean droplet which was itself a cool way to learn how to set up servers. The code can be found on Github, although the repository excludes certain components, such as all of the portfolio items and their respective pictures and content. The README file includes a summary of how to set up the application, as well as additional notes!
The app's entry point is the server.js file, as defined in package.json. This application runs on port 8000, so if spinning this up locally you will be able to access the site by going to http://localhost:8000/.
The application code is exported in the /app/app.js/ file, inside of which are creations of Handlebar partials, helper functions, routes, and endpoints. The core of the application lives within the /app/includes/ folder. Any assets (eg: images, js, or sass) exist within /app/src/, and all of the frontend views are within /app/views/.
Routes for each page are defined inside /app/includes/config/ and executed inside /app/includes/routes.js. Each page has its own respective js and css files, apart from globals. They are loaded into the Handlebars template based on whether its page property within the Pages object (/app/includes/config.pages.js) has the "hasScript" or "hasStyle" property set to true.
Other routes include each Portfolio Item as defined within /app/includes/config/portfolio-items/. In the repo, you will only see 1 sample file.