<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Aayush Raj</title>
    <description>The latest articles on Forem by Aayush Raj (@aayush_raj_9549d303146f35).</description>
    <link>https://forem.com/aayush_raj_9549d303146f35</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%2F3204699%2F1914306e-da49-4eec-bc9f-a433ddc1b474.png</url>
      <title>Forem: Aayush Raj</title>
      <link>https://forem.com/aayush_raj_9549d303146f35</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/aayush_raj_9549d303146f35"/>
    <language>en</language>
    <item>
      <title>🚀 Building ViewProof: A Photographer-Client Album Sharing Platform with React, Firebase &amp; Cloudinary</title>
      <dc:creator>Aayush Raj</dc:creator>
      <pubDate>Thu, 31 Jul 2025 14:24:47 +0000</pubDate>
      <link>https://forem.com/aayush_raj_9549d303146f35/building-viewproof-a-photographer-client-album-sharing-platform-with-react-firebase-cloudinary-2lah</link>
      <guid>https://forem.com/aayush_raj_9549d303146f35/building-viewproof-a-photographer-client-album-sharing-platform-with-react-firebase-cloudinary-2lah</guid>
      <description>&lt;p&gt;Here’s a complete &lt;strong&gt;Dev.to-style blog post&lt;/strong&gt; you can copy and paste or publish to your own blog:&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 Building ViewProof: A Photographer-Client Album Sharing Platform with React, Firebase &amp;amp; Cloudinary
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Published on [Dev.to] by Aayush Raj&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📸 Introduction
&lt;/h2&gt;

&lt;p&gt;In this solo-built project, I created &lt;strong&gt;ViewProof&lt;/strong&gt; — a modern web app for photographers to share albums with clients, who can &lt;strong&gt;view&lt;/strong&gt;, &lt;strong&gt;approve&lt;/strong&gt;, and &lt;strong&gt;comment on photos&lt;/strong&gt; individually. It solves a real problem in client communication and delivery — and gave me hands-on experience with full-stack technologies, UI/UX, and deployment.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌟 What is ViewProof?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A tool for photographers to upload photo albums and share them securely with clients. Clients can approve/reject photos and leave comments per image.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔑 Key Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;👤 Role-based access: Photographer &amp;amp; Client&lt;/li&gt;
&lt;li&gt;🖼️ Album upload with image previews (using Cloudinary)&lt;/li&gt;
&lt;li&gt;🧑‍💼 Clients can approve/reject photos and leave feedback&lt;/li&gt;
&lt;li&gt;✏️ Rename/Delete albums (for photographers)&lt;/li&gt;
&lt;li&gt;🔐 Access control — only the intended user can view the album&lt;/li&gt;
&lt;li&gt;📈 Progress indicator (e.g., 8/10 photos approved)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚙️ Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Stack&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React, TailwindCSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Firebase Auth &amp;amp; Firestore&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File Hosting&lt;/td&gt;
&lt;td&gt;Cloudinary (chunk upload)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




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

&lt;p&gt;This project pushed me beyond basic CRUD:&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 Firebase Authentication &amp;amp; Role Access
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Users register with a &lt;strong&gt;role&lt;/strong&gt; (&lt;code&gt;photographer&lt;/code&gt; or &lt;code&gt;client&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;On login, the UI adjusts based on role&lt;/li&gt;
&lt;li&gt;Protected routes and album access checks ensure &lt;strong&gt;only the right user sees the right content&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ☁️ Cloudinary File Upload
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Implemented &lt;strong&gt;chunked uploads&lt;/strong&gt; for better large-file handling&lt;/li&gt;
&lt;li&gt;Stored photo metadata in Firestore, while image URLs came from Cloudinary&lt;/li&gt;
&lt;li&gt;Used &lt;code&gt;FormData&lt;/code&gt; and REST API rather than an SDK for full control&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎨 UI/UX and Responsiveness
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Built a clean, minimal interface using Tailwind&lt;/li&gt;
&lt;li&gt;Prioritized mobile-friendliness (tested on various breakpoints)&lt;/li&gt;
&lt;li&gt;Focused on microinteractions like loading spinners, status badges, and modals&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📸 Demo
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ &lt;strong&gt;Live Demo&lt;/strong&gt;: &lt;a href="https://view-proof.vercel.app" rel="noopener noreferrer"&gt;https://view-proof.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📂 &lt;strong&gt;GitHub Repo&lt;/strong&gt;: &lt;a href="https://github.com/Aayush-2825/viewproof" rel="noopener noreferrer"&gt;https://github.com/Aayush-2825/viewproof&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧪 What's Next?
&lt;/h2&gt;

&lt;p&gt;If I extend this project, I’d add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔔 Email or push notifications for new uploads&lt;/li&gt;
&lt;li&gt;📥 Zip download option for approved photos&lt;/li&gt;
&lt;li&gt;💬 Real-time chat or comment thread per album&lt;/li&gt;
&lt;li&gt;🧾 Admin dashboard for photographers&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🙌 Final Words
&lt;/h2&gt;

&lt;p&gt;This project helped me &lt;strong&gt;solidify full-stack concepts&lt;/strong&gt;, learn &lt;strong&gt;real-world file management&lt;/strong&gt;, and improve my &lt;strong&gt;UI/UX thinking&lt;/strong&gt;. If you're learning React and Firebase, or just looking for a solo project to showcase on your portfolio — something like ViewProof is a great bet.&lt;/p&gt;

&lt;p&gt;If you liked this, let’s connect:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/Aayush-2825" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://www.linkedin.com/in/aayush-raj-138430322/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;




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