<?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>Forem: Adewale</title>
    <description>The latest articles on Forem by Adewale (@adewaletech).</description>
    <link>https://forem.com/adewaletech</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%2F3291946%2F1a72a7fc-0fe4-442c-a823-1ddc31de7990.jpeg</url>
      <title>Forem: Adewale</title>
      <link>https://forem.com/adewaletech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/adewaletech"/>
    <language>en</language>
    <item>
      <title>Building a Tier 3 Movie Database App with Django: My Development Journey</title>
      <dc:creator>Adewale</dc:creator>
      <pubDate>Thu, 20 Nov 2025 23:14:07 +0000</pubDate>
      <link>https://forem.com/adewaletech/building-a-tier-3-movie-database-app-with-django-my-development-journey-ga</link>
      <guid>https://forem.com/adewaletech/building-a-tier-3-movie-database-app-with-django-my-development-journey-ga</guid>
      <description>&lt;p&gt;Over the past days, I’ve been working on an advanced Movie Database Application powered by Django and The Movie Database (TMDB) API. This project pushed me deeper into scalable backend architecture, API integration, and user-focused design using Python, and I wanted to share some insights from the experience.&lt;/p&gt;

&lt;p&gt;🎯 Project Goal&lt;/p&gt;

&lt;p&gt;The aim of this project was to build a movie discovery platform where users can:&lt;/p&gt;

&lt;p&gt;Browse trending movies&lt;/p&gt;

&lt;p&gt;View detailed information (cast, reviews, etc.)&lt;/p&gt;

&lt;p&gt;Search for titles&lt;/p&gt;

&lt;p&gt;Manage a personalized watchlist&lt;br&gt;
All data is fetched server-side from the TMDB API and displayed through tailored Django views and templates.&lt;/p&gt;

&lt;p&gt;⚙️ Environment &amp;amp; Project Setup&lt;/p&gt;

&lt;p&gt;To enable a clean, maintainable structure:&lt;/p&gt;

&lt;p&gt;Created a virtual environment for dependency isolation&lt;/p&gt;

&lt;p&gt;Installed core tools: Django, requests, and python-dotenv&lt;/p&gt;

&lt;p&gt;Initialized a new Django project: movie_project&lt;/p&gt;

&lt;p&gt;Added a core app for all movie-related logic&lt;/p&gt;

&lt;p&gt;Configured template directories and static files&lt;/p&gt;

&lt;p&gt;Stored sensitive API keys inside a .env file for best security practices&lt;/p&gt;

&lt;p&gt;This setup ensured the project stayed modular and production-ready from day one.&lt;/p&gt;

&lt;p&gt;🔌 TMDB API Integration (The Heart of the App)&lt;/p&gt;

&lt;p&gt;I developed a dedicated TMDB service module to keep API logic clean and reusable.&lt;/p&gt;

&lt;p&gt;Key methods include:&lt;/p&gt;

&lt;p&gt;get_trending_movies()&lt;/p&gt;

&lt;p&gt;get_movie_details(id)&lt;/p&gt;

&lt;p&gt;search_movies(query)&lt;/p&gt;

&lt;p&gt;This abstraction improved code readability and made it easier to extend features later.&lt;/p&gt;

&lt;p&gt;🧩 Views, URLs &amp;amp; Template Composition&lt;/p&gt;

&lt;p&gt;To create a smooth user experience:&lt;/p&gt;

&lt;p&gt;Core Views&lt;/p&gt;

&lt;p&gt;HomeView: Displays trending movies&lt;/p&gt;

&lt;p&gt;MovieDetailView: Renders full movie details&lt;/p&gt;

&lt;p&gt;SearchView: Handles user search queries&lt;/p&gt;

&lt;p&gt;Templates&lt;/p&gt;

&lt;p&gt;I structured templates for clarity and reuse:&lt;/p&gt;

&lt;p&gt;base.html for global layout using TailwindCSS CDN&lt;/p&gt;

&lt;p&gt;home.html for the movie grid&lt;/p&gt;

&lt;p&gt;movie_detail.html with cast, reviews, and user actions&lt;/p&gt;

&lt;p&gt;movie_card.html as a reusable UI component&lt;/p&gt;

&lt;p&gt;🔐 Bonus Features: Authentication &amp;amp; User Data&lt;/p&gt;

&lt;p&gt;To make the platform interactive, I introduced an accounts app for user management.&lt;/p&gt;

&lt;p&gt;Watchlist Model&lt;/p&gt;

&lt;p&gt;Stores the user’s favorite movies using:&lt;/p&gt;

&lt;p&gt;movie_id&lt;/p&gt;

&lt;p&gt;title&lt;/p&gt;

&lt;p&gt;poster_path&lt;/p&gt;

&lt;p&gt;Review Model&lt;/p&gt;

&lt;p&gt;Allows users to submit ratings and comments directly tied to TMDB entries.&lt;/p&gt;

&lt;p&gt;User actions include:&lt;/p&gt;

&lt;p&gt;Add or remove movies from a watchlist&lt;/p&gt;

&lt;p&gt;Submit reviews&lt;/p&gt;

&lt;p&gt;Manage their logged-in session&lt;/p&gt;

&lt;p&gt;These features make the experience personalized and closer to a real-world media platform.&lt;/p&gt;

&lt;p&gt;🧪 Verification &amp;amp; Testing&lt;/p&gt;

&lt;p&gt;I validated the system through:&lt;/p&gt;

&lt;p&gt;Automated tests using Django’s built-in test runner&lt;/p&gt;

&lt;p&gt;Mocking TMDB requests to test logic without hitting the API&lt;/p&gt;

&lt;p&gt;Manual testing of browsing, searching, authentication, and watchlist flows&lt;/p&gt;

&lt;p&gt;Running the project via python manage.py runserver gave a clean environment to confirm UI and data accuracy.&lt;/p&gt;

&lt;p&gt;✨ Lessons Learned&lt;/p&gt;

&lt;p&gt;Building this app strengthened my understanding of:&lt;/p&gt;

&lt;p&gt;Clean API abstraction&lt;/p&gt;

&lt;p&gt;Template reusability&lt;/p&gt;

&lt;p&gt;Secure environment handling&lt;/p&gt;

&lt;p&gt;Django’s class-based views&lt;/p&gt;

&lt;p&gt;User-centric feature design&lt;/p&gt;

&lt;p&gt;Scalable backend patterns using Python&lt;/p&gt;

&lt;p&gt;This project reminded me how powerful Django can be when structuring real-world applications.&lt;/p&gt;

&lt;p&gt;📌 Final Thoughts&lt;/p&gt;

&lt;p&gt;Exploring this build reinforced why I love backend engineering: combining structure, logic, and user needs into something functional and meaningful.&lt;/p&gt;

&lt;p&gt;I’m Waliyullah.&lt;br&gt;
I build scalable and optimized backend solutions using Python, Django, and modern backend practices.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>python</category>
      <category>fastapi</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Building &amp; Integrating a Microservice Text Transformer Agent for HNG + Telex.im</title>
      <dc:creator>Adewale</dc:creator>
      <pubDate>Tue, 04 Nov 2025 15:31:05 +0000</pubDate>
      <link>https://forem.com/adewaletech/building-integrating-a-microservice-text-transformer-agent-for-hng-telexim-55ib</link>
      <guid>https://forem.com/adewaletech/building-integrating-a-microservice-text-transformer-agent-for-hng-telexim-55ib</guid>
      <description>&lt;p&gt;For the HNG Internship, I built a modular text transformation chain using FastAPI microservices and fully integrated it with Telex.im’s AI coworker platform.&lt;/p&gt;

&lt;p&gt;Workflow:&lt;/p&gt;

&lt;p&gt;Input Agent: Receives text, coordinates calls.&lt;/p&gt;

&lt;p&gt;Capitalizer Agent: Converts all text to uppercase.&lt;/p&gt;

&lt;p&gt;Reverse Agent: Reverses word order.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
Input: "hello world again"&lt;br&gt;
Output: "AGAIN WORLD HELLO"&lt;/p&gt;

&lt;p&gt;Deployment:&lt;br&gt;
Each microservice is deployed independently on Render, communicating via HTTP endpoints.&lt;br&gt;
The Input Agent orchestrates the chain and exposes a /transform-text endpoint.&lt;/p&gt;

&lt;p&gt;Integration:&lt;br&gt;
On Telex.im, I registered my input agent, described its workflow, and verified with test prompts.&lt;br&gt;
(Side note: Still troubleshooting the category/publishing error, but setup is ready and endpoint works fine!)&lt;/p&gt;

&lt;p&gt;Tech Used:&lt;/p&gt;

&lt;p&gt;FastAPI&lt;/p&gt;

&lt;p&gt;Uvicorn&lt;/p&gt;

&lt;p&gt;httpx&lt;/p&gt;

&lt;p&gt;Render for cloud hosting&lt;/p&gt;

&lt;p&gt;Telex.im for agent collaboration&lt;/p&gt;

&lt;p&gt;Challenges &amp;amp; Fixes:&lt;br&gt;
Wrestling with JSON validation for category, I switched to defining tasks directly in the Telex UI—this is more reliable and makes agent setup seamless.&lt;/p&gt;

&lt;p&gt;How To Try:&lt;/p&gt;

&lt;p&gt;Send a POST to my endpoint with any sentence: get back uppercase and word-reversed result instantly!&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;json&lt;br&gt;
{ "text": "hello world again" }&lt;br&gt;
Returns:&lt;/p&gt;

&lt;p&gt;json&lt;br&gt;
{ "text": "AGAIN WORLD HELLO" }&lt;br&gt;
Next Steps:&lt;br&gt;
Once publishing is fixed, my agent will be live for anyone on Telex.im.&lt;br&gt;
Follow my repository [your GitHub repo link] for source, docs, and updates.&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
Microservice agent chaining is a scalable pattern for AI and automation.&lt;br&gt;
Happy to assist with integration tips—ping me for help.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>showdev</category>
      <category>microservices</category>
      <category>python</category>
    </item>
  </channel>
</rss>
