Skip to content
AgileLogics
Advanced 5 min read

Advanced Projects

Prerequisites: Level 3 — Advanced

Build these using metaprogramming, concurrency, databases, Rack, and the testing, security, and deployment practices from Level 3.

1. JSON REST API

Build a task-list API on Rack (or Sinatra) backed by SQLite through the sqlite3 gem, using parameterized queries only. Add request logging and error-handling middleware, validate input, return proper status codes (201, 404, 422), test it with rack-test, and ship it as a Docker image.

2. Concurrent Link Checker

Read URLs from a file and check them with a fixed pool of worker threads pulling from a Queue, each request using open and read timeouts. Collect results with a Mutex-guarded hash and print a summary of broken links. Compare the run time against a single-threaded version.

3. Configuration DSL Gem

Write a gem that lets users configure an app with a block-based DSL (MyApp.configure { |c| c.timeout = 5 }), defining settings with define_method, validating types, and raising helpful errors for unknown keys. Publish-ready: README, CHANGELOG, a CI workflow, and a RuboCop-clean codebase.