Click here to view this project on Github. This is a small Sinatra app that loads user data from a YAML file and renders simple profile pages. It includes a home page that lists all users, individual user pages that show email + interests, and helper methods that compute totals (how many users and how
Click here to view this project on Github. This is a Sinatra Todo web application that supports multiple lists, each with its own set of todos. You can create/edit/delete lists, add/remove todos, mark items complete, and mark an entire list complete. The app stores state in the session (so it behaves like a real app
Click here to view this project on Github. This is a content management system built as a multi-page Sinatra web app. It lets you browse documents, view them, edit them, create new files, and delete files. It supports both plain text and Markdown (Markdown is rendered to HTML), uses sessions + flash messaging for user
Click here to view this project. This is a tiny Sinatra app that dynamically lists the files inside a public/ directory and renders them as links. It also supports a simple sort toggle via a query parameter (ascending vs descending), which is a nice, clean example of using request params to change server-side behavior. Skills
Click here to view this project. This is a Ruby + Sinatra web application that renders a full book (table of contents + chapters) in the browser. Chapters are loaded from text files, displayed with ERB templates, and split into readable paragraphs with anchor IDs. It also includes a simple search feature that scans chapter
Click here to view this project on Github. This is an object-oriented Ruby project that models a simple Todo list domain. It includes a Todo class (a single task with a title, optional description, done/undone state, and an optional due date) and a TodoList class (a collection object that supports common list behaviors like add/remove,
Click here to view this project on Github. This is an object-oriented programming implementation of 21 (Blackjack) written in Ruby. It runs in the command line, but the emphasis is on OOP design: a Game object orchestrates the round, Player and Dealer inherit shared behavior from a Participant base class, and individual Card objects calculate
Click here to view this project on Github. This is an object-oriented programming implementation of Tic Tac Toe written in Ruby. The game runs in the command line, but the design is intentionally OOP: the Board is responsible for board state and win detection, Square encapsulates marker behavior, Player tracks player identity and score, and
Click here to view this project on Github. This is a procedural-programming implementation of 21 (Blackjack) written in Ruby. It runs in the command line and uses a deck that’s generated programmatically (four suits, thirteen ranks), deals random cards while removing them from the deck, and walks through a full game loop with a player
Click here to view this project on GitHub. This is a procedural-programming Tic Tac Toe game written in Ruby. It runs entirely in the command line and is built around a set of small, focused methods that pass state (the board) through the program. The computer opponent includes simple strategy logic (win if possible, block