<?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: Chijioke Uzodinma</title>
    <description>The latest articles on DEV Community by Chijioke Uzodinma (@chijioke_uzodinma_d6ae6ef).</description>
    <link>https://dev.to/chijioke_uzodinma_d6ae6ef</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%2F3783088%2F7d2ff350-d029-43c6-a155-78a52aace111.webp</url>
      <title>DEV Community: Chijioke Uzodinma</title>
      <link>https://dev.to/chijioke_uzodinma_d6ae6ef</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chijioke_uzodinma_d6ae6ef"/>
    <language>en</language>
    <item>
      <title>Shipping Bloom After: My Week 4 Wrap-Up</title>
      <dc:creator>Chijioke Uzodinma</dc:creator>
      <pubDate>Sat, 28 Mar 2026 09:47:20 +0000</pubDate>
      <link>https://dev.to/chijioke_uzodinma_d6ae6ef/shipping-bloom-after-my-week-4-wrap-up-1n82</link>
      <guid>https://dev.to/chijioke_uzodinma_d6ae6ef/shipping-bloom-after-my-week-4-wrap-up-1n82</guid>
      <description>&lt;p&gt;&lt;strong&gt;By Chijioke Uzodinma | Backend Lead, Bloom After&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In my previous articles, I walked through our journey from planning the system in Week 1, to building the backend in Week 2, and stabilizing and connecting everything in Week 3.&lt;/p&gt;

&lt;p&gt;Week 4 was the final stretch.&lt;/p&gt;

&lt;p&gt;This week was focused on &lt;strong&gt;finishing the product, fixing critical issues, and making sure everything works smoothly across all pages.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Shipped This Week
&lt;/h2&gt;

&lt;p&gt;As Backend Lead, my focus this week was on refining the system and resolving issues that affected the overall user experience.&lt;/p&gt;

&lt;p&gt;Here are the key things I finalized:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Completed the admin dashboard, ensuring all core actions work properly&lt;/li&gt;
&lt;li&gt;Fixed multiple frontend integration and UI bugs&lt;/li&gt;
&lt;li&gt;Resolved a major routing issue on the frontend&lt;/li&gt;
&lt;li&gt;Ensured all features were fully connected and working end-to-end&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of the week, the platform moved from “almost ready” to &lt;strong&gt;fully functional.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixing a Major Routing Issue (Frontend)
&lt;/h2&gt;

&lt;p&gt;One of the biggest problems we faced this week was with &lt;strong&gt;routing on the frontend.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since the project was built using &lt;strong&gt;HTML and CSS&lt;/strong&gt;, our pages were structured as separate .html files. This caused issues where links looked like:&lt;br&gt;
&lt;code&gt;/resource-page.html&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;instead of cleaner routes like:&lt;br&gt;
&lt;code&gt;/resources&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Because of differences in environments and folder structure, navigating between pages would sometimes result in &lt;strong&gt;404 errors&lt;/strong&gt;, especially after deployment.&lt;/p&gt;

&lt;p&gt;In many cases, we had to manually adjust paths depending on how the project was being served.&lt;/p&gt;

&lt;p&gt;To fix this, we used &lt;strong&gt;Vite’s configuration and restructuring approach&lt;/strong&gt; to make routing more consistent and predictable across environments.&lt;/p&gt;

&lt;p&gt;This issue really showed how something that seems small — like file paths — can affect the entire user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Bloom After Does
&lt;/h2&gt;

&lt;p&gt;Bloom After is a platform designed to support Nigerian mothers dealing with &lt;strong&gt;Postpartum Depression (PPD)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It focuses on making support &lt;strong&gt;simple, accessible, and easy to navigate&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The platform includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resources and educational content&lt;/strong&gt; to guide users&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;clinic finder&lt;/strong&gt; to locate nearby help&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community stories&lt;/strong&gt; to create a sense of connection&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;admin system&lt;/strong&gt; to manage all content on the platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to reduce the stress of searching for help and make support easier to access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full Sprint Retrospective
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What Went Well&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the biggest improvements across the sprint was how much &lt;strong&gt;backend and frontend synchronization improved.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the beginning, both sides were not always aligned, but over time communication improved, and the system started working more smoothly.&lt;/p&gt;

&lt;p&gt;By Week 4, everything felt more connected.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Would Do Differently
&lt;/h2&gt;

&lt;p&gt;If I were to start again, I would spend more time &lt;strong&gt;defining the full system before development begins&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clearly mapping all pages&lt;/li&gt;
&lt;li&gt;defining how features connect&lt;/li&gt;
&lt;li&gt;planning how data flows between frontend and backend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This would have reduced confusion and prevented unnecessary rework.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Surprised Me
&lt;/h2&gt;

&lt;p&gt;One thing that stood out was &lt;strong&gt;how difficult debugging can be&lt;/strong&gt;, even for simple issues.&lt;/p&gt;

&lt;p&gt;Problems like routing or small UI bugs can take longer to fix than expected.&lt;/p&gt;

&lt;p&gt;This sprint showed me that debugging is just as important as building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Technical Lessons
&lt;/h2&gt;

&lt;p&gt;Some key lessons I took from this sprint:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Modeling is critical&lt;/strong&gt;&lt;br&gt;
A well-structured backend makes **&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;everything easier&lt;br&gt;
**&lt;br&gt;
Frontend and Backend must align early&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;- Misalignment leads to rework&lt;/strong&gt;&lt;br&gt;
**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Small issues can have big impact
**
Something like routing can break the entire experience&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;This sprint is complete, but there is still more to learn.&lt;/p&gt;

&lt;p&gt;Going forward, I want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve how I design systems before building&lt;/li&gt;
&lt;li&gt;Get better at structuring and architecture&lt;/li&gt;
&lt;li&gt;Continue building full-stack applications with better coordination&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Team Shoutouts
&lt;/h2&gt;

&lt;p&gt;Appreciation to everyone who contributed to Bloom After:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grace Olabode (Engineering Lead)&lt;/strong&gt; – for guiding the project and ensuring consistency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nanji Lakan (Product Lead)&lt;/strong&gt; – for shaping the direction of the platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agugua Genevieve (Design Lead)&lt;/strong&gt; – for designing a calm and supportive experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prisca Onyemaechi (Lead Maintainer)&lt;/strong&gt; – for keeping everything organized.&lt;/p&gt;

&lt;p&gt;And the entire team for making this project possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Links
&lt;/h2&gt;

&lt;p&gt;Live Product: &lt;a href="https://the-bloom-after.netlify.app/" rel="noopener noreferrer"&gt;https://the-bloom-after.netlify.app/&lt;/a&gt;&lt;br&gt;
GitHub Repository: &lt;a href="https://github.com/Tabi-Project/Bloom-After.git" rel="noopener noreferrer"&gt;https://github.com/Tabi-Project/Bloom-After.git&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Reflection
&lt;/h2&gt;

&lt;p&gt;From planning in Week 1 to shipping in Week 4, this project was a full learning experience.&lt;/p&gt;

&lt;p&gt;It was not just about building features, but about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;working with a team&lt;/li&gt;
&lt;li&gt;solving real problems&lt;/li&gt;
&lt;li&gt;handling pressure&lt;/li&gt;
&lt;li&gt;and delivering a complete system
And in the end, we built something that works — and something that matters.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>backend</category>
      <category>devjournal</category>
      <category>finalproject</category>
    </item>
    <item>
      <title>Stabilizing and Scaling: My Week 3 Progress on Bloom After</title>
      <dc:creator>Chijioke Uzodinma</dc:creator>
      <pubDate>Sat, 21 Mar 2026 08:32:56 +0000</pubDate>
      <link>https://dev.to/chijioke_uzodinma_d6ae6ef/stabilizing-and-scaling-my-week-3-progress-on-bloom-after-55mb</link>
      <guid>https://dev.to/chijioke_uzodinma_d6ae6ef/stabilizing-and-scaling-my-week-3-progress-on-bloom-after-55mb</guid>
      <description>&lt;p&gt;By Chijioke Uzodinma | Backend Lead, Bloom After&lt;/p&gt;

&lt;p&gt;In my &lt;a href="https://dev.to/chijioke_uzodinma_d6ae6ef/turning-plans-into-code-my-week-2-progress-on-bloom-after-7jk"&gt;Week 2 article&lt;/a&gt;, I talked about how we moved from planning into actual development — building our backend structure, creating APIs, and wiring the system to the frontend.&lt;/p&gt;

&lt;p&gt;Week 3 felt different.&lt;/p&gt;

&lt;p&gt;This was the week where things became more intense.&lt;/p&gt;

&lt;p&gt;Instead of just building features, my focus shifted to completing, stabilizing, and connecting everything together so the platform could start behaving like a real product.&lt;/p&gt;

&lt;p&gt;What I Built This Week&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Community Stories System (Full Implementation)
&lt;/h2&gt;

&lt;p&gt;One of the biggest features I worked on this week was completing the community stories system.&lt;/p&gt;

&lt;p&gt;This included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building the backend for stories&lt;/li&gt;
&lt;li&gt;Creating admin moderation functionality&lt;/li&gt;
&lt;li&gt;Connecting the frontend story page to the backend&lt;/li&gt;
&lt;li&gt;Implementing a rich text editor for proper content formatting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rich text editor was especially important because stories are not just plain text — they need structure, formatting, and readability.&lt;/p&gt;

&lt;p&gt;Instead of storing raw text, the system now supports properly formatted content, making it easier to display meaningful stories on the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. NGO and Suggestion System
&lt;/h2&gt;

&lt;p&gt;Another major part of my work this week was completing the NGO system and suggestion drawer.&lt;/p&gt;

&lt;p&gt;This involved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating backend logic for NGOs&lt;/li&gt;
&lt;li&gt;Building the suggestion submission system&lt;/li&gt;
&lt;li&gt;Connecting both features to the frontend&lt;/li&gt;
&lt;li&gt;Implementing admin moderation for these submissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, the platform can accept and manage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NGO-related data&lt;/li&gt;
&lt;li&gt;Suggestions from users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And admins can review and manage these directly from the dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Admin System Expansion
&lt;/h2&gt;

&lt;p&gt;I also expanded the admin system, making it more functional and closer to a real management dashboard.&lt;/p&gt;

&lt;p&gt;This included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating the settings page for admins&lt;/li&gt;
&lt;li&gt;Building backend routes for inviting new admins&lt;/li&gt;
&lt;li&gt;Connecting the settings page to the backend&lt;/li&gt;
&lt;li&gt;Handling admin-related actions from the dashboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This brings the admin dashboard to about &lt;strong&gt;80% completion.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Email System Integration
&lt;/h2&gt;

&lt;p&gt;One of the more interesting parts of this week was setting up email communication for the platform.&lt;/p&gt;

&lt;p&gt;I created email templates and integrated Resend API to handle sending emails for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Community stories&lt;/li&gt;
&lt;li&gt;NGO submissions&lt;/li&gt;
&lt;li&gt;Suggestions&lt;/li&gt;
&lt;li&gt;Admin invites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the platform more interactive and responsive, allowing users and admins to receive updates and notifications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Progress This Week
&lt;/h2&gt;

&lt;p&gt;By the end of Week 3, several major parts of the platform reached near completion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Admin dashboard – ~80% complete&lt;/li&gt;
&lt;li&gt;Resources system – fully functional&lt;/li&gt;
&lt;li&gt;Community stories – completed&lt;/li&gt;
&lt;li&gt;NGO system &amp;amp; suggestion drawer – completed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was the first week where the platform started feeling like a connected system, not just separate features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;The biggest challenge this week wasn’t just technical — it was time and coordination.&lt;/p&gt;

&lt;p&gt;Because of how the work was structured, I delayed starting my main tasks until later in the week so the frontend team could finish their parts first.&lt;/p&gt;

&lt;p&gt;This meant that most of my workload was compressed into Thursday and Friday, making those days extremely intense.&lt;/p&gt;

&lt;p&gt;Another challenge was misalignment between frontend and backend expectations.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some frontend components were built without considering how the data would be structured&lt;/li&gt;
&lt;li&gt;Certain features didn’t account for admin actions like editing or deleting content&lt;/li&gt;
&lt;li&gt;In some cases, I had to adjust or rebuild parts to ensure they worked properly with the backend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This wasn’t anyone’s fault — it’s a normal part of working in a team — but it showed me how important early communication is when building connected systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This week taught me something important about leadership:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Being a Backend Lead is not just about writing code — it’s about adapting to people, timelines, and imperfect systems.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not every task will come to you in a perfect state.&lt;/p&gt;

&lt;p&gt;Not every implementation will align immediately.&lt;/p&gt;

&lt;p&gt;Sometimes you have to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adjust quickly&lt;/li&gt;
&lt;li&gt;Fill in missing pieces&lt;/li&gt;
&lt;li&gt;Work under pressure&lt;/li&gt;
&lt;li&gt;Still deliver something stable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also reinforced how important it is to think beyond just your own part and consider how everything connects together.&lt;/p&gt;

&lt;h2&gt;
  
  
  From Week 2 to Week 3
&lt;/h2&gt;

&lt;p&gt;The shift from Week 2 to Week 3 was clear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Week 2&lt;/strong&gt;: Build the backend foundation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week 3&lt;/strong&gt;: Complete, stabilize, and connect the system
This week was less about starting new things and more about making sure everything actually works together.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Team Shoutouts
&lt;/h2&gt;

&lt;p&gt;Appreciation to the team building Bloom After:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grace Olabode&lt;/strong&gt; (Engineering Lead) – for continuing to guide the overall development and reviewing key changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nanji Lakan&lt;/strong&gt; (Product Lead) – for keeping the platform aligned with user needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agugua Genevieve&lt;/strong&gt; (Design Lead) – for maintaining a clean and supportive design direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prisca Onyemaechi&lt;/strong&gt; (Lead Maintainer) – for keeping everything organized on GitHub.&lt;/p&gt;

&lt;p&gt;And to everyone contributing across tracks — this week really showed how much teamwork matters when systems start connecting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Week 3 was intense, but it was also one of the most important weeks so far.&lt;/p&gt;

&lt;p&gt;With most core systems now in place, the next phase will focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refining the platform&lt;/li&gt;
&lt;li&gt;Fixing edge cases&lt;/li&gt;
&lt;li&gt;Improving performance&lt;/li&gt;
&lt;li&gt;Finalizing remaining features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’re no longer just building parts — we’re shaping the full experience.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>backend</category>
      <category>devjournal</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Turning Plans Into Code: My Week 2 Progress on Bloom After</title>
      <dc:creator>Chijioke Uzodinma</dc:creator>
      <pubDate>Sat, 14 Mar 2026 00:28:12 +0000</pubDate>
      <link>https://dev.to/chijioke_uzodinma_d6ae6ef/turning-plans-into-code-my-week-2-progress-on-bloom-after-7jk</link>
      <guid>https://dev.to/chijioke_uzodinma_d6ae6ef/turning-plans-into-code-my-week-2-progress-on-bloom-after-7jk</guid>
      <description>&lt;p&gt;&lt;strong&gt;By Chijioke Uzodinma | Backend Lead, Bloom After&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In my &lt;a href="https://dev.to/chijioke_uzodinma_d6ae6ef/laying-the-data-foundation-my-week-1-as-backend-lead-for-bloom-after-50n"&gt;Week 1 article&lt;/a&gt;, I talked about laying the foundation for Bloom After — planning the database structure, onboarding the backend team, and translating the product requirements into a data model we could build on.&lt;/p&gt;

&lt;p&gt;This week was different.&lt;/p&gt;

&lt;p&gt;Instead of just planning the system, we actually started building the backend that will &lt;strong&gt;power the platform&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By the end of the week, we had built roughly a quarter of the backend, including our database models, core APIs, authentication logic, and the first integrations with the frontend.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built This Week
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Building the Backend Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of my main responsibilities this week was setting up the core backend structure that the platform will run on.&lt;/p&gt;

&lt;p&gt;We began building the backend using Node.js with MongoDB via Mongoose, which allows us to define structured models for the different types of data Bloom After will manage.&lt;/p&gt;

&lt;p&gt;I worked on creating and wiring the main database models for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resources&lt;/strong&gt; – educational materials and support content&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clinics&lt;/strong&gt; – locations where mothers can find help&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Stories&lt;/strong&gt; – shared experiences from mothers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admin accounts&lt;/strong&gt; – used to manage platform content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Defining these models early allows the frontend to interact with consistent data structures when retrieving or updating information.&lt;/p&gt;

&lt;p&gt;Alongside the models, I also implemented several backend utilities including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API routes for resources and clinics&lt;/li&gt;
&lt;li&gt;Rate limiting to protect the backend from abuse&lt;/li&gt;
&lt;li&gt;Basic server structure for handling requests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This forms the backbone of the application that future features will build on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Wiring the Backend to the Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another major part of my work this week involved connecting the backend APIs to the frontend pages that the team is building.&lt;/p&gt;

&lt;p&gt;Working closely with &lt;a href="https://dev.to/grace_olabode_3be546efe9b"&gt;Grace Olabode&lt;/a&gt;, who has been developing the &lt;strong&gt;Resources and Clinic Finder pages&lt;/strong&gt;, I wired backend endpoints that allow those pages to retrieve real data from the server.&lt;/p&gt;

&lt;p&gt;This included connecting backend routes for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resources&lt;/li&gt;
&lt;li&gt;Clinics&lt;/li&gt;
&lt;li&gt;Admin login&lt;/li&gt;
&lt;li&gt;Dashboard data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To make it easier for the frontend to interact with the backend, I also created a small utility API helper file that simplifies how requests are sent to the backend from the frontend code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Admin Login and Dashboard Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another feature I worked on was the admin login page and backend authentication flow.&lt;/p&gt;

&lt;p&gt;The goal of this system is to allow authorized administrators to log in and manage content like resources, clinics, and community stories.&lt;/p&gt;

&lt;p&gt;For the frontend side of this feature, I built the admin login page and added loading states so users receive clear feedback while requests are being processed.&lt;/p&gt;

&lt;p&gt;On the backend, I wired the authentication logic so that login requests communicate properly with the database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Handling Location Data for the Clinic Finder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the more challenging technical problems I worked through this week involved &lt;strong&gt;location-based search for clinics&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The clinic finder is designed to help mothers locate nearby support centers. However, searching for clinics by location turned out to be more complex than I initially expected.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;A clinic might be located in &lt;strong&gt;Ikeja&lt;/strong&gt;, but if a user searches for &lt;strong&gt;Lagos&lt;/strong&gt;, the system should still return that clinic.&lt;/p&gt;

&lt;p&gt;Similarly, searches for places like &lt;strong&gt;Ojo&lt;/strong&gt; or &lt;strong&gt;Oshodi-Isolo&lt;/strong&gt; should still surface relevant nearby hospitals.&lt;/p&gt;

&lt;p&gt;To make this work, I had to start working with &lt;strong&gt;latitude and longitude data&lt;/strong&gt;, using geolocation APIs to convert addresses into coordinates.&lt;/p&gt;

&lt;p&gt;Once we have those coordinates, we can compare distances between locations and determine which clinics are closest to the user.&lt;/p&gt;

&lt;p&gt;This part of the system is still evolving, but this week was the first step toward making the clinic search smarter and more accurate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure and Deployment
&lt;/h2&gt;

&lt;p&gt;Another part of the work this week involved preparing the backend infrastructure so the application can run reliably.&lt;/p&gt;

&lt;p&gt;Together with &lt;a href="https://dev.to/grace_olabode_3be546efe9b"&gt;Grace&lt;/a&gt;, we set up several services for the project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB&lt;/strong&gt; for storing application data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudinary&lt;/strong&gt; for hosting images and media assets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render&lt;/strong&gt; for deploying and running the backend server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://dev.to/grace_olabode_3be546efe9b"&gt;Grace&lt;/a&gt; created the initial service accounts, and I worked on configuring the backend to use the environment variables needed to connect everything properly.&lt;/p&gt;

&lt;p&gt;By the end of the week, we had the backend &lt;strong&gt;successfully deployed&lt;/strong&gt;, allowing the team to start testing the system in a live environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supporting the Backend Team&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As Backend Lead, part of my role is also coordinating with other developers contributing to the backend track.&lt;/p&gt;

&lt;p&gt;This week I assigned two early tasks to members of the backend team:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prospect&lt;/strong&gt; worked on the login page functionality&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sophia&lt;/strong&gt; worked on helping set up MongoDB and database configuration
Both did great work, and reviewing their implementations was a good learning experience for me as well.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the best parts of working in a collaborative sprint like this is how much you learn from reading other developers’ code and approaches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;The most difficult challenge I faced this week was working with location data.&lt;/p&gt;

&lt;p&gt;Handling location searches sounds simple at first, but once you start thinking about how people actually search for places, it becomes more complicated.&lt;/p&gt;

&lt;p&gt;A user might search for a state, a city, or even a local government area. Making sure the system still returns relevant clinics requires converting addresses into coordinates and comparing distances accurately.&lt;/p&gt;

&lt;p&gt;I spent a good amount of time experimenting with geolocation APIs and figuring out how to structure the data so this system will work reliably.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Learned
&lt;/h3&gt;

&lt;p&gt;One interesting thing I learned this week is that &lt;strong&gt;cookies can still be used even when the frontend and backend are on different domains.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before this project, I assumed cookies only worked easily when both systems shared the same origin.&lt;/p&gt;

&lt;p&gt;But with proper configuration, cookies can still work across domains — although the security setup is slightly different.&lt;/p&gt;

&lt;p&gt;This was something one of the backend volunteers explained to me, and it opened up new options for how authentication can be handled.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature Progress This Week
&lt;/h2&gt;

&lt;p&gt;By the end of Week 2, several parts of the platform had started taking shape:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Admin login and dashboard system&lt;/li&gt;
&lt;li&gt;Resource content APIs&lt;/li&gt;
&lt;li&gt;Clinic finder backend logic&lt;/li&gt;
&lt;li&gt;Community stories system (in early development)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Seeing these pieces start to connect made this week feel like the moment the project really began to come alive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Team Shoutouts
&lt;/h2&gt;

&lt;p&gt;Building Bloom After is a team effort, and I want to recognize the people making it happen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grace Olabode&lt;/strong&gt; (Engineering Lead) – I collaborated with Grace a lot this week while wiring the backend to the resources and clinic pages she built. She also reviewed and merged several of my pull requests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nanji Lakan&lt;/strong&gt; (Product Lead) – for continuing to guide the direction of the platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agugua Genevieve&lt;/strong&gt; (Design Lead) – for designing an interface that makes the platform feel supportive and easy to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prisca Onyemaechi&lt;/strong&gt; (Lead Maintainer) – for maintaining a smooth GitHub workflow.&lt;/p&gt;

&lt;p&gt;And the backend contributors &lt;strong&gt;Prospect&lt;/strong&gt; and &lt;strong&gt;Sophia&lt;/strong&gt; for their great work this week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Week 2 was where Bloom After moved from planning to actual development.&lt;/p&gt;

&lt;p&gt;With the backend architecture now in place and our first APIs running, the next step is expanding the system so the platform can fully support the resources, clinics, and stories that mothers will rely on.&lt;/p&gt;

&lt;p&gt;There’s still a lot to build — but now the engine is running.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>backend</category>
      <category>devjournal</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Laying the Data Foundation: My Week 1 as Backend Lead for Bloom After</title>
      <dc:creator>Chijioke Uzodinma</dc:creator>
      <pubDate>Fri, 06 Mar 2026 19:19:05 +0000</pubDate>
      <link>https://dev.to/chijioke_uzodinma_d6ae6ef/laying-the-data-foundation-my-week-1-as-backend-lead-for-bloom-after-50n</link>
      <guid>https://dev.to/chijioke_uzodinma_d6ae6ef/laying-the-data-foundation-my-week-1-as-backend-lead-for-bloom-after-50n</guid>
      <description>&lt;p&gt;&lt;strong&gt;By Chijioke Uzodinma | Backend Lead, Bloom After&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When people think about building a website, they usually focus on what users see — the layout, the colors, and the pages.&lt;/p&gt;

&lt;p&gt;But behind every website is something users rarely think about: &lt;strong&gt;the structure of the data that powers it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the &lt;strong&gt;International Women’s Day Sprint with the Tabi Project and TEE Foundation&lt;/strong&gt;, our team is building &lt;strong&gt;Bloom After&lt;/strong&gt; — a website designed to support Nigerian mothers dealing with &lt;strong&gt;Postpartum Depression (PPD)&lt;/strong&gt; by providing trusted resources, clinic information, and supportive community stories.&lt;/p&gt;

&lt;p&gt;As the &lt;strong&gt;Backend Lead&lt;/strong&gt;, my role during Week 1 (our setup week) was to help plan the data structure that will support these features and to get the backend team aligned before development begins.&lt;/p&gt;

&lt;h2&gt;
  
  
  Translating the Product Idea into Data
&lt;/h2&gt;

&lt;p&gt;Before writing backend code, we first had to understand what kind of information Bloom After will manage.&lt;/p&gt;

&lt;p&gt;From the Product Requirements Document (PRD), the platform will eventually include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Educational articles and resources&lt;/li&gt;
&lt;li&gt;A clinic finder to help mothers locate nearby support&lt;/li&gt;
&lt;li&gt;Information about mental health specialists&lt;/li&gt;
&lt;li&gt;Community stories where mothers can share experiences&lt;/li&gt;
&lt;li&gt;Administrative tools to manage the platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My main task this week was translating those ideas into a database plan.&lt;/p&gt;

&lt;p&gt;That meant identifying the tables we would need and thinking through the columns each one should contain.&lt;/p&gt;

&lt;p&gt;Planning this early helps ensure that when development begins, the backend structure already supports the features we want to build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparing the Backend with Supabase
&lt;/h2&gt;

&lt;p&gt;For this project, we decided to use Supabase as our backend platform.&lt;/p&gt;

&lt;p&gt;Supabase provides a PostgreSQL database along with helpful tools for authentication and APIs. Since we are working in a fast sprint environment, it allows us to focus on building features instead of managing server infrastructure.&lt;/p&gt;

&lt;p&gt;During this first week, the focus wasn’t on building the backend yet, but on preparing the &lt;strong&gt;data model and understanding how Supabase will support the system when development starts.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with the Backend Track
&lt;/h2&gt;

&lt;p&gt;Another part of my role this week was helping onboard and coordinate with backend students from other learning tracks who will be contributing to the project.&lt;/p&gt;

&lt;p&gt;Since this was still our setup phase, most of our work involved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reviewing the project requirements&lt;/li&gt;
&lt;li&gt;Understanding how the backend will support the platform&lt;/li&gt;
&lt;li&gt;Discussing the structure of the data&lt;/li&gt;
&lt;li&gt;Preparing for development in the coming weeks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This early alignment helps make sure everyone understands the direction before we begin building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributing to the Resource Preview Section
&lt;/h2&gt;

&lt;p&gt;While the backend planning was ongoing, I also worked on part of the resource preview section on the homepage.&lt;/p&gt;

&lt;p&gt;This section showcases examples of the types of materials the platform will eventually provide to support mothers experiencing postpartum depression.&lt;/p&gt;

&lt;p&gt;Even though the full resource system isn’t built yet, designing this preview section helps communicate the purpose of the platform and what users can expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned This Week
&lt;/h2&gt;

&lt;p&gt;Week 1 reminded me that backend work begins long before writing actual code.&lt;/p&gt;

&lt;p&gt;It starts with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding product requirements&lt;/li&gt;
&lt;li&gt;Designing clear data structures&lt;/li&gt;
&lt;li&gt;Communicating with the team&lt;/li&gt;
&lt;li&gt;Planning how features will connect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also showed me how important collaboration is when working across multiple tracks. Even during the setup phase, conversations with the team helped refine ideas and clarify how the system should work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Team Shoutouts
&lt;/h2&gt;

&lt;p&gt;A huge thank you to the amazing people building Bloom After together:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grace Olabode&lt;/strong&gt; (Engineering Lead) – for setting up the technical structure and guiding the development process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nanji Lakan&lt;/strong&gt; (Product Lead) – for keeping the product focused on the real needs of mothers experiencing PPD.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agugua Genevieve&lt;/strong&gt; (Design Lead) – for designing a platform that feels calm, welcoming, and supportive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prisca Onyemaechi&lt;/strong&gt; (Lead Maintainer) – for keeping our GitHub workflow organized.&lt;/p&gt;

&lt;p&gt;Christine Mwangi (People Manager) – for making sure the team stays connected and supported.&lt;/p&gt;

&lt;p&gt;And to everyone across the UIUX and backend tracks contributing to the sprint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Week 1 was all about laying the groundwork.&lt;/p&gt;

&lt;p&gt;With the data planning and onboarding complete, the next phase will involve actually building the backend systems that power Bloom After — including the resource library, clinic finder, and community stories.&lt;/p&gt;

&lt;p&gt;There’s still a lot to build, but the foundation is in place.&lt;/p&gt;

&lt;p&gt;And that’s where every strong system begins.&lt;/p&gt;

&lt;p&gt;Live Landing Page:&lt;br&gt;
GitHub Repository: &lt;a href="https://github.com/Tabi-Project/Bloom-After.git" rel="noopener noreferrer"&gt;https://github.com/Tabi-Project/Bloom-After.git&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>backend</category>
      <category>webdev</category>
      <category>leadership</category>
    </item>
    <item>
      <title>Building DateSpark: A Simple Date Planning Website</title>
      <dc:creator>Chijioke Uzodinma</dc:creator>
      <pubDate>Sat, 21 Feb 2026 00:30:53 +0000</pubDate>
      <link>https://dev.to/chijioke_uzodinma_d6ae6ef/building-datespark-a-simple-date-planning-website-31lc</link>
      <guid>https://dev.to/chijioke_uzodinma_d6ae6ef/building-datespark-a-simple-date-planning-website-31lc</guid>
      <description>&lt;h2&gt;
  
  
  Intro + Problem + What DateSpark is
&lt;/h2&gt;

&lt;p&gt;Have you ever spent more time arguing about what to do on a date than actually going on the date?&lt;/p&gt;

&lt;p&gt;That was the exact problem we wanted to solve with &lt;strong&gt;DateSpark&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;DateSpark is a simple multi-page website for couples that helps make date planning feel easier and more organized. Instead of endless “what should we do?” messages, the site guides you through a clean flow where you can explore date ideas, view them by category, and keep track of plans.&lt;/p&gt;

&lt;p&gt;Because this was built as a beginner project, we kept the tech stack simple: HTML and CSS only (no JavaScript yet). That made the project more about structure, layout, responsiveness, and consistency across pages — and that’s where most of my learning came from.&lt;/p&gt;

&lt;p&gt;Who it’s for: young couples (or even friends) who want quick, thoughtful date inspiration without stress.&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%2Fyu2up785kh13s8epiymq.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%2Fyu2up785kh13s8epiymq.png" alt="Image of DateSpark generate page" width="800" height="965"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Built (Pages &amp;amp; Flow)
&lt;/h2&gt;

&lt;p&gt;One thing we were intentional about was building DateSpark as a multi-page website, not a single long page.&lt;/p&gt;

&lt;p&gt;We structured the site into five main pages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home&lt;/strong&gt; (index.html) – Introduction and landing page&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generate&lt;/strong&gt; – Where users select preferences and get a date idea&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browse&lt;/strong&gt; – A collection of date ideas organized visually&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Plans&lt;/strong&gt; – A page showing saved or planned ideas&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Login / Sign Up&lt;/strong&gt; – Authentication layout pages&lt;/p&gt;

&lt;p&gt;Even though we are still working with only HTML and CSS, we wanted the project to feel like a real product with proper navigation and flow.&lt;/p&gt;

&lt;p&gt;The user journey looks like this:&lt;/p&gt;

&lt;p&gt;Home → Generate → Browse → My Plans → Auth&lt;/p&gt;

&lt;p&gt;Each page links properly using anchor tags, which helped us understand how multi-page websites connect together without frameworks.&lt;/p&gt;

&lt;p&gt;Working with separate HTML files forced us to stay consistent with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navbar structure&lt;/li&gt;
&lt;li&gt;Class names&lt;/li&gt;
&lt;li&gt;Layout containers&lt;/li&gt;
&lt;li&gt;Spacing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If something was slightly different in one file, the design would immediately break.&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%2F8xfsjl7jbnl7oenvdxur.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%2F8xfsjl7jbnl7oenvdxur.png" alt="Image showing a code block in index.html" width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Main Focus in the Project
&lt;/h2&gt;

&lt;p&gt;Although we both worked across different parts of the project, I found myself spending most of my time on:&lt;/p&gt;

&lt;p&gt;Structuring page layouts&lt;/p&gt;

&lt;p&gt;Implementing Grid and Flexbox&lt;/p&gt;

&lt;p&gt;Making pages responsive&lt;/p&gt;

&lt;p&gt;Debugging CSS issues&lt;/p&gt;

&lt;p&gt;Making sure styles remained consistent across files&lt;/p&gt;

&lt;p&gt;What surprised me most was how much time layout structuring actually takes.&lt;/p&gt;

&lt;p&gt;Designs may look simple, but translating them into properly nested HTML containers requires careful thinking:&lt;/p&gt;

&lt;p&gt;Which elements should be wrapped inside a &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;?&lt;/p&gt;

&lt;p&gt;When should something be a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; vs an &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;?&lt;/p&gt;

&lt;p&gt;Should this layout use &lt;em&gt;Grid&lt;/em&gt; or &lt;em&gt;Flexbox&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;How will this behave on mobile?&lt;/p&gt;

&lt;p&gt;Those questions shaped most of my contribution.&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%2F2l73mrfkfgakycnx5p8l.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%2F2l73mrfkfgakycnx5p8l.png" alt="Image showing home page css code" width="700" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Generate Page (Prototype Logic with HTML &amp;amp; CSS)
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Generate page&lt;/strong&gt; is one of the most important parts of DateSpark because it represents the main idea of the project.&lt;/p&gt;

&lt;p&gt;Right now, since we are working with only HTML and CSS, the “generation” feature is a structured prototype. Users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select options from dropdown menus&lt;/li&gt;
&lt;li&gt;Click a generate button&lt;/li&gt;
&lt;li&gt;View a pre-designed result section&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although the result is static for now, building the layout required careful structuring.&lt;/p&gt;

&lt;p&gt;We had to design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The form layout&lt;/li&gt;
&lt;li&gt;The spacing between selects&lt;/li&gt;
&lt;li&gt;The result card section&lt;/li&gt;
&lt;li&gt;Proper alignment between text and image&lt;/li&gt;
&lt;li&gt;Responsive stacking for mobile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even without JavaScript, we wanted the page to feel real and complete.&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%2Feaqbu1zhbhxwiep05iwp.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%2Feaqbu1zhbhxwiep05iwp.png" alt="Image showing generate page" width="800" height="348"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Layout Decisions: Grid vs Flexbox&lt;/strong&gt;&lt;br&gt;
One of the biggest things I practiced in this project was deciding when to use Grid and when to use Flexbox.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For larger sections like:&lt;/li&gt;
&lt;li&gt;Page layout containers&lt;/li&gt;
&lt;li&gt;Two-column sections&lt;/li&gt;
&lt;li&gt;Centering main content
We used CSS Grid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For smaller elements like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigation links&lt;/li&gt;
&lt;li&gt;Card buttons&lt;/li&gt;
&lt;li&gt;Tags inside cards&lt;/li&gt;
&lt;li&gt;Aligning items horizontally&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We used Flexbox.&lt;/p&gt;

&lt;p&gt;At first, I sometimes used Flexbox for everything. But I started noticing that Grid made certain layouts cleaner and more predictable.&lt;/p&gt;

&lt;p&gt;Understanding the difference between the two helped improve the structure of our pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Responsiveness and the Hamburger Menu
&lt;/h2&gt;

&lt;p&gt;Responsiveness was one of the more technical parts of our HTML and CSS work.&lt;/p&gt;

&lt;p&gt;On smaller screens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigation links could not stay horizontal&lt;/li&gt;
&lt;li&gt;Cards needed to stack&lt;/li&gt;
&lt;li&gt;Spacing needed adjustment&lt;/li&gt;
&lt;li&gt;Font sizes needed slight changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To solve the navigation issue, we built a hamburger menu using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A hidden checkbox&lt;/li&gt;
&lt;li&gt;A label styled as the toggle button&lt;/li&gt;
&lt;li&gt;CSS selectors to show/hide navigation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before adding this, the navbar would overflow on mobile devices.&lt;/p&gt;

&lt;p&gt;After implementing it, the layout became more usable and clean on smaller ooooscreens.&lt;/p&gt;

&lt;p&gt;Working on responsiveness helped me understand how much planning mobile design requires.&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS Debugging — The Real Learning Curve
&lt;/h2&gt;

&lt;p&gt;The part I personally spent the most time on was debugging CSS.&lt;/p&gt;

&lt;p&gt;Some common issues I encountered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A class name mismatch between HTML and CSS&lt;/li&gt;
&lt;li&gt;Styles applying on one page but not another&lt;/li&gt;
&lt;li&gt;Grid alignment shifting unexpectedly&lt;/li&gt;
&lt;li&gt;Flex items stretching differently than expected&lt;/li&gt;
&lt;li&gt;Margin and padding conflicts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike JavaScript, CSS doesn’t give error messages.&lt;/p&gt;

&lt;p&gt;If something is wrong, it simply doesn’t work.&lt;/p&gt;

&lt;p&gt;I learned to rely heavily on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inspect Element in the browser&lt;/li&gt;
&lt;li&gt;Checking computed styles&lt;/li&gt;
&lt;li&gt;Reviewing class names carefully&lt;/li&gt;
&lt;li&gt;Removing unnecessary nested containers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project improved my patience and attention to detail more than anything else&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%2Fvh3czfd5x2u4b183h3np.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%2Fvh3czfd5x2u4b183h3np.png" alt="Image of debug console" width="436" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Replicating the Generate Select Design from Figma:&lt;/strong&gt;&lt;br&gt;
One of the hardest parts for me was trying to match the Generate page dropdowns to the Figma design.&lt;/p&gt;

&lt;p&gt;Each option block had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A main label (e.g. Budget)&lt;/li&gt;
&lt;li&gt;A smaller subtext (e.g. Price Range)&lt;/li&gt;
&lt;li&gt;The dropdown arrow aligned to the far right&lt;/li&gt;
&lt;li&gt;Clean spacing and alignment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In theory, it looks simple.&lt;/p&gt;

&lt;p&gt;In reality, aligning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The title&lt;/li&gt;
&lt;li&gt;The subtitle&lt;/li&gt;
&lt;li&gt;The  element&lt;/li&gt;
&lt;li&gt;The arrow positioning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;was frustrating.&lt;/p&gt;

&lt;p&gt;Sometimes the arrow would shift.&lt;br&gt;
Sometimes the spacing looked off.&lt;br&gt;
Sometimes the text alignment didn’t match the design.&lt;/p&gt;

&lt;p&gt;Since native  elements have default browser styling, it made customization harder than expected.&lt;/p&gt;

&lt;p&gt;It took several adjustments with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexbox alignment&lt;/li&gt;
&lt;li&gt;Padding tweaks&lt;/li&gt;
&lt;li&gt;Width adjustments&lt;/li&gt;
&lt;li&gt;Removing default styles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before it looked close to the design.&lt;/p&gt;

&lt;p&gt;That experience taught me that small UI details can take more effort than large layout sections.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Project Taught Me
&lt;/h2&gt;

&lt;p&gt;Working on DateSpark helped me understand that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Layout precision matters more than I thought&lt;/li&gt;
&lt;li&gt;Replicating designs exactly is not always easy&lt;/li&gt;
&lt;li&gt;CSS debugging requires patience&lt;/li&gt;
&lt;li&gt;Small elements can affect large layouts&lt;/li&gt;
&lt;li&gt;Consistency across multiple HTML files is important&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before this project, I saw HTML and CSS as basic tools.&lt;/p&gt;

&lt;p&gt;After building a multi-page responsive website, I now understand how much structure and planning they require.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Would Improve Next
&lt;/h2&gt;

&lt;p&gt;If we continue developing DateSpark, the next steps would include:&lt;/p&gt;

&lt;p&gt;Adding JavaScript to make the date generator fully dynamic&lt;/p&gt;

&lt;p&gt;Improving the dropdown customization further&lt;/p&gt;

&lt;p&gt;Refining spacing and responsiveness&lt;/p&gt;

&lt;p&gt;Possibly integrating storage so plans can be saved&lt;/p&gt;

&lt;p&gt;For now, as a pure HTML and CSS project, DateSpark represents our understanding of layout, structure, responsiveness, and collaborative development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributors
&lt;/h2&gt;

&lt;p&gt;This project was a team effort built with my fantastic partner.&lt;/p&gt;

&lt;p&gt;Check out their GitHub here: &lt;a href="https://github.com/devanike" rel="noopener noreferrer"&gt;https://github.com/devanike&lt;/a&gt;&lt;br&gt;
Read their thoughts on building DateSpark in their case study here:&lt;a href="https://dev.to/grace_olabode_3be546efe9b/building-datespark-a-date-planning-app-for-couples-2d46"&gt;https://dev.to/grace_olabode_3be546efe9b/building-datespark-a-date-planning-app-for-couples-2d46&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>css</category>
      <category>html</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
