Skip to content
AgileLogics
Advanced 5 min read

Advanced Projects

Prerequisites: Level 3 — Advanced

Build these using computation expressions, async, testing, web frameworks, and the production practices from Level 3.

1. A JSON Web API

Build a small REST API with Giraffe or Falco for a book catalog: routes for list, get, create, and delete, request validation that returns Result, JSON serialization, and tests for the handlers with Expecto or xUnit. Package it in a Docker image.

2. A Concurrent Web Crawler

Crawl pages from a start URL with task or async, limit concurrency, track visited URLs in a MailboxProcessor agent, and report broken links and response times. Support cancellation with a CancellationToken.

3. A Domain Model That Can't Go Wrong

Pick a domain you know (orders, bookings, a card game) and model it so invalid states can't be represented: single-case unions with smart constructors, unions for every state, and a workflow of functions that return Result. Write property-based tests with FsCheck and, as a stretch goal, a Fable front end that reuses the same domain code.