Building an Original App, "AWS Public IP Ranges Navigator," for the Kiro University Challenge
Introduction I participated in the Kiro University Challenge and built a TUI app called AWS Public IP Ranges Navigator , which allows users to filter and view AWS's published list of IP ranges directly in the terminal. This challenge was a program where lessons were published daily from September 21 to September 25, 2026. Participants were expected to integrate what they learned into a single…
In the Kiro University Challenge, a participant crafted a text-based user interface (TUI) application titled "AWS Public IP Ranges Navigator." This program grants users the ability to filter and view AWS's publicly documented IP ranges within a terminal environment. The competition spanned five days from September 21 to September 25, 2026, and required participants to synthesize their learnings into one final project, which was due on October 5.
The evaluation of these projects was based on their alignment with the lessons taught throughout the challenge.
The application accesses AWS's JSON file containing global IP ranges, located at ip-ranges.amazonaws.com/ip-ranges.json. The user interacts with this data using keyboard navigation within the Textual TUI framework. Key features of the application include automatic fetching of the latest IP range document at startup, a 3-pane layout displaying regions, services, and results, and filters for region, service, or both.
The app also supports re-fetching data, preserving existing data in case of failures, and operates without freezing the screen.
Throughout the development process, the participant employed Kiro's Spec-driven development methodology, which begins with defining requirements, followed by design and task implementation. This approach is documented in a series of specifications stored under the .kiro/specs/ directory. The requirement phase involves writing acceptance criteria using a format akin to EARS notation, ensuring clarity and precision.
For instance, the application must fetch data via HTTPS on startup, or if the document is not received within 15 seconds, the app should display an error and continue running. A glossary of terms is established to maintain consistent terminology throughout the project.
The design phase focuses on isolating complex logic into pure functions to prevent potential bugs. The architecture is divided into layers, including the network layer for HTTPS fetching, the parser for converting JSON into IP_Prefix objects, the domain layer managing state and filtering, and the presentation layer handling UI rendering and input routing.
Each layer adheres to specific responsibilities, enabling thorough unit testing and separation of concerns. Correctness properties are also defined, serving as specifications for property-based testing, ensuring that the application's behavior remains consistent across all inputs.
Tasks are organized in a specific sequence, progressing from pure core functionalities to I/O operations, presentation, the entry point, and finally, packaging the application. Each task is tied to specific requirements and correctness properties, ensuring traceability and adherence to project guidelines. The project employs Python guidelines defined in .kiro/steering/python-guidelines.md, enforcing PEP 8 compliance, consistent indentation, and proper exception handling.
The application uses a frozen=True dataclass for structured data, with structured exceptions to handle different error scenarios.
To ensure the application's robustness, property-based testing is employed using the Hypothesis library. Instead of manually defining numerous edge cases, this approach automatically generates a vast number of test cases to verify that the app's logic holds true for any input. The 17 correctness properties, defined during the design phase, guide this testing process.
Properties such as ensuring that converting valid entries to text and re-parsing yields equivalent data, and maintaining correct filtered result counts, are rigorously tested to uphold the application's reliability and accuracy.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.