diff --git a/bun.lockb b/bun.lockb index 663ad3c..340e664 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/content/profile/ayechansoe.mdx b/content/profile/ayechansoe.mdx new file mode 100644 index 0000000..502f30b --- /dev/null +++ b/content/profile/ayechansoe.mdx @@ -0,0 +1,8 @@ +--- +name: Aye Chan Soe +description: +image: +tags: + - Html + - Css +--- diff --git a/content/profile/hponemyatthu30.mdx b/content/profile/hponemyatthu30.mdx new file mode 100644 index 0000000..34ef30e --- /dev/null +++ b/content/profile/hponemyatthu30.mdx @@ -0,0 +1,42 @@ +--- +name: HMThu30 +description: I'm Junior full stack developer and currently working as React developer in ACE Data System. +image: "https://avatars.githubusercontent.com/u/128682546?v=4" +tags: + - Java + - C# + - Javascript + - HTML + - CSS + - React JS + - Node JS +--- + +
+ +
+ +

+ ☕️ + + {" "} + Hello, I am Hpone Myat Thu + +

+ +
+ +- 🤝 I’m currently focusing on Node JS. +- 💬 Ask me about **Java, React & C#.** +- 📫 How to reach me **hponemy8tthu@gmail.com (or) [facebook](https://www.facebook.com/phonemyat.thu.71) (or) [github](https://github.com/HponeMyatThu)** + + +```javascript +const HMThu = { + code: [Javascript, HTML, CSS, Java, C#], + tools: [React], + challenge: "Become skillful person", +}; +``` + +
diff --git a/content/profile/htetwaiyan.mdx b/content/profile/htetwaiyan.mdx new file mode 100644 index 0000000..893fd04 --- /dev/null +++ b/content/profile/htetwaiyan.mdx @@ -0,0 +1,136 @@ +--- +name: Htet Wai Yan +description: MEAN stack developer and love to learn new techs. +image: "https://avatars.githubusercontent.com/u/72548139?v=4" +tags: + - Angular + - React + - Node.js + - Python + - Flutter + - AWS +--- + +import { FaFacebook, FaGithub, FaLinkedin, FaGlobe } from "react-icons/fa"; + +
+
+
+ {/* Profile Image */} +
+ Profile Image +
+
+ {/* Name */} +
+ HTET WAI YAN +
+ {/* Terminal */} +
+
+
+
+
+
+
+

hwy ~ zsh

+
+
+
+

Last login: Thu Nov 05 09:11:04 on ttys002

+
+ hwy@localhost:~$ + profile +

+ MEAN stack developer with over 3 years of hands-on experience in + building scalable web applications. +

+
+
+ hwy@localhost:~$ + frameworks +

Angular, React, Node.Js, Flutter

+
+
+ hwy@localhost:~$ + languages +

HTML/CSS, Typescript, Python, Dart

+
+
+ hwy@localhost:~$ + contacts +

+ + hwy.dev@gmail.com + +

+
+
+ hwy@localhost:~$ + girlfriend +

+ zsh: command not found: girlfriend +

+
+
+
+
+ + {/* Socials */} +
+ + + + + + + + + + + + +
+
+ +
+
diff --git a/content/profile/linthithtwe.mdx b/content/profile/linthithtwe.mdx new file mode 100644 index 0000000..4e97835 --- /dev/null +++ b/content/profile/linthithtwe.mdx @@ -0,0 +1,202 @@ +--- +name: Lin Thit Htwe +description: Turning dreams into reality, one line of code at a time. 👨‍💻💡. +image: "https://avatars.githubusercontent.com/u/106507721?v=4" +tags: + - Java + - JavaScript + - React + - Tailwind + - Spring + - MySql + - Bootstrap + - CSS + - HTML +--- + +
+
+ Hello World 👋 + + Lin Thit Pic + + +

+ I'm Lin Thit Htwe, a Junior Software Engineer with an insatiable + passion for learning, coding, and the thrill of discovering new + things in the ever-evolving world of technology 🌱 +

+
+
+

+ 💬 More About Me ... +

+
+ Languages : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ Contact me at: + + + + + + linthit2745@gmail.com , +
+ + + {" "} + + + + LinThit27 + +
+
+
+
diff --git a/content/profile/minhankyaw.mdx b/content/profile/minhankyaw.mdx new file mode 100644 index 0000000..cdf853f --- /dev/null +++ b/content/profile/minhankyaw.mdx @@ -0,0 +1,20 @@ +--- +name: Min Han Kyaw +description: A Software Engineer who love Tech. +image: "https://avatars.githubusercontent.com/u/90894979?s=400&u=52f3d0baa76b5b547ba68a11a0eec071a1b6487c&v=4" +tags: + - Python + - Node.js + - PHP + - Flutter + - React + - C# + - AWS +--- + +import MinHanKyaw from "@/components/Contributors/MinHanKyaw/MinHanKyaw"; + +
+ +
+{/* */} \ No newline at end of file diff --git a/content/profile/minzayarmaung.mdx b/content/profile/minzayarmaung.mdx new file mode 100644 index 0000000..e6db13f --- /dev/null +++ b/content/profile/minzayarmaung.mdx @@ -0,0 +1,126 @@ +--- +name: Min Zayar Maung +description: I'm a Freelance Backend Developer / Mobile Software Service Technician. +image: "https://avatars.githubusercontent.com/u/94619791?v=4" +tags: + - Java + - C++ + - Fullstack + - Springboot + - Kotlin + - Angular + - HTML , CSS + - Linux +--- + +

Hi 👋, I'm Min Zayar Maung

+

A passionate Java developer from Myanmar

+ +

minzayarmaung

+ +- 🔭 I’m currently working on **Cafe Website** + +- 🌱 I’m currently learning **Kotlin , Java , Angular** + +- 💬 Ask me about **Java** + +- 📫 How to reach me **minzayarmaung2002@gmail.com** + +Coding + +

Connect with me:

+

+ + Facebook + + + GitHub + +

+ + +

Languages and Tools:

+

+ + html5 + + + css3 + + + + Java + + + + angular + + + + Kotlin + + + + Linux + + + + Springboot + + + + CPP + + + + postman + + + + +

\ No newline at end of file diff --git a/content/profile/nhwai.mdx b/content/profile/nhwai.mdx new file mode 100644 index 0000000..6ee61e7 --- /dev/null +++ b/content/profile/nhwai.mdx @@ -0,0 +1,9 @@ +--- +name: nhwai +description: nhwai is learning to code... +image: "https://avatars.githubusercontent.com/u/89084040?v=4" +tags: + - JavaScript + - ReactJS + - NextJS +--- diff --git a/content/profile/phyuphyuthin.mdx b/content/profile/phyuphyuthin.mdx new file mode 100644 index 0000000..ad70437 --- /dev/null +++ b/content/profile/phyuphyuthin.mdx @@ -0,0 +1,53 @@ +--- +name: Phyu Phyu Thin (Dabria) +description: Junior Software Engineer at ACE Data Systems +image: "https://github.com/dabria2004.png" +tags: + - C# + - ASP.NET + - Java + - Blazor Web Assembly + - MySQL + - MSSQL +--- + +
+
+ +

+ Phyu Phyu Thin (Dabria) +

+
+
+ +## About Me + +Hello, I'm Phyu Phyu Thin, also known as Dabria. I'm currently working as a Junior Software Engineer at ACE Data Systems with 1 year of experience in the field. I'm passionate about software development and enjoy working with a variety of technologies. + +- **Name**: Phy Phyu Thin +- **Location**: Myanmar +- **Email**: phyuthin2004@gmail.com +- **GitHub**: [https://github.com/dabria2004](https://github.com/dabria2004) +- **Facebook**: [https://www.facebook.com/phyu.thin.1922004](https://www.facebook.com/phyu.thin.1922004) + +## Technical Skills + +I have experience with a range of technologies, including: + +- C# +- ASP.NET +- Blazor Web Assembly +- Java +- MySQL +- MSSQL + +## Get in Touch + +I'd love to connect with you and simply have a chat. You can reach out to me via email at phyuthin2004@gmail.com. + +Feel free to explore my GitHub repositories and connect with me on Facebook to stay updated on my latest projects and activities. + +Thank you for visiting my profile! diff --git a/content/profile/pyaephyokywel.mdx b/content/profile/pyaephyokywel.mdx new file mode 100644 index 0000000..cc2d0ff --- /dev/null +++ b/content/profile/pyaephyokywel.mdx @@ -0,0 +1,28 @@ +--- +name: Pyae Phyo Kywel +description: I’m Junior web Developer +tags: + - Web Developer + - Bootstrap,Tailwind + - JavaScript + - J Query + - PHP + - laravel +--- + + +# Pyae Phyo Kywel + + +### About Me + I'm a Web developer... + + +### 🔗 Links +[![portfolio](https://img.shields.io/badge/my_portfolio-000?style=for-the-badge&logo=ko-fi&logoColor=white)](https://leo3914.github.io/my-folio/) + +[![linkedin](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/pyae-phyo-kywel-495b6b276/) + + + + diff --git a/content/profile/rikzil.mdx b/content/profile/rikzil.mdx new file mode 100644 index 0000000..d61a895 --- /dev/null +++ b/content/profile/rikzil.mdx @@ -0,0 +1,42 @@ +--- +name: Rikzil +description: Beginner Level +image: "https://avatars.githubusercontent.com/u/142309328?v=4" +tags: + - Java + - HTML + - CSS + - Python + - MySQL +--- + +
+ +
+ +

+ + 🧑‍💻Hi buddy, I'm Rikzil🧑‍💻 + +

+ + +
+ +- 💻 I'm just a beginner but I will try hard. And I'm so interested in programming languages like Java, Python and so on. + +- 🧑‍💻 Right now, I'm still studying Japanese language and Java, Python, HTML & CSS. + +- 💁 You can be friend with me and I also want too coz I want to communicate and planning for the code with each other. + +- 🗫 I'm a beginner level in programming, so please kindly teach me and share anything what u can afford. + +- 📫 https://www.facebook.com/myat.naing.5249 // https://github.com/MratRikzil + + + 🤖 皆さん どうぞよろしく お願いします! 🤖 +
+ + + + diff --git a/content/profile/soeyiyiaung.mdx b/content/profile/soeyiyiaung.mdx new file mode 100644 index 0000000..42e3a8a --- /dev/null +++ b/content/profile/soeyiyiaung.mdx @@ -0,0 +1,38 @@ +--- +name: Soe Yi Yi Aung +description: "I am a web developer!" +tags: + - HTML + - CSS + - JavaScript + - Bootstrap + - Vue + - Angular + - PHP + - Laravel + - MySQL + - GitHub +--- + +import Counter from "@/components/Contributors/Counter/Counter"; +import ContriSquareBox from "@/components/Contributors/ContriSquareBox/ContriSquareBox"; +import SpacingDivider from "@/components/Common/SpacingDivider/SpacingDivider"; + +
+
+
+ +

+ Hi, I'm Soe Yi Yi Aung +

+ + + +

I'm a web developer and computer science student with a strong foundation in HTML, CSS, JavaScript, Bootstrap, PHP, Laravel, and MySQL. I specialize in crafting engaging websites and robust web applications, focusing on exceptional user experiences and seamless functionality. I'm also experienced in front-end technologies like Vue.js and Angular. I'm passionate about staying up-to-date with web development trends and collaborating with cross-functional teams. Let's connect and explore opportunities to create innovative web solutions together!!

+

How to reach me **syya133@gmail.com (or) [LinkedIn](www.linkedin.com/in/soe-yi-yi-aung-03747226b)**

+

My Portfolio Website **https://soeyiyiaung.netlify.app/**

+
+
+ +
+
diff --git a/content/profile/thanthtetaung.mdx b/content/profile/thanthtetaung.mdx new file mode 100644 index 0000000..7272e94 --- /dev/null +++ b/content/profile/thanthtetaung.mdx @@ -0,0 +1,21 @@ +--- +name: Thant Htet Aung +description: I'm a creator more of a developer. Creating something out of nothing is something only God can do! +image: "https://avatars.githubusercontent.com/u/114596700?v=4" +tags: + - Fullstack + - Backend + - Laravel + - JavaScripts + - ReactJS + - Vue + - Bun +--- +{/* */} + +{/* */} + +```js +please re-check your code +and before re-uploading, npm run build first. +``` \ No newline at end of file diff --git a/content/profile/yoonmyatcherryoo.mdx b/content/profile/yoonmyatcherryoo.mdx new file mode 100644 index 0000000..1fc0045 --- /dev/null +++ b/content/profile/yoonmyatcherryoo.mdx @@ -0,0 +1,82 @@ +--- +name: Yoon Myat Cherry Oo +description: I'm web developer +tags: + - JavaScript + - JQuery + - VueJs + - Angular + - PHP + - laravel +--- + +
+ +
+ + +

+ Hello! +

I'm Yoon Myat Cherry Oo
+ + +-I'm a Junior Web Developer.
+ +
+ + + + + + + + + + + + + +
+ +
+
+ Contact me via +
+
+
    + +
  • +
    + Email : yoonmyatcherryoo622@gmail.com +
    +
  • +
  • +
    + Phone : (+95)9 423699615 +
    +
  • +
  • +
    + Github : https://github.com/Yoon-Myat-Cherry-Oo +
    +
  • + +
+
+
+ diff --git a/package.json b/package.json index 089171d..6687ae9 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,10 @@ } }, "dependencies": { + "@react-three/drei": "^9.88.7", + "@react-three/fiber": "^8.15.8", + "@react-three/postprocessing": "^2.15.8", + "@types/three": "^0.158.0", "@formkit/auto-animate": "^0.8.0", "@splinetool/react-spline": "^2.2.6", "@splinetool/runtime": "^0.9.488", @@ -51,8 +55,9 @@ "remark-gfm": "^4.0.0", "sass": "^1.69.4", "shiki": "^0.14.5", + "suspend-react": "^0.1.3", "tailwind-merge": "^1.14.0", - "three": "^0.157.0", + "three": "^0.158.0", "typed.js": "^2.0.16" }, "devDependencies": { diff --git a/src/components/Contributors/MinHanKyaw/MinHanKyaw.jsx b/src/components/Contributors/MinHanKyaw/MinHanKyaw.jsx new file mode 100644 index 0000000..a9f13cb --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/MinHanKyaw.jsx @@ -0,0 +1,24 @@ +import TimelineHeader from './timelineHeader'; +import Intro from './intro'; +import Photos from './photos'; +import CreatePost from './createPost'; +import MainPost from './mainPost'; + +export default function MinHanKyaw() { + return ( +
+ + +
+
+ + +
+
+ + +
+
+
+ ); +} diff --git a/src/components/Contributors/MinHanKyaw/createPost.jsx b/src/components/Contributors/MinHanKyaw/createPost.jsx new file mode 100644 index 0000000..2ba51d0 --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/createPost.jsx @@ -0,0 +1,46 @@ +/* eslint-disable @next/next/no-img-element */ +// import Image from '../icons/image'; +// import Feeling from '../icons/feeling'; +// import Tag from '../icons/tag'; +import { Image,Feeling,Tag } from "./icons"; + +export default function CreatePost() { + return ( +
+
+
+ img + +
+ {/*
*/} +
+ + + +
+
+
+ ); +} diff --git a/src/components/Contributors/MinHanKyaw/dialog.jsx b/src/components/Contributors/MinHanKyaw/dialog.jsx new file mode 100644 index 0000000..cfff7e4 --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/dialog.jsx @@ -0,0 +1,72 @@ +// import { FaFacebook, FaLinkedin } from 'react-icons/fa'; + +export function PhoneDialog({ isOpen, onClose }) { + if (!isOpen) return null; + + return ( +
+
+
+ Call me maybe 🤙🏻 + ( ဘီယာတိုက်ရမှာနော် 😆 ) +
+ + +
+959 965 887 7879
+
+ +
+
+
+ ); +} + + +export function MailDialog({ isOpen, onClose }) { + if (!isOpen) return null; + + return ( +
+
+
somethingiswrongwithmyspacebar
+
minhankyaw.mh@gmail.com
+
+ +
+
+
+ ); +} + +export function MoreDialog({ isOpen, onClose }) { + if (!isOpen) return null; + + return ( +
+
+
ဘာညာ အာချောင်ချင်ရင် 😎
+
+ + + + + + + + + + +
+
+ +
+
+
+ ); +} \ No newline at end of file diff --git a/src/components/Contributors/MinHanKyaw/icons.jsx b/src/components/Contributors/MinHanKyaw/icons.jsx new file mode 100644 index 0000000..741e879 --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/icons.jsx @@ -0,0 +1,131 @@ +export function Phone() { + return ( + + + + ); +} + +export function DownArrow(props) { + return ( + + + + ); +} + + +export function Friend() { + return ( + // + + + + + + + ) +} + + +export function More() { + return ( + + ) +} + + +export function Bell() { + return ( + ) +} + + +export function Image() { + return ( + + ) +} + + +export function Feeling() { + return ( + + ) +} + + +export function Tag() { + return ( + + ) +} + + +export function SuitCase() { + return ( + + ) +} + + +export function Pin() { + return ( + + ) +} + + +export function HomeAlt() { + return ( + + ) +} + + +export function Hat() { + return ( + + ) +} + + +export function Like() { + return ( + // + + + + + ) +} + + +export function CommentButton() { + return ( + + ) +} + + +export function Filter() { + return ( + + ) +} + +export function FacebookIcon(props) { + return ( + + + + ); +} + +export function LinkedInIcon(props) { + return ( + + + + ); + } \ No newline at end of file diff --git a/src/components/Contributors/MinHanKyaw/intro.jsx b/src/components/Contributors/MinHanKyaw/intro.jsx new file mode 100644 index 0000000..1e5405e --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/intro.jsx @@ -0,0 +1,32 @@ + +import { SuitCase, Pin, HomeAlt, Hat } from "./icons"; + +export default function Intro() { + return ( +
+
Intro
+
+
+
+ Software Engineer at TASTYSOT Software CO., Ltd +
+
+
+
+
Studies at University of the People
+
+
+
+
+ Lives in Mandalay{' '} +
+
+
+
+
+ From Mogok{' '} +
+
+
+ ); +} diff --git a/src/components/Contributors/MinHanKyaw/mainPost.jsx b/src/components/Contributors/MinHanKyaw/mainPost.jsx new file mode 100644 index 0000000..a805ff4 --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/mainPost.jsx @@ -0,0 +1,63 @@ +/* eslint-disable @next/next/no-img-element */ +import { More,Like,CommentButton } from "./icons"; + +export default function MainPost() { + return ( +
+
+
+
+ img +
+ Min Han Kyaw{' '} + + {/* Min Han Kyaw{' '} */} + + was with{' '} + + ဇူကာဘတ်{' '} +
+ + {' '} + November 05, 2023{' '} + +
+
+ +
+
+ My Everday life as a Software Engineer :3 +
+ photo +
+
1.5k Loves
+
1.5k Comments
+
+
+
+ + +
+ +
+
+ ); +} diff --git a/src/components/Contributors/MinHanKyaw/photos.jsx b/src/components/Contributors/MinHanKyaw/photos.jsx new file mode 100644 index 0000000..cacbac3 --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/photos.jsx @@ -0,0 +1,23 @@ +/* eslint-disable @next/next/no-img-element */ +export default function Photos() { + return ( +
+
+
Photos
+ +
+
+ photo +
+ photo + +
+
+ ); +} diff --git a/src/components/Contributors/MinHanKyaw/posts.jsx b/src/components/Contributors/MinHanKyaw/posts.jsx new file mode 100644 index 0000000..d7246ba --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/posts.jsx @@ -0,0 +1,16 @@ +import Filter from "./icons"; + +export default function Posts() { + return ( +
+
+
+
Posts
+ +
+
+
+ ); +} diff --git a/src/components/Contributors/MinHanKyaw/timelineHeader.jsx b/src/components/Contributors/MinHanKyaw/timelineHeader.jsx new file mode 100644 index 0000000..1562d42 --- /dev/null +++ b/src/components/Contributors/MinHanKyaw/timelineHeader.jsx @@ -0,0 +1,100 @@ +/* eslint-disable @next/next/no-img-element */ +import { Phone, DownArrow, Friend,More } from "./icons"; +import { PhoneDialog,MailDialog,MoreDialog } from './dialog'; +import React, { useState } from 'react'; + +export default function TimelineHeader() { + const [isPhoneDialogOpen, setIsPhoneDialogOpen] = useState(false); + const [isMailDialogOpen, setIsMailDialogOpen] = useState(false); + const [isMoreDialogOpen, setIsMoreDialogOpen] = useState(false); + + const handlePhoneClick = () => { + setIsPhoneDialogOpen(true); + }; + + const handleClosePhoneDialog = () => { + setIsPhoneDialogOpen(false); + }; + + const handleMailClick = () => { + setIsMailDialogOpen(true); + }; + + const handleCloseMailDialog = () => { + setIsMailDialogOpen(false); + }; + + const handleMoreClick = () => { + setIsMoreDialogOpen(true); + }; + + const handleCloseMoreDialog = () => { + setIsMoreDialogOpen(false); + }; + return ( +
+
+ cover +
+ profile +
+
+
+ Min Han Kyaw +
+ +
+
+
+
+ Posts +
+
+ Friends 606 +
+
Photos
+
Videos
+
Check-Ins
+
+ More + + + +
+
+
+ + + + + + + +
+
+
+ ); +} diff --git a/src/components/Contributors/Thant/3d-components/Sphere.jsx b/src/components/Contributors/Thant/3d-components/Sphere.jsx new file mode 100644 index 0000000..f68c288 --- /dev/null +++ b/src/components/Contributors/Thant/3d-components/Sphere.jsx @@ -0,0 +1,58 @@ +import React, { useEffect, useMemo, useRef } from "react"; +import fragmentShader from "./fragmentShader.js"; +import vertexShader from "./vertexShader.js"; +import { useFrame } from "@react-three/fiber"; +import { MathUtils } from "three"; +import * as THREE from "three"; + +const Sphere = ({ sound }) => { + const mesh = useRef(); + const analyser = useRef(); + useEffect( + () => void (analyser.current = new THREE.AudioAnalyser(sound.current, 32)), + [sound] + ); + + const uniforms = useMemo(() => { + return { + u_time: { value: 0 }, + u_intensity: { value: 3 }, + }; + }, []); + + useFrame((state, delta) => { + const { clock } = state; + if (mesh.current) { + mesh.current.material.uniforms.u_time.value = + 0.4 * clock.getElapsedTime(); + mesh.current.material.uniforms.u_intensity.value = MathUtils.lerp( + mesh.current.material.uniforms.u_intensity.value, + 0.15, + 0.02 + ); + } + if (analyser.current) { + const data = analyser.current.getAverageFrequency(); + mesh.current.scale.x = + mesh.current.scale.y = + mesh.current.scale.z = + (data / 100) * 2; + uniforms.u_intensity.value = (data / 100) * 2; + } + mesh.current.rotation.x += 0.005 * delta; + mesh.current.rotation.y += 0.005 * delta; + }); + + return ( + + + + + ); +}; + +export default Sphere; diff --git a/src/components/Contributors/Thant/3d-components/fragmentShader.js b/src/components/Contributors/Thant/3d-components/fragmentShader.js new file mode 100644 index 0000000..4835bf3 --- /dev/null +++ b/src/components/Contributors/Thant/3d-components/fragmentShader.js @@ -0,0 +1,16 @@ +const fragmentShader = ` +uniform float u_intensity; +uniform float u_time; + +varying vec2 vUv; +varying float vDisplacement; + +void main() { + float distort = 2.0 * vDisplacement * u_intensity * sin(vUv.y * 10.0 + u_time); + vec3 color = vec3(abs(vUv - 0.5) * 2.0 * (1.0 - distort), 1.0); + gl_FragColor = vec4(color, 1.0); +} + +`; + +export default fragmentShader; diff --git a/src/components/Contributors/Thant/3d-components/vertexShader.js b/src/components/Contributors/Thant/3d-components/vertexShader.js new file mode 100644 index 0000000..0bf4e74 --- /dev/null +++ b/src/components/Contributors/Thant/3d-components/vertexShader.js @@ -0,0 +1,109 @@ +const vertexShader = ` +uniform float u_intensity; +uniform float u_time; + +varying vec2 vUv; +varying float vDisplacement; + +// Classic Perlin 3D Noise +// by Stefan Gustavson +// +vec4 permute(vec4 x) { + return mod(((x*34.0)+1.0)*x, 289.0); +} + +vec4 taylorInvSqrt(vec4 r) { + return 1.79284291400159 - 0.85373472095314 * r; +} + +vec3 fade(vec3 t) { + return t*t*t*(t*(t*6.0-15.0)+10.0); +} + +float cnoise(vec3 P) { + vec3 Pi0 = floor(P); // Integer part for indexing + vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1 + Pi0 = mod(Pi0, 289.0); + Pi1 = mod(Pi1, 289.0); + vec3 Pf0 = fract(P); // Fractional part for interpolation + vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0 + vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x); + vec4 iy = vec4(Pi0.yy, Pi1.yy); + vec4 iz0 = Pi0.zzzz; + vec4 iz1 = Pi1.zzzz; + + vec4 ixy = permute(permute(ix) + iy); + vec4 ixy0 = permute(ixy + iz0); + vec4 ixy1 = permute(ixy + iz1); + + vec4 gx0 = ixy0 / 7.0; + vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5; + gx0 = fract(gx0); + vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0); + vec4 sz0 = step(gz0, vec4(0.0)); + gx0 -= sz0 * (step(0.0, gx0) - 0.5); + gy0 -= sz0 * (step(0.0, gy0) - 0.5); + + vec4 gx1 = ixy1 / 7.0; + vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5; + gx1 = fract(gx1); + vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1); + vec4 sz1 = step(gz1, vec4(0.0)); + gx1 -= sz1 * (step(0.0, gx1) - 0.5); + gy1 -= sz1 * (step(0.0, gy1) - 0.5); + + vec3 g000 = vec3(gx0.x,gy0.x,gz0.x); + vec3 g100 = vec3(gx0.y,gy0.y,gz0.y); + vec3 g010 = vec3(gx0.z,gy0.z,gz0.z); + vec3 g110 = vec3(gx0.w,gy0.w,gz0.w); + vec3 g001 = vec3(gx1.x,gy1.x,gz1.x); + vec3 g101 = vec3(gx1.y,gy1.y,gz1.y); + vec3 g011 = vec3(gx1.z,gy1.z,gz1.z); + vec3 g111 = vec3(gx1.w,gy1.w,gz1.w); + + vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110))); + g000 *= norm0.x; + g010 *= norm0.y; + g100 *= norm0.z; + g110 *= norm0.w; + vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111))); + g001 *= norm1.x; + g011 *= norm1.y; + g101 *= norm1.z; + g111 *= norm1.w; + + float n000 = dot(g000, Pf0); + float n100 = dot(g100, vec3(Pf1.x, Pf0.yz)); + float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z)); + float n110 = dot(g110, vec3(Pf1.xy, Pf0.z)); + float n001 = dot(g001, vec3(Pf0.xy, Pf1.z)); + float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z)); + float n011 = dot(g011, vec3(Pf0.x, Pf1.yz)); + float n111 = dot(g111, Pf1); + + vec3 fade_xyz = fade(Pf0); + vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z); + vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y); + float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); + return 2.2 * n_xyz; +} + +// End of Perlin Noise Code + + +void main() { + vUv = uv; + + vDisplacement = cnoise(position + vec3(2.0 * u_time)); + + vec3 newPosition = position + normal * (u_intensity * vDisplacement); + + vec4 modelPosition = modelMatrix * vec4(newPosition, 1.0); + vec4 viewPosition = viewMatrix * modelPosition; + vec4 projectedPosition = projectionMatrix * viewPosition; + + gl_Position = projectedPosition; +} +`; + +export default vertexShader; diff --git a/src/components/Contributors/Thant/App.jsx b/src/components/Contributors/Thant/App.jsx new file mode 100644 index 0000000..87bed9f --- /dev/null +++ b/src/components/Contributors/Thant/App.jsx @@ -0,0 +1,17 @@ +import React, { useEffect, useState } from 'react' +import VN from './VN' +import Visualizer from './Visualizer' + +const App = () => { + const [isClicked, setClick] = useState(false) + const [audioTime, setAudioTime] = useState(0) + return ( + <> + { + isClicked ? : + } + + ) +} + +export default App \ No newline at end of file diff --git a/src/components/Contributors/Thant/VN.jsx b/src/components/Contributors/Thant/VN.jsx new file mode 100644 index 0000000..3021f8d --- /dev/null +++ b/src/components/Contributors/Thant/VN.jsx @@ -0,0 +1,155 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +/* eslint-disable @next/next/no-img-element */ +import React, { useEffect, useState } from "react"; +import dialogArray from "./choices.json"; + +const VN = ({ setClick, setAudioTime }) => { + const start = () => { + document.getElementById("start").classList.add("hidden"); + document.getElementById("vn").classList.remove("hidden"); + let audio = new Audio( + "https://drive.google.com/uc?id=1vDo02iqo8lOEUhVouXh5FZNOXZh3FzM9" + ); + audio.preload = "auto"; + audio.volume = 0.5; + audio.addEventListener("canplay", () => { + audio.play(); + }); + audio.load(); + song = audio; + }; + let song = null; + let oneClicked = false; + let twoClicked = false; + let data = []; + const nextDialog = () => { + if (data.length == 0) { + return; + } + if (data[1] && typeof data[1] != "string") { + if (!data[1].dialog) { + choiceBox.classList.toggle("hidden"); + console.log(data); + questionOne.innerHTML = data[1].question1; + questionTwo.innerHTML = data[1].question2; + questionOne.addEventListener("click", (e) => { + if (!oneClicked) { + choiceBox.classList.toggle("hidden"); + sprite.src = data[2].answer1.image; + let typewriter = new Typewriter(dialog, { + delay: 50, + }); + typewriter.typeString(data[2].answer1.dialog).start(); + data = data.slice(3); + oneClicked = true; + } + }); + questionTwo.addEventListener("click", (e) => { + if (!twoClicked) { + choiceBox.classList.toggle("hidden"); + sprite.src = data[2].answer2.image; + let typewriter = new Typewriter(dialog, { + delay: 50, + }); + typewriter.typeString(data[2].answer2.dialog).start(); + data = data.slice(3); + twoClicked = true; + } + }); + } else { + let typewriter = new Typewriter(dialog, { + delay: 50, + }); + typewriter.typeString(data[0].dialog).start(); + sprite.src = data[0].image; + oneClicked = false; + twoClicked = false; + data = data.slice(1); + } + } else { + if (data[0] == "done") { + song.volume = 0.3; + setTimeout(() => { + song.volume = 0; + }, 1000); + setClick(true); + setAudioTime(song.currentTime); + } + let typewriter = new Typewriter(dialog, { + delay: 50, + }); + typewriter.typeString(data[0].dialog).start(); + sprite.src = data[0].image; + oneClicked = false; + twoClicked = false; + data = data.slice(1); + } + }; + + function lightOff() { + document.getElementsByTagName("body")[0].style.background = "black"; + } + + useEffect(() => { + let dialog = document.getElementById("dialog"); + data = dialogArray; + let typewriter = new Typewriter(dialog, { + delay: 50, + }); + typewriter.typeString(data[0].dialog).start(); + let choiceBox = document.getElementById("choiceBox"); + let questionOne = document.getElementById("questionOne"); + let questionTwo = document.getElementById("questionTwo"); + let sprite = document.getElementById("sprite"); + }, []); + return ( + <> +
+
+ Start +
+
+
+
+ Hello +
+
+
+ Thant Htet Aung +
+
+
+
+
+ Choice One +
+
+ Choice Two +
+
+ + ); +}; + +export default VN; diff --git a/src/components/Contributors/Thant/Visualizer.jsx b/src/components/Contributors/Thant/Visualizer.jsx new file mode 100644 index 0000000..6d154cc --- /dev/null +++ b/src/components/Contributors/Thant/Visualizer.jsx @@ -0,0 +1,31 @@ +import React, { Suspense, useEffect, useRef } from 'react' +import { Canvas } from '@react-three/fiber' +import Sphere from './3d-components/Sphere' +import { Environment, OrbitControls, PositionalAudio } from '@react-three/drei' +import { EffectComposer, Bloom, DepthOfField } from '@react-three/postprocessing' + +const Visualizer = ({ audioTime }) => { + const sound = useRef(); + useEffect(() => { + document.getElementsByTagName('body')[0].style.background = 'black'; + }, []) + return ( +
+ + + + + + + + + + + + + +
+ ) +} + +export default Visualizer \ No newline at end of file diff --git a/src/components/Contributors/Thant/audio/space-walk.mp3 b/src/components/Contributors/Thant/audio/space-walk.mp3 new file mode 100644 index 0000000..63b965a Binary files /dev/null and b/src/components/Contributors/Thant/audio/space-walk.mp3 differ diff --git a/src/components/Contributors/Thant/choices.json b/src/components/Contributors/Thant/choices.json new file mode 100644 index 0000000..56fc123 --- /dev/null +++ b/src/components/Contributors/Thant/choices.json @@ -0,0 +1,67 @@ +[ + { + "dialog": "ဘာာကိစ္စလည်းခင်ဗျ", + "image": "https://i.imgur.com/YUYwLuE.png" + }, + { + "question1": "Profileအသေးစိတ်ကဘယ်မှာတုန်း", + "question2": "ဒါဘာကြီးလည်း ရှင်းပြပါအုန်း" + }, + { + "answer1": { + "dialog": "အဲ့တာဆိုရင်တော့ မရေးထားဘူး", + "image": "https://i.imgur.com/bLB4Gzp.png" + }, + "answer2": { + "dialog": "ဒါက Visual Novelပုံစံကို အတုယူထားတာ", + "image": "https://i.imgur.com/bLB4Gzp.png" + } + }, + { + "dialog": "သူများတွေလိုလည်း Frontend ပရိုမဟုတ်တော့", + "image": "https://i.imgur.com/K9TNq53.png" + }, + { + "dialog": "စိတ်ဝင်စားစရာကောင်းတဲ့အလန်းစားProfile မျိုးမရေးတတ်ပါဘူး", + "image": "https://i.imgur.com/K9TNq53.png" + }, + { + "dialog": "ဒီအတိုင်းကြီး Plainပဲရေးရမှာလည်း ပျင်းဖို့ကောင်းတာဆိုတော့", + "image": "https://i.imgur.com/z5mBEFq.png" + }, + { + "dialog": "နည်းနည်းလောက် လက်ဆော့လိုက်တယ်ဆိုတာမျိုးပေါ့", + "image": "https://i.imgur.com/fJvnZAH.png" + }, + { + "question1": "ရေးထားတာလေး ကောင်းပါတယ်", + "question2": "ပျင်းဖို့ကောင်းတယ်" + }, + { + "answer1": { + "dialog": "ကျေးဇူးပါ ဒါပေမယ့်", + "image": "https://i.imgur.com/OWFb6q5.png" + }, + "answer2": { + "dialog": "မငြင်းနိုင်ပါဘူး", + "image": "https://i.imgur.com/bLB4Gzp.png" + } + }, + { + "dialog": "Reactဆိုလည်း Basicလောက်ပဲရေးနိုင်တာဆိုတော့ ကောင်းတယ်လို့ပြောဖို့ကခက်မယ်ထင်ပါတယ်", + "image": "https://i.imgur.com/fJvnZAH.png" + }, + { + "dialog": "လက်ရှိမှာလည်း Junior Laravel Developerအနေနဲ့အလုပ်လုပ်နေတာ တစ်နှစ်တောင်မပြည့်သေးဘူးဆိုတော့", + "image": "https://i.imgur.com/bLB4Gzp.png" + }, + { + "dialog": "ထပ်ထပ် သင်ယူပြီး ပိုလန်း ပိုမိုက်တဲ့ Codeတွေရေးနိုင်အောင် ကြိုးစားသွားမှာပါ", + "image": "https://i.imgur.com/fJvnZAH.png" + }, + { + "dialog": "သီချင်းသံတိုးနေရင်တော့ Mouse Wheelနဲ့ချဲ့လို့ရပါတယ်နော်", + "image": "https://i.imgur.com/fJvnZAH.png" + }, + "done" +] \ No newline at end of file diff --git a/src/styles/globals.scss b/src/styles/globals.scss index a73ed5f..bf2a446 100644 --- a/src/styles/globals.scss +++ b/src/styles/globals.scss @@ -2,13 +2,13 @@ @tailwind components; @tailwind utilities; -.mse-gradient { - background: linear-gradient( - 145deg, - rgb(0, 32, 95) 2.8%, - rgb(132, 53, 142) 80.8% - ); -} +// .mse-gradient { +// background: linear-gradient( +// 145deg, +// rgb(0, 32, 95) 2.8%, +// rgb(132, 53, 142) 80.8% +// ); +// } // Profile scss @@ -17,4 +17,4 @@ @import "profiles/aungmyatmoe"; @import "profiles/aungkoko"; @import "profiles/peter"; -@import "profiles/jiro" +@import "profiles/jiro";