<?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: Muhammad Awais</title>
    <description>The latest articles on DEV Community by Muhammad Awais (@imawais).</description>
    <link>https://dev.to/imawais</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2803387%2Fc79b25f7-67b9-4c74-aa55-a2ad3033047c.png</url>
      <title>DEV Community: Muhammad Awais</title>
      <link>https://dev.to/imawais</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/imawais"/>
    <language>en</language>
    <item>
      <title>SKINOVA - YouCam AI Hackathon</title>
      <dc:creator>Muhammad Awais</dc:creator>
      <pubDate>Mon, 17 Aug 2026 11:02:42 +0000</pubDate>
      <link>https://dev.to/imawais/skinova-youcam-ai-hackathon-3k46</link>
      <guid>https://dev.to/imawais/skinova-youcam-ai-hackathon-3k46</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyp6yypy7x17k1tu6t996.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyp6yypy7x17k1tu6t996.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://skinova-ai.vercel.app" rel="noopener noreferrer"&gt;https://skinova-ai.vercel.app&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Demo video:&lt;/strong&gt; &lt;a href="https://youtu.be/3twwbGyQqWA" rel="noopener noreferrer"&gt;https://youtu.be/3twwbGyQqWA&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/imawais-engineer/Skinova" rel="noopener noreferrer"&gt;https://github.com/imawais-engineer/Skinova&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Track:&lt;/strong&gt; Skin AI (YouCam API Skin AI &amp;amp; Apparel VTO Hackathon)&lt;/p&gt;


&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Most skincare apps give you a score — and then leave you alone.&lt;/p&gt;

&lt;p&gt;You might see numbers for acne, pores, redness, or hydration, but still wonder: &lt;em&gt;What does this actually mean? What should I do next? Is my routine working?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That gap inspired &lt;strong&gt;Skinova&lt;/strong&gt;: a consumer skincare intelligence companion built for the &lt;strong&gt;YouCam API Skin AI&lt;/strong&gt; track. We wanted to turn a simple selfie into something useful — understandable insights, practical guidance, and a reason to come back.&lt;/p&gt;

&lt;p&gt;Skinova is not positioned as medical diagnosis. It is &lt;strong&gt;skincare education and consumer guidance&lt;/strong&gt; — helping people make better routine decisions with clarity instead of confusion.&lt;/p&gt;


&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Skinova is a full product experience built around &lt;strong&gt;YouCam Skin AI&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scan&lt;/strong&gt; — Upload a clear, front-facing selfie or choose a bundled YouCam playground sample.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyze&lt;/strong&gt; — YouCam Skin AI evaluates skin characteristics such as acne, pores, texture, redness, oiliness, moisture, wrinkles, and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understand&lt;/strong&gt; — Skinova translates technical scores into plain-language explanations, Fitzpatrick typing, skin tone context, face attributes, and concern detection masks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Act&lt;/strong&gt; — Receive personalized morning and night routine guidance (AI-generated when configured, with Neon persistence).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask&lt;/strong&gt; — Use the bounded Skin Coach for educational skincare questions, grounded in scan context and curated knowledge (optional Qwen LLM + RAG).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track&lt;/strong&gt; — Follow scan history, trend deltas, and a YouCam Skin Simulation before/after preview on Progress.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The value is not simply &lt;em&gt;"we called an API once."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The value is the &lt;strong&gt;continuous journey&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analyze → Understand → Decide → Improve&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  How we built it
&lt;/h2&gt;

&lt;p&gt;Skinova is a &lt;strong&gt;Next.js 15&lt;/strong&gt; web app using &lt;strong&gt;TypeScript&lt;/strong&gt;, &lt;strong&gt;React 19&lt;/strong&gt;, and &lt;strong&gt;Tailwind CSS&lt;/strong&gt;, deployed on &lt;strong&gt;Vercel&lt;/strong&gt; with &lt;strong&gt;Neon Postgres&lt;/strong&gt; for accounts, scan history, routines, coach memory, and simulation results.&lt;/p&gt;
&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;

&lt;p&gt;We separated the product into clear layers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public layer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Marketing landing page at &lt;code&gt;/&lt;/code&gt; with &lt;strong&gt;Live status&lt;/strong&gt; (&lt;code&gt;GET /api/skinova/health&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Sign up at &lt;code&gt;/signup&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Log in at &lt;code&gt;/login&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Privacy and Terms pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Authenticated app&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dashboard&lt;/li&gt;
&lt;li&gt;Skin Scan (six-step live stepper)&lt;/li&gt;
&lt;li&gt;Results (scores, personalization, concern masks)&lt;/li&gt;
&lt;li&gt;Routine&lt;/li&gt;
&lt;li&gt;Skin Coach&lt;/li&gt;
&lt;li&gt;Progress (trends, history, Skin Simulation)&lt;/li&gt;
&lt;li&gt;Settings (reset scan, routine, or coach data)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;YouCam integration — server-side only&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /api/skinova/scan&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/skinova/scan-status/[taskId]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/skinova/simulation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/skinova/simulation-status/[taskId]&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;API keys never touch the browser. The client communicates with Skinova's own server-side API routes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Five YouCam APIs in production&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;API&lt;/th&gt;
&lt;th&gt;Role in Skinova&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AI Skin Analysis&lt;/td&gt;
&lt;td&gt;Primary scan workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fitzpatrick Scale Analyzer&lt;/td&gt;
&lt;td&gt;Post-scan personalization on Results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skin Tone Analysis&lt;/td&gt;
&lt;td&gt;Post-scan tone context on Results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Face Analyzer&lt;/td&gt;
&lt;td&gt;Face shape, age, and feature context on Results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Skin Simulation&lt;/td&gt;
&lt;td&gt;Before/after preview on Progress&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  YouCam Skin AI workflow
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Selfie or sample
   ↓
Secure upload preparation
(file metadata + presigned upload)
   ↓
YouCam Skin AI task creation
   ↓
Polling until analysis completes
   ↓
Personalization enrichment (Fitzpatrick, skin tone, face)
   ↓
Skinova normalization
   ↓
Consumer-friendly guidance
   ↓
Results → Routine → Coach → Progress (simulation)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;We implemented the real YouCam Skin Analysis pipeline end-to-end:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File metadata request&lt;/li&gt;
&lt;li&gt;Presigned upload&lt;/li&gt;
&lt;li&gt;Task creation&lt;/li&gt;
&lt;li&gt;Asynchronous polling&lt;/li&gt;
&lt;li&gt;Result handling&lt;/li&gt;
&lt;li&gt;Error mapping&lt;/li&gt;
&lt;li&gt;Consumer-friendly interpretation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common image/API problems, such as &lt;strong&gt;face too small&lt;/strong&gt; or &lt;strong&gt;poor lighting&lt;/strong&gt;, are translated into actionable messages for the user.&lt;/p&gt;

&lt;p&gt;View the full architecture diagram: &lt;a href="https://imawais-engineer.github.io/Skinova/docs/architecture.html" rel="noopener noreferrer"&gt;&lt;strong&gt;Skinova — System Architecture&lt;/strong&gt;&lt;/a&gt; .&lt;/p&gt;
&lt;h3&gt;
  
  
  Authentication and persistence
&lt;/h3&gt;

&lt;p&gt;We added a real authentication boundary so judges and users enter the product intentionally.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sign up / Log in&lt;/strong&gt; with name, email, and password&lt;/li&gt;
&lt;li&gt;Passwords hashed with &lt;strong&gt;bcrypt&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sessions stored as signed &lt;strong&gt;JWT&lt;/strong&gt; HTTP-only cookies (&lt;code&gt;jose&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Users, scans, routines, coach history, and simulation previews persisted in &lt;strong&gt;Neon Postgres&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Protected routes enforced through &lt;strong&gt;middleware&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Per-user rate limits on scan, simulation, coach, and routine routes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Design
&lt;/h3&gt;

&lt;p&gt;The UI uses a premium dark aesthetic with cyan/emerald accents, journey breadcrumbs (&lt;strong&gt;Analyze → Understand → Decide → Improve&lt;/strong&gt;), and a cohesive app shell designed to feel like a real consumer skincare product rather than a hackathon dashboard.&lt;/p&gt;


&lt;h2&gt;
  
  
  Challenges we ran into
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Turning API output into consumer value
&lt;/h3&gt;

&lt;p&gt;Raw &lt;code&gt;ui_score&lt;/code&gt; values are not helpful on their own.&lt;/p&gt;

&lt;p&gt;We built a normalization layer that converts YouCam output into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Concern cards&lt;/li&gt;
&lt;li&gt;Plain-language explanations&lt;/li&gt;
&lt;li&gt;Priorities&lt;/li&gt;
&lt;li&gt;Routine logic&lt;/li&gt;
&lt;li&gt;Concern detection masks&lt;/li&gt;
&lt;li&gt;Fitzpatrick, skin tone, and face personalization context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to make the AI results understandable to someone who has never used a skin-analysis tool before.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Building an asynchronous scan workflow
&lt;/h3&gt;

&lt;p&gt;Skin analysis is not instant.&lt;/p&gt;

&lt;p&gt;We implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload states&lt;/li&gt;
&lt;li&gt;A six-step progress stepper&lt;/li&gt;
&lt;li&gt;Polling&lt;/li&gt;
&lt;li&gt;Loading feedback&lt;/li&gt;
&lt;li&gt;Success states&lt;/li&gt;
&lt;li&gt;Failure states&lt;/li&gt;
&lt;li&gt;Actionable error messages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the experience feel like a real product instead of a raw API demonstration.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Product architecture refactor
&lt;/h3&gt;

&lt;p&gt;We moved from a temporary dashboard-first prototype to a proper:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public Landing Page → Authentication → Authenticated Product&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;without breaking the existing YouCam integration — then extended it with Neon-backed scan history, routines, coach memory, and simulation persistence.&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Balancing ambition with hackathon scope
&lt;/h3&gt;

&lt;p&gt;There are many directions Skinova could take.&lt;/p&gt;

&lt;p&gt;Instead of over-building marketplace, medical, or affiliate features, we focused on a complete core experience:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scan → Explain → Guide → Track → Simulate&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  5. Safety and compliance
&lt;/h3&gt;

&lt;p&gt;We deliberately avoided medical diagnosis language and treatment claims.&lt;/p&gt;

&lt;p&gt;Skinova is positioned as &lt;strong&gt;educational skincare guidance&lt;/strong&gt;, not a medical diagnostic system.&lt;/p&gt;
&lt;h3&gt;
  
  
  6. Keeping preview images aligned with mask overlays
&lt;/h3&gt;

&lt;p&gt;Results compare an &lt;strong&gt;original scan&lt;/strong&gt; with YouCam &lt;strong&gt;concern masks&lt;/strong&gt;. We persisted &lt;code&gt;preview_image_url&lt;/code&gt; and &lt;code&gt;sample_id&lt;/code&gt; in Neon so the correct source photo survives reloads, device changes, and account return visits — not just the current browser session.&lt;/p&gt;


&lt;h2&gt;
  
  
  Accomplishments that we're proud of
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Built a complete consumer-facing skincare experience instead of a single API wrapper.&lt;/li&gt;
&lt;li&gt;Integrated &lt;strong&gt;five YouCam Skin AI APIs&lt;/strong&gt; with a live production deployment.&lt;/li&gt;
&lt;li&gt;Added a proper public landing page and authenticated application architecture.&lt;/li&gt;
&lt;li&gt;Implemented real &lt;strong&gt;sign-up and login&lt;/strong&gt; with Neon-backed persistence.&lt;/li&gt;
&lt;li&gt;Kept YouCam API credentials strictly server-side.&lt;/li&gt;
&lt;li&gt;Built asynchronous scan and simulation processing with task polling and error handling.&lt;/li&gt;
&lt;li&gt;Converted technical AI results into consumer-friendly skincare insights with masks and personalization.&lt;/li&gt;
&lt;li&gt;Connected analysis to AI routine guidance, RAG-grounded Skin Coach, and progress tracking with simulation.&lt;/li&gt;
&lt;li&gt;Created a polished, responsive UI with journey breadcrumbs and scan history.&lt;/li&gt;
&lt;li&gt;Published a silent screen demo video and full submission documentation.&lt;/li&gt;
&lt;li&gt;Maintained clear safety boundaries by avoiding medical diagnosis and treatment claims.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, we turned:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Analyze my skin."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;into:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Understand my skin → know what to do → track what changes → preview improvement direction."&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  What we learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API integration is only half the product.&lt;/strong&gt; Judges and users care about what happens &lt;em&gt;after&lt;/em&gt; the scan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;YouCam's image requirements matter.&lt;/strong&gt; Front-facing selfies with the face filling an appropriate portion of the frame and sufficient lighting produce better results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server-side boundaries are essential.&lt;/strong&gt; Keeping YouCam credentials, authentication secrets, and password hashes away from the client makes the architecture safer and easier to reason about.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Async workflows need good UX.&lt;/strong&gt; Users should always understand whether their image is uploading, processing, completed, or failed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical output needs interpretation.&lt;/strong&gt; Raw AI scores are much less valuable than clear explanations, masks, and actionable context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo mode vs. live mode&lt;/strong&gt; makes the application easier to test when API units or credentials are limited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistence matters for trust.&lt;/strong&gt; Scan history, routines, coach threads, and simulation previews should survive reloads — Neon is the source of truth; the browser is a cache.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A focused product beats an oversized prototype.&lt;/strong&gt; A complete scan → explain → guide → track journey demonstrates more value than many disconnected features.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  What's next for Skinova
&lt;/h2&gt;

&lt;p&gt;Skinova's current focus is proving the core consumer experience. The next stage would be turning that foundation into a deeper long-term skincare intelligence platform.&lt;/p&gt;

&lt;p&gt;Potential next steps include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Long-term skin history&lt;/strong&gt; with richer trend analysis across many scans.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personalized routine evolution&lt;/strong&gt; based on repeated scans and adherence signals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smarter progress comparisons&lt;/strong&gt; across weeks and months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More advanced Skin Coach capabilities&lt;/strong&gt; with stronger personalization and safety controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product-aware recommendations&lt;/strong&gt; connected to a user's specific skin concerns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Routine adherence tracking&lt;/strong&gt; to understand whether users are consistently following their routine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deeper YouCam API capabilities&lt;/strong&gt; as additional Skin AI features become relevant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-focused user controls&lt;/strong&gt; for managing and deleting personal skin-analysis data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile-first experiences&lt;/strong&gt; for making regular skin scans easier.&lt;/li&gt;
&lt;li&gt;Eventually, a broader &lt;strong&gt;skin intelligence platform&lt;/strong&gt; that connects analysis, education, routine decisions, and measurable progress in one place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The long-term vision is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Skinova shouldn't just tell you what your skin looks like today. It should help you understand your skin, make better decisions, and see how those decisions change your journey over time.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fastest path — production&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://skinova-ai.vercel.app" rel="noopener noreferrer"&gt;https://skinova-ai.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Get Started&lt;/strong&gt; and create an account (or log in).&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Skin Scan&lt;/strong&gt; — upload a selfie or pick &lt;strong&gt;Try one of these&lt;/strong&gt; (YouCam playground sample).&lt;/li&gt;
&lt;li&gt;Wait for the six-step scan to complete.&lt;/li&gt;
&lt;li&gt;Explore &lt;strong&gt;Results&lt;/strong&gt;, &lt;strong&gt;Routine&lt;/strong&gt;, &lt;strong&gt;Skin Coach&lt;/strong&gt;, and &lt;strong&gt;Progress&lt;/strong&gt; (run Skin Simulation on Progress).&lt;/li&gt;
&lt;li&gt;Log out and note &lt;strong&gt;Live status&lt;/strong&gt; on the landing page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Local setup&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/imawais-engineer/Skinova.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Skinova
npm run setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;DATABASE_URL&lt;/code&gt; from &lt;a href="https://neon.tech" rel="noopener noreferrer"&gt;Neon&lt;/a&gt; to &lt;code&gt;.env&lt;/code&gt; and run &lt;code&gt;npm run db:init&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Get Started&lt;/strong&gt; and create an account&lt;/li&gt;
&lt;li&gt;Follow the same scan → results → routine → coach → progress flow&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Pre-flight check (production)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run verify:demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Disclaimer
&lt;/h2&gt;

&lt;p&gt;Skinova provides &lt;strong&gt;educational skincare information and AI-assisted analysis&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It does not diagnose medical conditions, provide medical treatment, or replace professional medical advice.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>hackathon</category>
      <category>skinova</category>
    </item>
    <item>
      <title>Memoria – A Self‑Evolving Personal AI with Human‑like Memory</title>
      <dc:creator>Muhammad Awais</dc:creator>
      <pubDate>Sat, 18 Jul 2026 15:22:47 +0000</pubDate>
      <link>https://dev.to/imawais/memoria-a-self-evolving-personal-ai-with-human-like-memory-34p</link>
      <guid>https://dev.to/imawais/memoria-a-self-evolving-personal-ai-with-human-like-memory-34p</guid>
      <description>&lt;p&gt;Most AI assistants forget everything after each session. Memoria remembers, forgets, and evolves—extracting personal facts, resolving contradictions, and reflecting on what it knows. This post shares the journey of building a production‑ready MemoryAgent for the &lt;strong&gt;Qwen Cloud Hackathon, Track 1&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Every conversation with a typical chatbot starts from zero. You tell it you're allergic to peanuts on Monday, and by Wednesday it recommends pad thai with crushed peanuts. The model doesn't forget; it never had long‑term memory in the first place. Without durable knowledge about who you are, real personalisation is impossible.&lt;/p&gt;

&lt;p&gt;We built &lt;strong&gt;Memoria&lt;/strong&gt; to solve that problem: a personal AI with human‑like memory that remembers what matters, forgets what fades, resolves contradictions, and evolves its understanding of you over time. Real memory isn't a bigger context window—it's extraction, prioritisation, decay, consolidation, and reflection. The hackathon challenged us to deliver a memory‑efficient, production‑grade MemoryAgent, and we built one from the ground up on Alibaba Cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Memoria does
&lt;/h2&gt;

&lt;p&gt;Memoria organises knowledge in three deliberate tiers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Session Memory&lt;/strong&gt; (Redis) – the last 10 messages of the active chat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personal Memory&lt;/strong&gt; (PostgreSQL 16 + pgvector) – user‑centric facts embedded with &lt;code&gt;text-embedding-v3&lt;/code&gt;, ranked by hybrid scoring, and subject to decay, consolidation, and conflict resolution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context Archive&lt;/strong&gt; – full transcripts stored for on‑demand search, never polluting routine retrieval.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous memory lifecycle&lt;/strong&gt;: daily decay, weekly consolidation, and background reflection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personal Intelligence toggle&lt;/strong&gt;: global memory access vs. session‑only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory‑Less incognito mode&lt;/strong&gt;: no memory reads or writes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP skills server&lt;/strong&gt;: exposes &lt;code&gt;get_core_memories&lt;/code&gt;, &lt;code&gt;get_user_preferences&lt;/code&gt;, &lt;code&gt;forget_memory&lt;/code&gt;, and &lt;code&gt;strengthen_memory&lt;/code&gt; to any Qwen agent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conflict detection &amp;amp; versioning&lt;/strong&gt;: contradictory facts are automatically flagged and superseded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persona customisation&lt;/strong&gt;: users set response length, tone, and behaviour.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benchmark‑proven 77.6 % improvement&lt;/strong&gt; in decision accuracy across 12 realistic scenarios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live deployment on Alibaba Cloud ECS&lt;/strong&gt; with ApsaraDB for PostgreSQL and Redis, provisioned via Terraform.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How we built it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;: Python FastAPI, SQLAlchemy async, PostgreSQL 16 + pgvector for hybrid vector search.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Memory pipeline&lt;/strong&gt;: DashScope – Qwen‑Plus for chat/extraction/conflict/reflection, Qwen‑Max for consolidation, &lt;code&gt;text-embedding-v3&lt;/code&gt; for embeddings.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Background workers&lt;/strong&gt;: Celery handles memory ingestion, decay, and consolidation with Redis as the broker.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React + Vite, &lt;code&gt;react-markdown&lt;/code&gt;, &lt;code&gt;remark‑math&lt;/code&gt;, &lt;code&gt;rehype‑katex&lt;/code&gt;, custom dark theme.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Docker Compose, Terraform for Alibaba Cloud (ECS, ApsaraDB, Redis), Let's Encrypt via Nginx.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges we ran into
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Embedding dimension mismatch&lt;/strong&gt; (1536 → 1024) – fixed with an Alembic migration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DashScope international endpoint&lt;/strong&gt; – defaulted to Beijing, required explicit config.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model availability&lt;/strong&gt; – &lt;code&gt;qwen3-plus&lt;/code&gt; not accessible; standardised on &lt;code&gt;qwen-plus&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Markdown + LaTeX rendering&lt;/strong&gt; – needed multiple plugins and preprocessing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance with conflict detection and reflection&lt;/strong&gt; – kept latency low by running them asynchronously in Celery.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What we learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Human‑like memory is harder than simple RAG&lt;/strong&gt; – it needs importance, decay, consolidation, and conflict resolution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen's tool‑calling and structured JSON output&lt;/strong&gt; make LLM pipelines reliable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UX (PI toggle, Memory‑Less) matters as much as algorithms&lt;/strong&gt; – users must trust the memory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real‑infrastructure testing catches subtle bugs&lt;/strong&gt; – always deploy early.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Voice input, multi‑agent collaboration via MCP, a mobile companion, advanced memory visualisations, and fine‑tuning Qwen on memory tasks.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Try it yourself:&lt;/strong&gt; &lt;a href="https://memoria.imawais.engineer" rel="noopener noreferrer"&gt;https://memoria.imawais.engineer&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/imawais-engineer/Memoria" rel="noopener noreferrer"&gt;imawais-engineer/Memoria&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built with ❤️ on &lt;strong&gt;Alibaba Cloud&lt;/strong&gt; and &lt;strong&gt;Qwen Cloud&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>qwen</category>
      <category>alibabacloud</category>
      <category>ai</category>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
