<?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: Stercy Mutuku</title>
    <description>The latest articles on DEV Community by Stercy Mutuku (@stercy_mutuku_98161076e66).</description>
    <link>https://dev.to/stercy_mutuku_98161076e66</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%2F3385027%2Ff5e64ae9-934e-450c-9771-379982b327ea.jpg</url>
      <title>DEV Community: Stercy Mutuku</title>
      <link>https://dev.to/stercy_mutuku_98161076e66</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stercy_mutuku_98161076e66"/>
    <language>en</language>
    <item>
      <title>Data Speaks</title>
      <dc:creator>Stercy Mutuku</dc:creator>
      <pubDate>Fri, 29 Aug 2025 23:54:40 +0000</pubDate>
      <link>https://dev.to/stercy_mutuku_98161076e66/data-speaks-4c1f</link>
      <guid>https://dev.to/stercy_mutuku_98161076e66/data-speaks-4c1f</guid>
      <description>&lt;p&gt;&lt;strong&gt;Data the new gold&lt;/strong&gt;&lt;br&gt;
In the current age, data surrounds us like the air we breathe. It hums silently in servers, glitters in spreadsheets, and drifts invisibly through networks. Raw data, in its chaotic abundance, is treasure to those bold enough to sail and chart its currents.&lt;/p&gt;

&lt;p&gt;With the advent of Artificial Intelligence, Data Analytics takes on an almost prophetic quality. It has the ability to not only tell us where we have been, but to whisper where we might be headed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Description to Prediction&lt;/strong&gt;&lt;br&gt;
Previously, the fundamental questions that data analytics asked were: What happened? Why did it happen? This descriptive and diagnostic lenses gave quarterly reports, churn analyses, dashboards and bar charts.&lt;/p&gt;

&lt;p&gt;Through predictive analytics, AI dares to ask, What will happen next? And through prescriptive analytics, it adds, What should we do about it? Suddenly, data is not just a record of history but a living compass, guiding us toward more informed futures. AI cleans and organizes, discerning patterns invisible to the naked eye. It learns from yesterday’s sales, today’s clicks, tomorrow’s signals in ways we cannot fully grasp.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pattern recognition&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Machine learning models forecast customer behavior with uncanny accuracy. Natural Language Processing listens to millions of voices on social media and distills them into sentiment. Real-time analytics reacts to data streams as they arrive, catching fraud in milliseconds or rerouting supply chains before disruption strikes.&lt;/p&gt;

&lt;p&gt;This makes data a silent strategist whispering possibilities. It is therefore paramount to guard the data as quality as possible because flawed data yields dangerous illusions.&lt;/p&gt;

&lt;p&gt;Even with the increased AI usage, the wise know that they need to keep humans in the loop. Machines predict, but humans decide. Judgment remains a uniquely human art.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Call of the Future&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The future belongs to organizations that do not merely store information, but transform it into foresight. When AI meets analytics, data ceases to be a ledger. It becomes a lens, refracting possibility, magnifying insight, and illuminating tomorrow’s path today.&lt;/p&gt;

&lt;p&gt;So the question should be whether we should listen to our data, or we ignore its voice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Author&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Stercy Mutuku&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Flickster Movies Blog</title>
      <dc:creator>Stercy Mutuku</dc:creator>
      <pubDate>Thu, 24 Jul 2025 14:01:38 +0000</pubDate>
      <link>https://dev.to/stercy_mutuku_98161076e66/flickster-movies-blog-4gl7</link>
      <guid>https://dev.to/stercy_mutuku_98161076e66/flickster-movies-blog-4gl7</guid>
      <description>&lt;p&gt;**Building a Full-Featured Movie App with React: A Developer’s Journey&lt;br&gt;
**As a developer passionate about crafting user-focused applications, I recently embarked on an exciting journey to build a full-fledged Movie App using React. This project combines everything from search and sorting features to user authentication and favorite tracking—all wrapped in a clean and responsive UI. In this post, I’ll walk you through the process, design decisions, challenges faced, and how I implemented the major features.&lt;/p&gt;

&lt;p&gt;**Project Overview&lt;br&gt;
**Flickster Movie App is a React-based frontend project that allows users to explore movies, rate them, leave comments, and manage personal favorites and watchlists. It emphasizes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A modern UI with dark/light mode&lt;/li&gt;
&lt;li&gt;Seamless interactivity using React state and events&lt;/li&gt;
&lt;li&gt;Local backend simulation via json-server for storing user profiles and favorites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app is divided into several components for scalability and maintainability such as;&lt;/p&gt;

&lt;p&gt;**Navigation Bar&lt;br&gt;
**At the top of the app is a Navbar that provides easy access to major sections:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;Favorite Movies&lt;/li&gt;
&lt;li&gt;Watchlist&lt;/li&gt;
&lt;li&gt;Top Rated&lt;/li&gt;
&lt;li&gt;New Releases&lt;/li&gt;
&lt;li&gt;Login / Register&lt;/li&gt;
&lt;/ul&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%2Fev1sbhemt1j0s3fqbfs8.png" 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%2Fev1sbhemt1j0s3fqbfs8.png" alt=" " width="800" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each link is managed using react-router-dom, allowing smooth transitions without reloading the page.&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%2F2xzeh9wlu3y8fhcdqhah.png" 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%2F2xzeh9wlu3y8fhcdqhah.png" alt=" " width="482" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The navigation bar is responsive and adapts gracefully to mobile views.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search Bar Functionality&lt;/strong&gt;&lt;br&gt;
One of the most useful tools in the app is the Search Bar, which enables users to quickly find movies by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Writer&lt;/li&gt;
&lt;li&gt;Actor&lt;/li&gt;
&lt;li&gt;Year of release
This is implemented using useState to capture the search input and filter() to dynamically filter the movie array as users type.&lt;/li&gt;
&lt;/ul&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%2Fj0razuaud8yyz2cbrugt.png" 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%2Fj0razuaud8yyz2cbrugt.png" alt=" " width="285" height="54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**Movie Card Component&lt;br&gt;
**Each movie is displayed via a MovieCard component which showcases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Poster image&lt;/li&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Writer&lt;/li&gt;
&lt;li&gt;Year of release&lt;/li&gt;
&lt;li&gt;Country&lt;/li&gt;
&lt;li&gt;Genre&lt;/li&gt;
&lt;li&gt;Actors&lt;/li&gt;
&lt;li&gt;Director&lt;/li&gt;
&lt;li&gt;Type (e.g., series or movie)&lt;/li&gt;
&lt;li&gt;Plot&lt;/li&gt;
&lt;li&gt;Additional images (if any)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This modular component helped keep code organized and reusable.&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%2Fbjkum4dww69x31il3yqx.png" 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%2Fbjkum4dww69x31il3yqx.png" alt=" " width="291" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**Sorting Component&lt;br&gt;
**Users can sort movies using dropdown filters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Year of Release&lt;/li&gt;
&lt;li&gt;Runtime (Under or over 1 hour)&lt;/li&gt;
&lt;li&gt;Rating&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This feature uses state management and sort() to reorder the movie list accordingly. It helps users quickly find what they’re looking for based on personal preferences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Rating Component&lt;/strong&gt;&lt;br&gt;
The app includes an interactive star rating feature. Users can rate movies from 1 to 5 stars. A global average rating is calculated and displayed per movie.&lt;br&gt;
{[1, 2, 3, 4, 5].map(star =&amp;gt; (&lt;br&gt;
  
    key={star}&lt;br&gt;
    onClick={() =&amp;gt; handleRating(star)}&lt;br&gt;
    color={star &amp;lt;= currentRating ? "gold" : "gray"}&lt;br&gt;
  /&amp;gt;&lt;br&gt;
))}&lt;br&gt;
All ratings are stored and used to compute an average rating per movie.&lt;/p&gt;

&lt;p&gt;**Light / Dark Mode Toggle&lt;br&gt;
**The dark/light mode toggle is implemented via a simple switch that toggles a boolean state isDarkMode.&lt;/p&gt;

&lt;p&gt;const [isDarkMode, setIsDarkMode] = useState(false);&lt;/p&gt;

&lt;p&gt;The app’s color scheme changes based on this state. Conditional classes/styles apply either dark or light themes to major containers. This enhances accessibility and user preference customization.&lt;/p&gt;

&lt;p&gt;User Profile &amp;amp; Authentication&lt;br&gt;
Users can create accounts and log in using a Register/Login form with the following fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full Name&lt;/li&gt;
&lt;li&gt;Email&lt;/li&gt;
&lt;li&gt;Phone Number&lt;/li&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;/ul&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%2Fc60dgo16947hlt2t3xjq.png" 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%2Fc60dgo16947hlt2t3xjq.png" alt=" " width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Form validation ensures valid inputs, including strong passwords and properly formatted emails. On successful login, users are redirected to the Home page.&lt;br&gt;
if (user &amp;amp;&amp;amp; passwordMatches) {&lt;br&gt;
  navigate("/");&lt;br&gt;
}&lt;br&gt;
Passwords and emails are validated with regex patterns, and error messages guide users in case of invalid inputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Favorite Movies&lt;/strong&gt;&lt;br&gt;
A heart icon is displayed on each Movie Card. Users can click it to mark a movie as a favorite. The icon color toggles red or gray depending on whether it's selected or not.&lt;/p&gt;

&lt;p&gt;{isFavorite ?  : }&lt;br&gt;
Each click updates the state and favorite count.&lt;/p&gt;

&lt;p&gt;Favorite Count Component&lt;br&gt;
To add social proof and interactivity, the app displays how many users have favorited each movie. The count is updated dynamically based on the number of favorites submitted.&lt;/p&gt;

&lt;p&gt;{favoriteCount} people love this movie &lt;/p&gt;

&lt;p&gt;This motivates users to explore popular or trending titles.&lt;/p&gt;

&lt;p&gt;**User Comments&lt;br&gt;
**Users can leave comments on each movie.&lt;/p&gt;

&lt;p&gt;Comments are stored in the db.json file via json-server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools &amp;amp; Libraries Used&lt;/strong&gt;&lt;br&gt;
The tools used for the development of the App are;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React – Core UI framework&lt;/li&gt;
&lt;li&gt;React Router DOM – Page routing&lt;/li&gt;
&lt;li&gt;React Icons – For interactive star and heart icons&lt;/li&gt;
&lt;li&gt;json-server – Simulated backend&lt;/li&gt;
&lt;li&gt;CSS Flex/Grid – Layout styling&lt;/li&gt;
&lt;li&gt;useState/useEffect – State and side-effect management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;**Challenges Faced&lt;br&gt;
**While building this app, a few challenges popped up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Handling async data from json-server – Had to carefully manage useEffect() to fetch and update data.&lt;/li&gt;
&lt;li&gt;Login state persistence – Used local state and JSON storage to temporarily manage sessions.&lt;/li&gt;
&lt;li&gt;Making the UI responsive and clean – Ensured movie cards wrapped horizontally and looked clean across screen sizes.&lt;/li&gt;
&lt;li&gt;Managing group conflicts&lt;/li&gt;
&lt;li&gt;Making &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
This Movie App project has been a fantastic learning experience. It brought together React fundamentals, state management, user interactivity, and UX design.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks for reading! Let me know your thoughts, and feel free to share your movie project journey too!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For any inquiries or feedback:&lt;/p&gt;

&lt;p&gt;Name: Stercy Mutuku&lt;br&gt;
Email: &lt;a href="mailto:mutukustercy93@gmail.com"&gt;mutukustercy93@gmail.com&lt;/a&gt;&lt;br&gt;
LinkedIn: &lt;a href="https://www.linkedin.com/in/stercy/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/stercy/&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/stercym/" rel="noopener noreferrer"&gt;https://github.com/stercym/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>html</category>
    </item>
  </channel>
</rss>
