Tool
Quotation API
A small service for generating and managing different types of quotations - focused on clean API and backend design.
A small backend / API system that generates different types of quotations. The focus is on API design and backend architecture - the kind of small, well-shaped service that benefits from getting the contracts right.
- Status
- In ProgressTool
- Timeline
- Jan 2024 → …
- Signals
- .NETC#REST APIAPI DesignSQL Server
Setting
Context
Quotations are a small but recurring requirement across products. Most implementations end up as a feature buried inside a larger system, with the contract designed around the immediate consumer.
This experiment pulls quotations out into their own service, so the contract can be designed once and reused.
Motivations
What I wanted to explore
- Designing a small, well-shaped API surface for a single concept (a quotation).
- Supporting multiple quotation types without the API becoming a mess of special cases.
- Practising backend architecture on a contained problem.
- Treating a small service as a product - versioning, contracts, evolution.
Work in progress
Project scope
- A backend service that generates different types of quotations.
- A clean REST API surface for creating, reading, and managing quotations.
- Backend architecture designed to keep the service small and understandable.
How it is built
Technical approach
Backend-first, with attention to the API contract and the shape of the underlying domain model.
- .NET and C# for the backend.
- REST API as the external contract.
- Internal structure designed around the quotation domain, not the immediate UI.
Notes from the build
What I learned
- Small services benefit from a disproportionate amount of contract design.
- Multiple quotation types are easier to model as a single concept with variants, not as parallel endpoints.
- A focused service is also easier to evolve, replace, or retire.
Where this is now
Current status / next steps
Active build. The next focus is on expanding the supported quotation types and tightening the API contract based on actual usage.
