<?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: Aisha-Aliyu</title>
    <description>The latest articles on DEV Community by Aisha-Aliyu (@aishaaliyu).</description>
    <link>https://dev.to/aishaaliyu</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%2F3542181%2F318ca9c1-111c-4365-985c-7d197916482d.png</url>
      <title>DEV Community: Aisha-Aliyu</title>
      <link>https://dev.to/aishaaliyu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aishaaliyu"/>
    <language>en</language>
    <item>
      <title>How I Turned My Struggles Into Code: Building BUDDY, a Mental Health App</title>
      <dc:creator>Aisha-Aliyu</dc:creator>
      <pubDate>Fri, 03 Oct 2025 00:03:52 +0000</pubDate>
      <link>https://dev.to/aishaaliyu/how-i-turned-my-struggles-into-code-building-buddy-a-mental-health-app-1pak</link>
      <guid>https://dev.to/aishaaliyu/how-i-turned-my-struggles-into-code-building-buddy-a-mental-health-app-1pak</guid>
      <description>&lt;p&gt;There are projects you build to get a grade.&lt;br&gt;
There are projects you build to land a job.&lt;br&gt;
And then… there are projects you build because your soul needed it.&lt;/p&gt;

&lt;p&gt;For me, “Buddy” was that project.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;💭 The Story Behind the Code&lt;/p&gt;

&lt;p&gt;During my final year, life got really heavy. Between academic pressure, family struggles, and feeling like I was carrying the weight of everything alone… my mental health took a hit. I slipped into a quiet kind of depression — the type that hides behind smiles and “I’m fine” messages.&lt;/p&gt;

&lt;p&gt;I didn’t really have anyone I felt safe talking to. But I had code.&lt;/p&gt;

&lt;p&gt;One night, while staring blankly at my laptop, I had a simple thought:&lt;/p&gt;

&lt;p&gt;“What if I could build something that listens to me when nobody else can?”&lt;/p&gt;

&lt;p&gt;That was the spark that became Buddy — a mental health companion web app designed to support, comfort, and encourage users in moments when they feel unheard.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🧠 What Buddy Does&lt;/p&gt;

&lt;p&gt;Buddy isn’t just a chatbot. It’s designed to be a holistic mental wellness companion with features that reflect real emotional needs:&lt;br&gt;
    • 📝 VentSpace — a private journal space, inspired by the Notes app, where users can freely express their thoughts without judgment.&lt;br&gt;
    • 👥 Emergency Contacts — users can set up to three trusted contacts who get alerted in moments of distress.&lt;br&gt;
    • 🌈 Mood Check-in — daily mood logging to help users become more emotionally aware.&lt;br&gt;
    • 📈 Mood Tracking Dashboard — beautifully visualized with charts to see emotional trends over time.&lt;br&gt;
    • 💬 AI-Powered Chat — a warm, context-aware conversation with “Buddy,” designed to adapt its tone to your mood (e.g., soft when you’re sad, hype when you’re excited).&lt;br&gt;
    • 🧘 Mindfulness &amp;amp; Motivation — meditation guides, daily inspirational quotes, and a community section for support.&lt;br&gt;
    • 👤 Profile Customization — making the experience feel personal, because mental health support should never feel generic.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;⚡ The Tech Behind Buddy&lt;/p&gt;

&lt;p&gt;I built Buddy using a MERN-style structure, with a clean and responsive frontend and a secure backend:&lt;br&gt;
    • Frontend: HTML, CSS, and vanilla JS — fully responsive for mobile use.&lt;br&gt;
    • Backend: Node.js, Express, MongoDB (via Mongoose)&lt;br&gt;
    • AI Chat: Integrated through OpenRouter API (hidden securely in .env)&lt;br&gt;
    • Hosting: Vercel for frontend, Render for backend&lt;br&gt;
    • Version Control: Git + GitHub for collaboration and deployment&lt;/p&gt;

&lt;p&gt;Every line of code wasn’t just a technical step — it was therapeutic. It gave me something to hold on to when everything else felt unstable.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🫶 Why This Project Means Everything to Me&lt;/p&gt;

&lt;p&gt;I didn’t build Buddy because I wanted to impress anyone.&lt;br&gt;
I built it because I needed it.&lt;/p&gt;

&lt;p&gt;It became the thing I turned to when I couldn’t explain how I felt out loud. It became my late-night friend, my quiet listener, my little act of self-rescue.&lt;/p&gt;

&lt;p&gt;And now, sharing it publicly, my hope is that Buddy can also be a light for someone else who’s struggling in silence. Even if it helps one person feel a little less alone, it’ll be worth every sleepless night I spent building it.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🚀 What I Learned&lt;/p&gt;

&lt;p&gt;This project taught me more than any textbook ever could:&lt;br&gt;
    • How to ship a full-stack app end-to-end.&lt;br&gt;
    • How to secure API keys, set up routes, and structure scalable codebases.&lt;br&gt;
    • How to make responsive designs that prioritize user experience.&lt;br&gt;
    • How to integrate AI ethically and meaningfully.&lt;br&gt;
    • And most importantly: how powerful technology can be when it comes from a place of empathy.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;💼 A Message to Recruiters &amp;amp; Fellow Devs&lt;/p&gt;

&lt;p&gt;To any recruiter reading this: this isn’t just a portfolio piece. It’s a part of my story. If you’re looking for a developer who brings heart, resilience, and creativity to her work — that’s me.&lt;/p&gt;

&lt;p&gt;To my fellow devs who might be struggling quietly: your feelings are valid. And sometimes, building something for yourself can end up being the most meaningful thing you ever create. Don’t underestimate that.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🌐 Check It Out&lt;/p&gt;

&lt;p&gt;👉 Live App: buddy-app-six.vercel.app&lt;br&gt;
👉 GitHub: github.com/Aisha-Aliyu/buddy-app&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;This isn’t the end of Buddy — it’s just the beginning. ✨&lt;br&gt;
I plan to keep improving it, adding new features, and maybe one day turning it into something that can genuinely support thousands of people around the world.&lt;/p&gt;

&lt;p&gt;Thank you for reading my story 💛&lt;br&gt;
— Aisha Aliyu&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>🚀 How I Built a Luxury Restaurant Reservation System with Next.js &amp; Prisma</title>
      <dc:creator>Aisha-Aliyu</dc:creator>
      <pubDate>Wed, 01 Oct 2025 23:19:11 +0000</pubDate>
      <link>https://dev.to/aishaaliyu/how-i-built-a-luxury-restaurant-reservation-system-with-nextjs-prisma-3876</link>
      <guid>https://dev.to/aishaaliyu/how-i-built-a-luxury-restaurant-reservation-system-with-nextjs-prisma-3876</guid>
      <description>&lt;p&gt;As developers, we learn best by building real projects. I wanted to challenge myself to create something that felt like a production-ready full-stack app — not just another todo list.&lt;/p&gt;

&lt;p&gt;That’s how I built Elan Royale, a luxury restaurant reservation system where users can book a table, make a deposit, and receive instant confirmation.&lt;/p&gt;

&lt;p&gt;This project not only helped me practice Next.js, Prisma, and full-stack development, but also gave me something powerful to showcase in my portfolio.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🥂 The Problem I Wanted to Solve&lt;/p&gt;

&lt;p&gt;Restaurants often rely on manual reservations (phone calls, paper logs) which can be messy and lead to errors. I wanted to create a modern solution that:&lt;br&gt;
    • Lets users easily reserve a table online.&lt;br&gt;
    • Collects a deposit using Stripe payments.&lt;br&gt;
    • Automatically confirms and stores the booking.&lt;/p&gt;

&lt;p&gt;This was the idea behind Elan Royale.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;🛠 Tech Stack&lt;/p&gt;

&lt;p&gt;I picked technologies that are used in real production apps:&lt;br&gt;
    • Next.js 15 → for server-side rendering and API routes.&lt;br&gt;
    • Prisma ORM → to model and interact with the database.&lt;br&gt;
    • TailwindCSS → for fast, modern, responsive styling.&lt;br&gt;
    • Stripe → for payment gateway integration.&lt;br&gt;
    • Vercel → for smooth deployment and hosting.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;⚙️ Building the System&lt;/p&gt;

&lt;p&gt;Here’s how I built it step by step:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Setting up Next.js&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I started by creating a Next.js app using the App Router. This gave me a strong foundation with server-side rendering and API routes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Designing the UI&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Using TailwindCSS, I designed a clean, modern interface.&lt;br&gt;
    • A Hero section to showcase the restaurant’s luxury feel.&lt;br&gt;
    • A Reservation Form with fields for name, email, phone, party size, date/time, and notes.&lt;/p&gt;


&lt;h2&gt;Reserve a Table&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Database with Prisma&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I defined the reservation schema in Prisma:&lt;/p&gt;

&lt;p&gt;model Reservation {&lt;br&gt;
  id              String   &lt;a class="mentioned-user" href="https://dev.to/id"&gt;@id&lt;/a&gt; &lt;a class="mentioned-user" href="https://dev.to/default"&gt;@default&lt;/a&gt;(cuid())&lt;br&gt;
  name            String&lt;br&gt;
  email           String&lt;br&gt;
  phone           String&lt;br&gt;
  partySize       Int&lt;br&gt;
  reservationTime DateTime&lt;br&gt;
  area            String&lt;br&gt;
  notes           String?&lt;br&gt;
  createdAt       DateTime &lt;a class="mentioned-user" href="https://dev.to/default"&gt;@default&lt;/a&gt;(now())&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;This made it easy to create and query reservations in the database.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;API Routes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I created an API route (/api/reservations) to handle saving reservations into the database.&lt;/p&gt;

&lt;p&gt;export async function POST(req: Request) {&lt;br&gt;
  const body = await req.json();&lt;br&gt;
  const reservation = await prisma.reservation.create({ data: body });&lt;br&gt;
  return NextResponse.json(reservation, { status: 201 });&lt;br&gt;
}&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stripe Payment Integration&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before confirming a reservation, the system redirects users to Stripe Checkout to pay a deposit.&lt;br&gt;
    • User fills the form → saved in DB.&lt;br&gt;
    • Stripe Checkout opens → user pays.&lt;br&gt;
    • On success, they are redirected to /confirmation.&lt;/p&gt;

&lt;p&gt;const paymentRes = await fetch("/api/create-checkout-session", { ... });&lt;br&gt;
const data = await paymentRes.json();&lt;br&gt;
window.location.href = data.url;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confirmation Page&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After payment, users land on a Confirmation Page showing reservation details.&lt;/p&gt;

&lt;h1&gt;
  🎉 Reservation Confirmed!
&lt;/h1&gt;

&lt;p&gt;Thank you for booking with Elan Royale.&lt;/p&gt;

&lt;p&gt;⚡ Challenges I Faced &amp;amp; How I Solved Them&lt;br&gt;
    1.  Prisma errors → Fixed by handling missing/invalid input properly in API.&lt;br&gt;
    2.  Hero image loading slowly → Solved by switching to next/image for optimization.&lt;br&gt;
    3.  useSearchParams error in Next.js 15 → Solved by wrapping in  to support client-side params.&lt;/p&gt;

&lt;p&gt;🎨 Final Result&lt;/p&gt;

&lt;p&gt;✅ Users can make a reservation online.&lt;br&gt;
✅ Payment deposit handled with Stripe.&lt;br&gt;
✅ Confirmation page with booking details.&lt;br&gt;
✅ Fully deployed to Vercel.&lt;/p&gt;

&lt;p&gt;🔗 Live Demo: [elan-royale.vercel.app]&lt;br&gt;
🔗 GitHub Repo: github.com/Aisha-Aliyu/elan-royale.git&lt;a href="![%20](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q0krot7mjzlhyl92sir5.png)"&gt;&lt;/a&gt;&lt;br&gt;
⸻&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%2Fu2cbxkg0gaytwv1dmb0h.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%2Fu2cbxkg0gaytwv1dmb0h.png" alt=" " width="800" height="1731"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 Lessons Learned&lt;br&gt;
    • Next.js App Router makes full-stack projects much cleaner.&lt;br&gt;
    • Prisma is powerful for database modeling and migrations.&lt;br&gt;
    • Stripe integration is smooth but requires careful error handling.&lt;br&gt;
    • Deployment on Vercel is fast and beginner-friendly.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;✅ Conclusion&lt;/p&gt;

&lt;p&gt;This project showed me how to bring together frontend, backend, database, and payments into one seamless full-stack app.&lt;/p&gt;

&lt;p&gt;If you’d like to check it out, here’s the live demo and GitHub repo.&lt;/p&gt;

&lt;p&gt;I’m also open to collaborations and freelance opportunities in full-stack web development — feel free to connect! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
