An Graves' Personal Site




VGPL is a simple web app and Twitch extension created primarily to learn, but also to allow sharing your recent Steam games without actually sharing your Steam account, as well as providing additional information sourced from IGDB. The front page of the web app simply pulls 5 random games from IMDB at a time and displays their data in card form. Linking an account requires confirming your identity with steam, but this gives no permissions to this application - it only provides the server with your 64-bit Steam ID, which it can then use to retrieve any publicly available info about your account like recent activity. Passwords in database are encrypted and salted with a unique salt per user, even with complete access to the database it would require significant effort per password to crack them. As for your e-mail, I don't actually use or confirm it in any way, so while using a real e-mail is probably easier to remember it's not strictly necessary.
The backend of the application is written using Express.js while both the web frontend and the Twitch extension are coded with Vue.js and Tailwind CSS. The Twitch extension can be added to your About page here.

----------
Everything below this point is at least a decade old at this point, I'm simply going to leave it untouched unless I come back to one of them to remake them in a more modern form. The styling of this page also has not been updated in a decade.
----------

Portfolio notes:

The Dungeon World character sheets are designed to work on any screen size through the Bootsrap responsive design library, and use only two html pages for all the classes (with and without the spells section) while all class-specific data is stored in js files.

The language pages are coded using Angular.js and JQuery to facilitate creating recurring complex blocks, like translation examples with associated audio files or sortable vocabulary lists, with minimal repetition of code in the source.

Both sections are personal projects, and not necessarily complete. The language section in particular is not completely filled out, and many audio files do not play either because I have not actually recorded them or have made changes to the language that invalidated them.