<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prince Adigwe</title>
    <description>The latest articles on DEV Community by Prince Adigwe (@prvnce).</description>
    <link>https://dev.to/prvnce</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3573271%2F9711c341-daae-4e52-8654-5125e3920bfe.jpg</url>
      <title>DEV Community: Prince Adigwe</title>
      <link>https://dev.to/prvnce</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prvnce"/>
    <language>en</language>
    <item>
      <title>The HNG Stage 0️⃣ Project</title>
      <dc:creator>Prince Adigwe</dc:creator>
      <pubDate>Sun, 19 Oct 2025 03:46:13 +0000</pubDate>
      <link>https://dev.to/prvnce/the-hng-stage-0-project-2cl8</link>
      <guid>https://dev.to/prvnce/the-hng-stage-0-project-2cl8</guid>
      <description>&lt;p&gt;For HNG Stage 0️⃣, we were required to build an integration with an external API. This integration was to feature rate limiting, timeout &lt;br&gt;
handling, error handling, logging, and a dynamic timestamp among other requirements.&lt;/p&gt;

&lt;p&gt;Here's my overall approach.&lt;/p&gt;

&lt;p&gt;After reading through the requirements for the project the first time, I planned to read it again for proper understanding. But before I did that, I asked ChatGPT to &lt;strong&gt;internalize&lt;/strong&gt; the project requirements before I read them again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbceh7plhs1tri9de1pll.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbceh7plhs1tri9de1pll.jpg" alt="me n gpt" width="720" height="1640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I then read through the requirements again. This time, gaining a clearer understanding of what was required.&lt;br&gt;
I also asked ChatGPT to help elicit the requirements in case I missed something. &lt;/p&gt;

&lt;p&gt;The requirements for the project consisted both of things I could do as well as what I couldn't. Thus, the next thing I did was to go to my paper and pen. I wrote down notes and things that needed clarification before the project could be developed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MY APPROACH TO DEVELOPING THE SOFTWARE&lt;/strong&gt;&lt;br&gt;
Days before receiving the requirements for the stage 0️⃣ project, I was reading a book titled "applying UML and patterns" where the author taught how to apply certain patterns and methods in order to get from the requirements of a project to the end-result. Thus, methods learned from this book inspired my approach to developing the software.&lt;/p&gt;

&lt;p&gt;I first tried to organize the entire requirements for the project into a &lt;strong&gt;use case&lt;/strong&gt;. The requirements that couldn't fit into the use case were written as extra notes.&lt;/p&gt;

&lt;p&gt;Next, I wrote down system contracts which detailed clearer specifications of what the Web service was to achieve for each scenario.&lt;/p&gt;

&lt;p&gt;After doing system contracts, I began the design. The book I talked about also taught certain patterns(called the GRASP patterns) that make software design more intuitive and likely to yield maintainable, reusable code. These patterns were applied to the best of my ability. &lt;/p&gt;

&lt;p&gt;Below is a picture of my sequence diagrams and class diagrams (after doing it with pen and paper, I realized there were apps for those)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff76bgzuir3cp3ky4jxj4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff76bgzuir3cp3ky4jxj4.jpg" alt="my diagrams" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, was the Web service implementation. At times I had to deviate from the software design as the situation required (like the book also predicted).&lt;/p&gt;

&lt;p&gt;A test-driven approach was taken.&lt;/p&gt;

&lt;p&gt;Methods from different books were also adapted, namely "Learning Patterns" and a couple of others (My brain didn't really tag the ideas with book titles 🤔).&lt;/p&gt;

&lt;p&gt;Here is a screenshot of a Singleton (a pattern from the book, "Learning Patterns") implemented for the logging feature&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggkk3y0pq6wofhs8f43e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggkk3y0pq6wofhs8f43e.jpg" alt="Singleton Pattern" width="720" height="1640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At times, I had to look at documentations, ask ChatGPT for help etc&lt;/p&gt;

&lt;p&gt;Here are some pictures&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwnddkqeojdxaj5byod5k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwnddkqeojdxaj5byod5k.jpg" alt="FastAPI Documentation" width="720" height="1640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although sometimes, code wasn't copied from documentations blindly. Below you can see me asking ChatGPT for better understanding of certain code from a documentation&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9o829mr678dcgmf1mme1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9o829mr678dcgmf1mme1.jpg" alt=" " width="720" height="1640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Eventually, the software was completed and pushed to production... Many times...&lt;br&gt;
as I had to try different web hosts. &lt;br&gt;
Each hosting provider disappointed me in one way or the other.&lt;/p&gt;

&lt;p&gt;Finally, I was able to deploy it to railway &lt;/p&gt;

&lt;p&gt;The project was implemented using Python/FastAPI and was a great opportunity to learn new and exciting things.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
