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, iteration, selection, and “mark done” operations). The project is backed by an automated Minitest suite that verifies behavior across the public API, including error handling, output formatting, and collection-style methods.
Skills demonstrated:
- Ruby
- Object-oriented programming (domain modeling with
Todo+TodoList) - Encapsulation and public interfaces (methods like
done!,mark_done_at,find_by_title) - Custom collection behavior (iteration via
each, filtering viaselect) - Testing with Minitest (assertions, setup, edge cases, exception testing)
- Error handling (raising
TypeError, usingfetchto raiseIndexError) - String formatting and display logic (custom
to_soutput for both items and lists) - Dependency/tooling familiarity (Bundler, external gem usage for date formatting via
stamp)
Leave a Reply