Projects

Blackjack

Extracurricular project from college: I built this browser Blackjack game to experiment with JavaScript while taking a website development module. Vanilla HTML, CSS, and client-side JS with a tiny Express server for static assets and a player room route.

GitHub

Blackjack

Purpose

Outside formal coursework requirements, I put this together as an extracurricular piece while studying a website development module in college. The goal was hands-on practice with JavaScript in the browser by implementing a familiar card game, rather than only following module exercises.

What It Provides

The home route is the full table: dealer and player hands, new game, hit and stay, on-page status text, and PNG card art served from a public assets tree. The client can prime the Cache API so card images load efficiently. A second route serves a separate player-room page that is intentionally minimal today. There is no bundler: the browser loads plain HTML, CSS, and a chain of script files.

What I Built

A tiny Express app: static hosting for cards, styles, and scripts under the public directory, the main game document at the site root, and a second HTML document for the player path. Game behaviour lives in vanilla JavaScript split into small modules for deck creation, shuffling, dealing, score calculation, clearing the layout, win and loss detection, and a main script that ties the flow to the buttons and DOM.

My Role

I handled everything on this extracurricular build: the Express entry point, the HTML shells, the client-side rules and UI updates, and the folder layout for images and scripts so you can run it locally with a single Node command.

How I Contributed

I kept the dependency surface to Express for the server, broke game logic into focused functions and files instead of one giant script, and used predictable static routes so styles, card images, and scripts resolve cleanly in the browser.

Future Enhancements

I want to create a better UI for how cards appear on screen, with stronger animation and mechanics that feel closer to a real web-based casino.

Tech used

  • CSS
  • Express
  • HTML
  • JavaScript
  • Node.js