Skip to content

Commit fc6cb44

Browse files
authored
Merge pull request #77 from pphatdev/feat-projects
Feat projects
2 parents e56e9c5 + c354cbd commit fc6cb44

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+917
-61
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
title: "blog-leatsophat.vercel.app"
3+
slug: "blog-leatsophat-vercel-app"
4+
description: "A personal blogging platform featuring tutorials, articles, and media-rich posts, built as a modern web publishing experience."
5+
image: "/assets/projects/blog-leatsophat.vercel.app/dark-1.webp"
6+
tags: ["Blog", "Tutorial", "Portfolio"]
7+
languages: ["Laravel", "React", "TailwindCSS"]
8+
source:
9+
-
10+
name: "source"
11+
type: "source"
12+
url: "https://github.com/pphatdev/post"
13+
-
14+
name: "demo"
15+
type: "demo"
16+
url: "https://blog-leatsophat.vercel.app"
17+
18+
authors:
19+
-
20+
name: "PPhat Dev"
21+
profile: "https://github.com/pphatdev.png"
22+
url: "https://github.com/pphatdev"
23+
24+
published: true
25+
createdAt: "2026-03-16T10:12:15.648Z"
26+
---
27+
28+
---
29+
30+
<div class="blog-gallery" data-layout="snap" data-captions="true">
31+
<img src="/assets/projects/blog-leatsophat.vercel.app/dark-1.webp" alt="Home page dark mode" className=""/>
32+
<img src="/assets/projects/blog-leatsophat.vercel.app/light-1.webp" alt="Home page light mode" className=""/>
33+
<img src="/assets/projects/blog-leatsophat.vercel.app/dark-2.webp" alt="Tutorial listing dark mode" className=""/>
34+
<img src="/assets/projects/blog-leatsophat.vercel.app/light-2.webp" alt="Tutorial listing light mode" className=""/>
35+
<img src="/assets/projects/blog-leatsophat.vercel.app/dark-3.webp" alt="Blog listing dark mode" className=""/>
36+
<img src="/assets/projects/blog-leatsophat.vercel.app/light-3.webp" alt="Blog listing light mode" className=""/>
37+
<img src="/assets/projects/blog-leatsophat.vercel.app/dark-4.webp" alt="Post details dark mode" className=""/>
38+
<img src="/assets/projects/blog-leatsophat.vercel.app/light-4.webp" alt="Post details light mode" className=""/>
39+
<img src="/assets/projects/blog-leatsophat.vercel.app/dark-5.webp" alt="Tag page dark mode" className=""/>
40+
<img src="/assets/projects/blog-leatsophat.vercel.app/light-5.webp" alt="Tag page light mode" className=""/>
41+
<img src="/assets/projects/blog-leatsophat.vercel.app/dark-6.webp" alt="Content section dark mode" className=""/>
42+
<img src="/assets/projects/blog-leatsophat.vercel.app/light-6.webp" alt="Content section light mode" className=""/>
43+
</div>
44+
45+
<br/>
46+
47+
# ✨ About Project
48+
49+
blog-leatsophat.vercel.app is a personal blog platform used to publish tutorials, technical notes, and media-rich content.
50+
The site presents categorized sections such as tutorials, blogs, memories, and entertainment, with a homepage focused on latest updates.
51+
It is designed for simple reading workflows, fast navigation between tags and posts, and a clean writing-first experience.
52+
53+
# 🛠️ Project Tech Stack
54+
55+
- ⚙️ Core:
56+
- Laravel
57+
- React
58+
- JavaScript
59+
60+
- 🎨 UI and Styling:
61+
- TailwindCSS
62+
- Responsive layout patterns
63+
- Dark and light mode presentation
64+
65+
- 📝 Content and Publishing:
66+
- Tag-based organization
67+
- Multi-section content feeds
68+
- Image-first article support
69+
70+
# 🌈 Project Features
71+
72+
- Homepage with latest tutorials and blogs
73+
- Multi-section publishing (tutorial, blog, memories, entertainment)
74+
- Tag-based navigation and filtering
75+
- Readable post detail pages
76+
- Responsive design for desktop and mobile
77+
- Light and dark mode screenshots for core pages
78+
79+
# 💻 Preview
80+
81+
Here is the screenshot preview 📸:
82+
83+
![blog-leatsophat](/assets/projects/blog-leatsophat.vercel.app/dark-full.webp)
84+
![blog-leatsophat](/assets/projects/blog-leatsophat.vercel.app/light-full.webp)
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
title: "eLibrary (Nintrea)"
3+
slug: "ebook-nintrea-top"
4+
description: "A Khmer-focused digital eLibrary web app for browsing categories, viewing book details, and reading content with a responsive Next.js interface."
5+
image: "/assets/projects/ebooks.nintrea.top/light-1.webp"
6+
tags: ["Library", "Education", "Khmer"]
7+
languages: ["Next.js", "TypeScript", "TailwindCSS", "Supabase"]
8+
source:
9+
-
10+
name: "source"
11+
type: "source"
12+
url: "https://github.com/nintrealab/elibrary"
13+
-
14+
name: "demo"
15+
type: "demo"
16+
url: "https://ebooks.nintrea.top"
17+
18+
authors:
19+
-
20+
name: "PPhat Dev"
21+
profile: "https://github.com/pphatdev.png"
22+
url: "https://github.com/pphatdev"
23+
-
24+
name: "Nintrea Lab"
25+
profile: "https://github.com/nintrealab.png"
26+
url: "https://github.com/nintrealab"
27+
28+
published: true
29+
createdAt: "2026-03-16T10:12:15.648Z"
30+
---
31+
32+
<div class="blog-gallery" data-layout="snap" data-captions="true">
33+
<img src="/assets/projects/ebooks.nintrea.top/light-1.webp" alt="eLibrary home page" className=""/>
34+
<img src="/assets/projects/ebooks.nintrea.top/light-2.webp" alt="eLibrary content page" className=""/>
35+
</div>
36+
37+
<br/>
38+
39+
# **About Project**
40+
41+
eLibrary (Nintrea) is a web-based digital reading platform focused on Khmer educational and literary content.
42+
It provides structured category browsing, searchable book listings, detailed book pages, and an integrated reader experience in a clean sidebar-driven interface.
43+
The project is built with Next.js and modern component patterns to support responsive layouts, reusable UI blocks, and progressive expansion toward a full online library system.
44+
45+
# 🛠️ **Project Tech Stack**
46+
47+
- **Core:**
48+
- Next.js
49+
- React
50+
- TypeScript
51+
52+
- **UI & Styling:**
53+
- TailwindCSS
54+
- Shadcn-style UI components
55+
- Lucide icons
56+
- Radix primitives
57+
58+
- **Data & Backend Integration:**
59+
- Supabase client setup
60+
- Database typing for books, authors, genres, members, and loans
61+
- Structured content models for category and book metadata
62+
63+
- **Features & Utilities:**
64+
- Sidebar navigation with breadcrumbs
65+
- Category and book listing pages
66+
- Search inputs and filtering controls
67+
- PDF reader integration for in-app viewing
68+
- Loading and transition enhancements
69+
70+
# 🌈 **Project Features**
71+
72+
- Khmer-focused digital library experience
73+
- Book category browsing and detail views
74+
- Breadcrumb-based navigation for deep pages
75+
- Responsive layout for desktop and mobile
76+
- Integrated PDF reader for online reading
77+
- Expandable architecture for library data workflows
78+
79+
# 💻 **Preview**
80+
81+
Here is the screenshot preview:
82+
83+
![elibrary-nintrea](/assets/projects/ebooks.nintrea.top/light-1.webp)
84+
![elibrary-nintrea](/assets/projects/ebooks.nintrea.top/light-2.webp)

content/projects/ebook-sophat/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "eBook of Sophat (Assignment Y1)"
33
slug: "ebook-sophat"
44
description: "A modern multi-page eLibrary web application with book catalog browsing, author profiles, advanced search, and responsive dark/light themed UI."
55
image: "/assets/projects/ebook.sophat.top/light-1.webp"
6-
tags: ["Library", "Education", "Frontend"]
6+
tags: ["Library", "Education"]
77
languages: ["JavaScript", "Webpack", "TailwindCSS"]
88
source:
99
-
@@ -17,7 +17,7 @@ source:
1717

1818
authors:
1919
-
20-
name: "Sophat Leat"
20+
name: "PPhat Dev"
2121
profile: "https://github.com/pphatdev.png"
2222
url: "https://github.com/pphatdev"
2323

content/projects/elibrary-of-nintrea/index.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ authors:
1717
profile: "https://github.com/pphatdev.png"
1818
url: "https://github.com/pphatdev"
1919
-
20-
name: "holbundit"
21-
profile: "https://github.com/holbundit.png"
22-
url: "https://github.com/holbundit"
20+
name: "SVA-bundittt"
21+
profile: "https://github.com/SVA-bundittt.png"
22+
url: "https://github.com/SVA-bundittt"
2323

2424
published: true
2525
createdAt: "2026-03-16T10:12:15.648Z"
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
title: "King Mart Shop"
3+
slug: "king-mart-shop"
4+
description: "An online shopping platform for King Mart Cambodia, featuring product discovery, category browsing, promotions, account tools, and mobile app access for everyday retail customers."
5+
image: "/assets/projects/king-mart.shop/light-1.webp"
6+
tags: ["E-commerce", "Retail", "Online Shopping"]
7+
languages: ["Laravel", "JavaScript", "TailwindCSS"]
8+
source:
9+
-
10+
name: "demo"
11+
type: "demo"
12+
url: "https://king-mart.shop"
13+
14+
authors:
15+
-
16+
name: "PPhat Dev"
17+
profile: "https://github.com/pphatdev.png"
18+
url: "https://github.com/pphatdev"
19+
-
20+
name: "Hoeun Pichet"
21+
profile: "https://github.com/HoeunPichet.png"
22+
url: "https://github.com/HoeunPichet"
23+
24+
published: true
25+
createdAt: "2026-03-16T10:12:15.648Z"
26+
---
27+
28+
<div class="blog-gallery" data-layout="snap" data-captions="true">
29+
<img src="/assets/projects/king-mart.shop/light-1.webp" alt="Home page hero and product slider" className=""/>
30+
<img src="/assets/projects/king-mart.shop/light-2.webp" alt="Featured products section" className=""/>
31+
<img src="/assets/projects/king-mart.shop/light-3.webp" alt="Category and product listing section" className=""/>
32+
<img src="/assets/projects/king-mart.shop/light-4.webp" alt="Retail product cards and promotions" className=""/>
33+
<img src="/assets/projects/king-mart.shop/light-5.webp" alt="Information and policy links section" className=""/>
34+
<img src="/assets/projects/king-mart.shop/light-6.webp" alt="Footer and mobile app promotion section" className=""/>
35+
</div>
36+
37+
<br/>
38+
39+
# **About Project**
40+
41+
king-mart.shop is an e-commerce website built for King Mart Cambodia to support everyday online shopping and digital retail browsing.
42+
The platform highlights product promotions, category discovery, product detail access, customer account areas, and support or policy links in a storefront-style interface.
43+
It is designed to help customers browse items quickly, explore deals, and move from discovery to purchase with a mobile-friendly shopping flow.
44+
45+
# 🛠️ **Project Tech Stack**
46+
47+
- **Core:**
48+
- JavaScript
49+
- HTML5
50+
- CSS3
51+
52+
- **UI & Styling:**
53+
- Responsive storefront layout
54+
- Product card grid and promotional banners
55+
- Branded e-commerce interface components
56+
57+
- **Architecture:**
58+
- Multi-page shopping experience
59+
- Category-based navigation
60+
- Product detail and account page flow
61+
62+
- **Features & Utilities:**
63+
- Product discovery and featured listings
64+
- Category browsing and promotional sections
65+
- Customer account and order-related navigation
66+
- Policy, FAQ, and contact information pages
67+
- Mobile app installation links
68+
69+
# 🌈 **Project Features**
70+
71+
- E-commerce home page with promotions and featured products
72+
- Category-driven shopping flow
73+
- Product detail pages with pricing and purchase actions
74+
- Information, FAQ, policy, and contact pages
75+
- Social media and customer support connectivity
76+
- Mobile-friendly browsing across retail sections
77+
78+
79+
# 💻 **Preview**
80+
81+
Here is the screenshot preview:
82+
83+
![king-mart-home](/assets/projects/king-mart.shop/home-full.webp)
84+
![king-mart-detail](/assets/projects/king-mart.shop/detail-full.webp)

content/projects/maskify/index.mdx

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
title: "Maskify"
3+
slug: "maskify"
4+
description: "A browser-based image masking tool for uploading masks and images, previewing results instantly on canvas, and exporting the final composition."
5+
image: "/assets/projects/maskify.pphat.top/dark-1.webp"
6+
tags: ["Image Tool", "Photo Editing", "Web App"]
7+
languages: ["Next.js", "TypeScript", "TailwindCSS", "React"]
8+
source:
9+
-
10+
name: "source"
11+
type: "source"
12+
url: "https://github.com/pphatlabs/maskify"
13+
-
14+
name: "demo"
15+
type: "demo"
16+
url: "https://maskify.pphat.top"
17+
18+
authors:
19+
-
20+
name: "PPhat Dev"
21+
profile: "https://github.com/pphatdev.png"
22+
url: "https://github.com/pphatdev"
23+
-
24+
name: "PPhat Labs"
25+
profile: "https://github.com/pphatlabs.png"
26+
url: "https://github.com/pphatlabs"
27+
28+
published: true
29+
createdAt: "2026-03-16T10:12:15.648Z"
30+
---
31+
32+
<div class="blog-gallery" data-layout="snap" data-captions="true">
33+
<img src="/assets/projects/maskify.pphat.top/dark-1.webp" alt="Maskify home screen dark mode" className=""/>
34+
<img src="/assets/projects/maskify.pphat.top/light-1.webp" alt="Maskify home screen light mode" className=""/>
35+
<img src="/assets/projects/maskify.pphat.top/dark-2.webp" alt="Mask gallery dark mode" className=""/>
36+
<img src="/assets/projects/maskify.pphat.top/light-2.webp" alt="Mask gallery light mode" className=""/>
37+
<img src="/assets/projects/maskify.pphat.top/dark-3.webp" alt="Image gallery dark mode" className=""/>
38+
<img src="/assets/projects/maskify.pphat.top/light-3.webp" alt="Image gallery light mode" className=""/>
39+
<img src="/assets/projects/maskify.pphat.top/dark-4.webp" alt="Canvas export workflow dark mode" className=""/>
40+
</div>
41+
42+
<br/>
43+
44+
# **About Project**
45+
46+
Maskify is a focused web tool for quick image masking directly in the browser.
47+
Users can upload a mask, upload an image, preview the composition in real time, and download the final masked output.
48+
The app is designed for speed and simplicity, with a clean mobile-friendly interface and no account requirement.
49+
It also keeps uploaded mask and image items in browser session storage so the workflow feels seamless while editing.
50+
51+
# 🛠️ **Project Tech Stack**
52+
53+
- **Core:**
54+
- Next.js
55+
- React
56+
- TypeScript
57+
58+
- **UI & Styling:**
59+
- TailwindCSS
60+
- Radix UI Icons
61+
- next-themes (light/dark mode)
62+
63+
- **Canvas & Processing:**
64+
- HTML Canvas 2D API
65+
- Composite masking via `destination-in`
66+
- Client-side PNG export
67+
68+
- **Architecture:**
69+
- App Router structure
70+
- API routes for loading example masks/images
71+
- Session storage for uploaded assets
72+
73+
# 🌈 **Project Features**
74+
75+
- Upload custom masks and apply them instantly
76+
- Upload custom images and keep them in the current browser session
77+
- Preview masked output in real time on a canvas
78+
- Built-in dark mode and light mode interface
79+
- Fast, single-page workflow optimized for desktop and mobile
80+
- One-click export of the final masked image
81+
82+
# 💻 **How It Works**
83+
84+
1. Upload or pick a mask from the mask gallery.
85+
2. Upload or pick an image from the image gallery.
86+
3. The app draws the image and applies the mask using canvas compositing.
87+
4. Download the generated result as an image file.
88+
89+
# 💻 **Preview**
90+
91+
Here is the screenshot preview:
92+
93+
![maskify-dark](/assets/projects/maskify.pphat.top/dark-1.webp)
94+
![maskify-light](/assets/projects/maskify.pphat.top/light-1.webp)

0 commit comments

Comments
 (0)