From 3c04c7732f8366e4beee512dd315d4654d0d76ae Mon Sep 17 00:00:00 2001 From: pphatdev Date: Fri, 27 Jun 2025 14:57:25 +0700 Subject: [PATCH 1/3] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20.env.example=20fi?= =?UTF-8?q?le=20and=20update=20README=20for=20environment=20setup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 44 ++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 2 +- readme.md | 2 +- 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e2ffa52 --- /dev/null +++ b/.env.example @@ -0,0 +1,44 @@ +# Gmail configuration +GMAIL_USER=info.sophat@gmail.com +GMAIL_APP_PASSWORD=generated_password_here + +# Contact information +CONTACT_PHONE="+855 96918 3363" +CONTACT_LOCATION="Phnom Penh, Cambodia" +CONTACT_EMAIL="info.sophat@gmail.com" + +# Personal information +PERSON_NAME="Leat Sophat" +PERSON_ALTERNATE_NAME="PPhat" +PERSON_JOB_TITLE="Senior Front-end Developer" +PERSON_IMAGE="/assets/avatars/hero.webp" + +# Address information +ADDRESS_STREET="Street 123, Sangkat Kamboul" +ADDRESS_LOCALITY="Phnom Penh" +ADDRESS_REGION="Phnom Penh" +ADDRESS_POSTAL_CODE="120905" +ADDRESS_COUNTRY="KH" + +# Company information +COMPANY_NAME="TURBOTECH CO., LTD" +COMPANY_URL="https://turbotech.com.kh/" + +# Social media links +GITHUB_URL="https://github.com/pphatdev" +LINKEDIN_URL="https://kh.linkedin.com/in/pphatdev" +TWITTER_URL="https://x.com/pphatdev" +FIGMA_URL="https://figma.com/@PPhat" + +# Education +UNIVERSITY_NAME="Cambodian University for Specialties (CUS)" +UNIVERSITY_URL="https://www.cus.edu.kh/" + +# Application configuration +NEXT_PUBLIC_APP_URL="http://localhost:3000" +NEXT_PUBLIC_API_URL="http://api.localhost:3000" +IS_PRODUCTION="false" +NEXTJS_ENV=development + +# SEO +GOOGLE_SITE_VERIFICATION="" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5ef6a52..e72b4d6 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,7 @@ yarn-error.log* .pnpm-debug.log* # env files (can opt-in for committing if needed) -.env* +.env # vercel .vercel diff --git a/readme.md b/readme.md index 65c489d..ed14ad7 100644 --- a/readme.md +++ b/readme.md @@ -26,7 +26,7 @@ git clone https://github.com/pphatdev/v4.git && cd ./v4 Install dependencies and launch the development server: ```shell -npm install && npm run dev +cp .env.example .env && npm install && npm run dev ``` This will: From 9a44b5e3f0ebfc5e2a5a828c1eac5886f6451215 Mon Sep 17 00:00:00 2001 From: pphatdev Date: Fri, 27 Jun 2025 16:38:53 +0700 Subject: [PATCH 2/3] =?UTF-8?q?=E2=AC=9C=E2=AC=9B=F0=9F=9F=AB=F0=9F=9F=AA?= =?UTF-8?q?=F0=9F=9F=A6=F0=9F=9F=A9=F0=9F=9F=A8=F0=9F=9F=A7=F0=9F=9F=A5=20?= =?UTF-8?q?Squra=20theme=20for=20Mobile=20=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/(web)/(home)/sections/timeline.tsx | 9 +++++---- src/app/layout.tsx | 2 +- src/components/logo.tsx | 2 +- src/components/ui/avatar-circles.tsx | 4 ++-- src/components/ui/experience-card.tsx | 16 +++++++--------- src/components/ui/footer.tsx | 12 ++++++------ src/components/ui/message.tsx | 2 +- src/components/ui/project-card.tsx | 8 ++++---- src/components/ui/theme-switch.tsx | 6 +++--- 9 files changed, 30 insertions(+), 31 deletions(-) diff --git a/src/app/(web)/(home)/sections/timeline.tsx b/src/app/(web)/(home)/sections/timeline.tsx index c72924a..cfe6e54 100644 --- a/src/app/(web)/(home)/sections/timeline.tsx +++ b/src/app/(web)/(home)/sections/timeline.tsx @@ -4,6 +4,7 @@ import { ExperienceCard } from "@/components/ui/experience-card"; import Image from "next/image"; import React from "react"; import { motion } from 'framer-motion'; +import { cn } from "@/lib/utils"; export const AboutTimeline = () => { @@ -110,7 +111,7 @@ export const AboutTimeline = () => { }} initial="hidden" animate="visible" - className='z-50 relative max-sm:pt-0 bg-gradient-to-b from-background to-transparent backdrop-blur-[2px] w-full py-10'> + className='z-50 relative max-sm:py-0 bg-gradient-to-b from-background to-transparent backdrop-blur-[2px] w-full py-10'>

@@ -120,11 +121,11 @@ export const AboutTimeline = () => {
-
+
{experiences.map(({ works, title, companyLogo }, index) => (
-
- {companyLogo && Avatar} +
+ {companyLogo && Avatar}

{title}

diff --git a/src/app/layout.tsx b/src/app/layout.tsx index b986713..3b9cfac 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -20,7 +20,7 @@ export default function RootLayout({ children, }: Readonly<{ children: React.Rea defaultTheme="system" > {children} -
+
diff --git a/src/components/logo.tsx b/src/components/logo.tsx index 1c41f95..5a5cf7c 100644 --- a/src/components/logo.tsx +++ b/src/components/logo.tsx @@ -4,7 +4,7 @@ import Link from "next/link"; export const Logo = () => { return (
- + {"Logo"} {"Logo"} {/* PPhat */} diff --git a/src/components/ui/avatar-circles.tsx b/src/components/ui/avatar-circles.tsx index c51e767..60af981 100644 --- a/src/components/ui/avatar-circles.tsx +++ b/src/components/ui/avatar-circles.tsx @@ -22,7 +22,7 @@ const AvatarCircles: React.FC = ({ avatarUrls, }: AvatarCirclesProps) => { return ( -
+
{avatarUrls.map((url, index) => ( = ({ >
+ Basic Skills

- {skills.map(({ icon, title }, key) => { - return ( -
- {icon && ({title})} - {title} -
- ) - })} + {skills.map(({ icon, title }, key) => +
+ {icon && ({title})} + {title} +
+ )}
Date
-
+
{date}
diff --git a/src/components/ui/footer.tsx b/src/components/ui/footer.tsx index da5a7ed..b8e46f3 100644 --- a/src/components/ui/footer.tsx +++ b/src/components/ui/footer.tsx @@ -57,20 +57,20 @@ const footerLinks: FooterSection[] = [ export function Footer() { return ( -