diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..7213c453 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,9 @@ +{ + "extends": [ + "next/core-web-vitals", + "next/typescript" + ], + "rules": { + "react/no-unescaped-entities": "off" + } +} \ No newline at end of file diff --git a/PROJECT-README-TEMPLATE.md b/.github/PROJECT-README-TEMPLATE.md similarity index 100% rename from PROJECT-README-TEMPLATE.md rename to .github/PROJECT-README-TEMPLATE.md diff --git a/webmasterlog/.gitignore b/.gitignore similarity index 100% rename from webmasterlog/.gitignore rename to .gitignore diff --git a/.vercelignore b/.vercelignore new file mode 100644 index 00000000..d935462b --- /dev/null +++ b/.vercelignore @@ -0,0 +1,8 @@ +src/app/(category)/angular/(projects)/* +src/app/(category)/frontend/(projects)/* +src/app/(category)/javascript/(projects)/* +src/app/(category)/next/(projects)/* +src/app/(category)/node/(projects)/* +src/app/(category)/react/(projects)/* +src/app/(category)/typescript/(projects)/* +src/app/(category)/vue/(projects)/* diff --git a/Angular-JS-Projects/README.md b/Angular-JS-Projects/README.md deleted file mode 100644 index 654b28e6..00000000 --- a/Angular-JS-Projects/README.md +++ /dev/null @@ -1,53 +0,0 @@ -

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

- -[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=ANGULAR+JS+PROJECTS)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=65&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=BASIC+LEVEL+PROJECTS;INTERMEDIATE+LEVEL+PROJECTS;ADVANCED+LEVEL+PROJECTS)](https://git.io/typing-svg) - - -
- -## :zap: Available Projects 🎉 - - - -![Basic Level](https://img.shields.io/badge/Level-Basic-00FF00?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Quick Notes](./Basic/Quick-Notes) | [Task Manager](./Basic/Task-Manager) | | - ---- - - - -![Intermediate Level](https://img.shields.io/badge/Level-Intermediate-FFD700?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Train Website](./Intermediate/Train-Website) | [Recipe Sharing](./Intermediate/Recipe-Sharing) | | - ---- - - - -![Advanced Level](https://img.shields.io/badge/Level-Advanced-FF0000?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Contact Manager](./Advanced/Contact-Manager) | | | -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - -
-

Show some  ❤️  by  🌟  this repository!

-
- - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3d506956..ee8afbc9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ ```css git clone https://github.com//WebMasterLog.git ``` - + 4. Navigate to the project directory. ```py cd WebMasterLog @@ -44,7 +44,7 @@ We want your work to be readable by others; therefore, we encourage you to note 1. Directory names should be in `Kebab-Case` letters (e.g., `To-Do-List`, `Joke-Telling-Application`). 2. Add a `README` file in the project directory. -3. Follow the [***PROJECT README TEMPLATE***](./PROJECT-README-TEMPLATE.md). +3. Follow the [***PROJECT README TEMPLATE***](./.github/PROJECT-README-TEMPLATE.md). 4. Include a screenshot of the project. Named to be exact `screenshot.webp`. 5. If you have contributed in `React-JS-Projects`, updates the respective README file and enlist your project there. 6. Don't create more than 3-4 commits until not permitted by Admin and Mentors of the project. diff --git a/Front-end-Projects/README.md b/Front-end-Projects/README.md deleted file mode 100644 index 9c6300c0..00000000 --- a/Front-end-Projects/README.md +++ /dev/null @@ -1,110 +0,0 @@ -

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

- -[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=FRONT-END+PROJECTS)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=65&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=BASIC+LEVEL+PROJECTS;INTERMEDIATE+LEVEL+PROJECTS;ADVANCED+LEVEL+PROJECTS)](https://git.io/typing-svg) - - -
- -## :zap: Available Projects 🎉 - - - -![Basic Level](https://img.shields.io/badge/Level-Basic-00FF00?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Animated Tea Cup](./Basic/Animated-Tea-Cup) | [Biography BR Ambedkar](./Basic/Biography-BR-Ambedkar) | [Biography Mahatma Gandhi](./Basic/Biography-Mahatma-Gandhi) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [Blood Donation Form](./Basic/Blood-Donation-Form) | [Facebook Login Page](./Basic/Facebook-Login-Page) | [Feedback Form](./Basic/Feedback-Form) | - -#### :zap: Row 3 - -| | | | -|:--:|:--:|:--:| -| [FlexFlow](./Basic/FlexFlow) | [Google Drive Clone](./Basic/Google-Drive-Clone) | [Google Search Clone](./Basic/Google-Search-Clone) | - -#### :zap: Row 4 - -| | | | -|:--:|:--:|:--:| -| [Login Signup Form](./Basic/Login-Signup-Form) | [PhonePe](./Basic/PhonePe) | [SpaceX Website Clone](./Basic/SpaceX-Website-Clone) | - -#### :zap: Row 5 - -| | | | -|:--:|:--:|:--:| -| [Starbucks Landing page](./Basic/Starbucks-Landing-page) | [Survey Form](./Basic/Survey-Form) | [Sidebar Menu](./Basic/Sidebar-Menu) | - -#### :zap: Row 6 - -| | | | -|:--:|:--:|:--:| -| [Amazon Clone](./Basic/Amazon-Clone) | [Pokemon Card](./Basic/Pokemon-Card) | | - ---- - - - -![Intermediate Level](https://img.shields.io/badge/Level-Intermediate-FFD700?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Amazon Prime Clone](./Intermediate/Amazon-Prime-Clone) | [Apple Clone](./Intermediate/Apple-Clone) | [Book Website](./Intermediate/Book-Website) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [Flipkart Clone](./Intermediate/Flipkart-Clone) | [Hotstar Clone](./Intermediate/Hotstar-Clone) | [IPHONE 14 Pro Clone](./Intermediate/IPHONE-14-Pro-Clone) | - -#### :zap: Row 3 - -| | | | -|:--:|:--:|:--:| -| [Linktree Clone](./Intermediate/Linktree-Clone) | [MakeMyTrip Clone](./Intermediate/MakeMyTrip-Clone) | [Microsoft Clone](./Intermediate/Microsoft-Clone) | - -#### :zap: Row 4 - -| | | | -|:--:|:--:|:--:| -| [Netflix Clone](./Intermediate/Netflix-Clone) | [Product Landing Page](./Intermediate/Product-Landing-Page) | [Reddit Clone](./Intermediate/Reddit-Clone) | - -#### :zap: Row 5 - -| | | | -|:--:|:--:|:--:| -| [Spotify Clone](./Intermediate/Spotify-Clone) | | | - ---- - - - -![Advanced Level](https://img.shields.io/badge/Level-Advanced-FF0000?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| | | | - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - -
-

Show some  ❤️  by  🌟  this repository!

-
- - diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/next-env.d.ts b/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/next-env.d.ts deleted file mode 100644 index 62b8a52d..00000000 --- a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/Next-JS-Projects/README.md b/Next-JS-Projects/README.md deleted file mode 100644 index bf394e21..00000000 --- a/Next-JS-Projects/README.md +++ /dev/null @@ -1,59 +0,0 @@ -

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

- -[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=NEXT+JS+PROJECTS)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=65&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=BASIC+LEVEL+PROJECTS;INTERMEDIATE+LEVEL+PROJECTS;ADVANCED+LEVEL+PROJECTS)](https://git.io/typing-svg) - - -
- -## :zap: Available Projects 🎉 - - - -![Basic Level](https://img.shields.io/badge/Level-Basic-00FF00?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Weather Website](./Basic/Weather-Website) | | | - ---- - - - -![Intermediate Level](https://img.shields.io/badge/Level-Intermediate-FFD700?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Quiz App](./Intermediate/Quiz-App) | [Url Shortener](./Intermediate/Url-Shortener) | | - ---- - - - -![Advanced Level](https://img.shields.io/badge/Level-Advanced-FF0000?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Attendance Tracking App](./Advanced/Attendance-Tracking-App) | [Breaking News App](./Advanced/Breaking-News-App) | [Video Call App](./Advanced/Video-Call-App)| - -#### :zap: Row 2 - -|||| -|:--:|:--:|:--:| -[Gen AI Quiz Application](./Advanced/Gen-AI-Quiz-Application)|[Voice Call App](./Advanced/Voice-Call-App)|| -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - -
-

Show some  ❤️  by  🌟  this repository!

-
- - diff --git a/Node-JS-Projects/README.md b/Node-JS-Projects/README.md deleted file mode 100644 index 2da61028..00000000 --- a/Node-JS-Projects/README.md +++ /dev/null @@ -1,67 +0,0 @@ -

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

- -[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=NODE+JS+PROJECTS)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=65&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=BASIC+LEVEL+PROJECTS;INTERMEDIATE+LEVEL+PROJECTS;ADVANCED+LEVEL+PROJECTS)](https://git.io/typing-svg) - - -
- -## :zap: Available Projects 🎉 - - - -![Basic Level](https://img.shields.io/badge/Level-Basic-00FF00?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Crud Operations](./Basic/Crud-Operations) | [Headline Hub](./Basic/Headline-Hub) | [Infinite Scrolling](./Basic/Infinite-Scrolling) | - ---- - - - -![Intermediate Level](https://img.shields.io/badge/Level-Intermediate-FFD700?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Gmail Nodemailer](./Intermediate/Gmail-Nodemailer) | [JWT Authenticator With Roles](./Intermediate/JWT-Authenticator-With-Roles) | [Url Scraper](./Intermediate/Url-Scraper) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [YouTube Video Downloader](./Intermediate/YouTube-Video-Downloader) | [File Upload and Download System](./Intermediate/File-Upload-And-Download-System) | | - ---- - - - -![Advanced Level](https://img.shields.io/badge/Level-Advanced-FF0000?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Blog Platform](./Advanced/Blog-Platform) | [Cooking Blog](./Advanced/Cooking-Blog) | [Docx To Pdf Converter](./Advanced/Docx-To-Pdf-Converter) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [E Commerce](./Advanced/E-Commerce) | [Url Shortener](./Advanced/Url-Shortener) | [User Registration System](./Advanced/User-Registration-System) | - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - -
-

Show some  ❤️  by  🌟  this repository!

-
- - diff --git a/README.md b/README.md index 8f2ae7ae..5ca65dd2 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,27 @@

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=Web+Master+Log)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=90&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=HTML;CSS;SCSS;BOOTSTRAP;TAILWINDCSS;JAVASCRIPT;j-QUERY;REACT;REDUX;EXPRESS;ANGULAR+JS;VUE+JS;NEXT+JS;NODE+JS;TYPESCRIPT;MONGO+DB)](https://git.io/typing-svg)
-

- - -

- - - - - - - -
- - - - -

-
-
- - -## :zap: Tech Stack Used 🎉 +

+ + +

+ + + + + + + +
+ + + + +

+

-

- ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) ![Bootstrap](https://img.shields.io/badge/bootstrap-%238511FA.svg?style=for-the-badge&logo=bootstrap&logoColor=white) @@ -44,69 +37,17 @@ ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white) ![Vue.js](https://img.shields.io/badge/vuejs-%2335495e.svg?style=for-the-badge&logo=vuedotjs&logoColor=%234FC08D) ![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white) -
-
+

- -## :zap: About WebMasterLog ❤️ - -
- Welcome to WebMasterLog, It serves as a comprehensive record of various web development endeavors, highlighting the versatility and capabilities of projects built with Front-end and Back-end Web developement technologies. From interactive and responsive user interfaces to dynamic web applications, this repository encompasses a spectrum of web development solutions.
-
- - - - -
- - -## :zap: Project Structure 📜 - -The project is organized into the following main directories: - -- [**Angular-JS-Projects**](./Angular-JS-Projects/README.md) -- [**Front-end-Projects**](./Front-end-Projects/README.md) -- [**Next-JS-Projects**](./Next-JS-Projects/README.md) -- [**Node-JS-Projects**](./Node-JS-Projects/README.md) -- [**React-JS-Projects**](./React-JS-Projects/README.md) -- [**Typescript-Projects**](./Typescript-Projects/README.md) -- [**Vanilla-JS-Projects**](./Vanilla-JS-Projects/README.md) -- [**Vue-JS-Projects**](./Vue-JS-Projects/README.md) - -And these directories contains 3 sub-directories. - -- 🌱 Basic -- 🚀 Intermediate -- 🌟 Advanced -
+--- - -## :zap: Open Source Programs ❄️ +### :zap: About WebMasterLog ❤️ - - - - - - - -
- -
- JWOC 2024 -
-
- -
- GSSoC 2024 -
-
-
+Welcome to WebMasterLog, It serves as a comprehensive record of various web development endeavors, highlighting the versatility and capabilities of projects built with Front-end and Back-end Web developement technologies. From interactive and responsive user interfaces to dynamic web applications, this repository encompasses a spectrum of web development solutions. - -## :zap: How to Contribute? 🤔 +### :zap: How to Contribute? 🤔 - Drop a ⭐ on the GitHub repository - Take a look at the existing [**Issues**](https://github.com/Avdhesh-Varshney/WebMasterLog/issues). @@ -117,64 +58,88 @@ And these directories contains 3 sub-directories. - Follow the [**Code of Conduct**](https://github.com/Avdhesh-Varshney/WebMasterLog/blob/main/CODE_OF_CONDUCT.md) and start your contribution. - This repository consists of various web development projects, and all of the projects must follow a certain template. I wish the contributors will take care of this while contributing in this repository. - -## :zap: What Can You Contribute? 👩‍💻 +### :zap: What Can You Contribute? 👩‍💻
-| **Contribution Area** | **Description** | -| ------------------------------------|----------------------------------------------------------------------------------------------------| -| **Add New Projects** | Share your HTML, CSS, and JavaScript web development projects. | -| **Improve Existing Projects** | Enhance projects by refining code, optimizing performance, or adding features. | -| **Documentation Refinement** | Improve project documentation for clearer explanations and instructions. | -| **Bug Fixes** | Contribute bug fixes to maintain the reliability of existing projects. | -| **Responsive Design Contributions** | Ensure projects have responsive designs for optimal user experiences on various devices. | -| **Code Styling and Readability** | Contribute to code readability and consistency, making it easier for others to comprehend. | -| **Optimized Approaches** | Suggest and implement optimized approaches for specific functionalities in projects. | +| **Contribution Area** | **Description** | +| ----------------------------------- | ------------------------------------------------------------------------------------------ | +| **Add New Projects** | Share your HTML, CSS, and JavaScript web development projects. | +| **Improve Existing Projects** | Enhance projects by refining code, optimizing performance, or adding features. | +| **Documentation Refinement** | Improve project documentation for clearer explanations and instructions. | +| **Bug Fixes** | Contribute bug fixes to maintain the reliability of existing projects. | +| **Responsive Design Contributions** | Ensure projects have responsive designs for optimal user experiences on various devices. | +| **Code Styling and Readability** | Contribute to code readability and consistency, making it easier for others to comprehend. | +| **Optimized Approaches** | Suggest and implement optimized approaches for specific functionalities in projects. | #### Choose an area that aligns with your skills and interests, and help make WebMasterLog a valuable resource for the web development community. Thank you for your contributions! 🌐🚀
-
- -## :zap: Project Admin & Mentor ❤️ +---
- - - - -
- - -
-

Avdhesh Varshney

- - Discord - -
-
-
+### 😃 Project Admin - -## :zap: Thanks to all Contributors 💪 + + + + +
+ + +
+

Avdhesh Varshney

+ + Discord + +
-
+### ❄️ Open Source Programs + + + + + + + + +
+ +
+ JWOC 2024 +
+
+ +
+ GSSoC 2024 +
+
+ +
+ GSSoC-Ext 2024 +
+
+ +
+ Hacktoberfest 2024 +
+
+ +### ✨ Our Valuable Contributors + + + + - - -
![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) -

Tip from us 😇

It always takes time to understand and learn. So, don't worry at all. We know you have got this! 💪

Show some  ❤️  by  🌟  this repository!

- I love connecting with different people so if you want to say hi, I'll be happy to meet you more! :)
- + diff --git a/React-JS-Projects/README.md b/React-JS-Projects/README.md deleted file mode 100644 index 77dd6209..00000000 --- a/React-JS-Projects/README.md +++ /dev/null @@ -1,108 +0,0 @@ -

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

- -[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=REACT+JS+PROJECTS)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=65&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=BASIC+LEVEL+PROJECTS;INTERMEDIATE+LEVEL+PROJECTS;ADVANCED+LEVEL+PROJECTS)](https://git.io/typing-svg) - - -
- -## :zap: Available Projects 🎉 - - - -![Basic Level](https://img.shields.io/badge/Level-Basic-00FF00?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Motivation For The Day](./Basic/Motivation-For-The-Day) | [Password Generator](./Basic/Password-Generator) | [Shopping Cart](./Basic/Shopping-Cart) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [Swiggy Clone](./Basic/Swiggy-Clone) | [To Do List](./Basic/To-Do-List) | [Weather App](./Basic/Weather-App) | - ---- - - - -![Intermediate Level](https://img.shields.io/badge/Level-Intermediate-FFD700?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Cakes N Cookies](./Intermediate/Cakes-N-Cookies) | [Chat Bot](./Intermediate/Chat-Bot) | [Cryptocurrency Finder](./Intermediate/Cryptocurrency-Finder) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [Currency Converter](./Intermediate/Currency-Converter) | [Form Validation](./Intermediate/Form-Validation) | [GitHub Profile Viewer](./Intermediate/GitHub-Profile-Viewer) | - -#### :zap: Row 3 - -| | | | -|:--:|:--:|:--:| -| [Image Carousel](./Intermediate/Image-Carousel) | [Interview Report](./Intermediate/Interview-Report) | [Movie Land](./Intermediate/Movie-Land) | - -#### :zap: Row 4 - -| | | | -|:--:|:--:|:--:| -| [Myntra Clone](./Intermediate/Myntra-Clone) | [Netflix Clone](./Intermediate/Netflix-Clone) | [Quiz App](./Intermediate/Quiz-App) | - -#### :zap: Row 5 - -| | | | -|:--:|:--:|:--:| -| [Random Bible Verse](./Intermediate/Random-Bible-Verse) | [Tesla Clone](./Intermediate/Tesla-Clone) | [Tspot Travel App](./Intermediate/Tspot-Travel-App) | - -#### :zap: Row 6 - -| | | | -|:--:|:--:|:--:| -| [Youtube Clone](./Intermediate/Youtube-Clone) | [Video Hub](./Intermediate/Video-Hub) | [Text Editor](./Intermediate/Text-Editor) | - ---- - - - -![Advanced Level](https://img.shields.io/badge/Level-Advanced-FF0000?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Chat Application](./Advanced/Chat-Application) | [Code Editor](./Advanced/Code-Editor) | [Food Recipe App](./Advanced/Food-Recipe-App) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [IP Address Tracker](./Advanced/IP-Address-Tracker) | [Job Portal](./Advanced/Job-Portal) | [Notes App](./Advanced/Notes-App) | - -#### :zap: Row 3 - -| | | | -|:--:|:--:|:--:| -| [Qr Code Generator](./Advanced/Qr-Code-Generator) | [Solar System Model](./Advanced/Solar-System-Model) | [Travel Website](./Advanced/Travel-Website) | - -#### :zap: Row 4 - -| | | | -|:--:|:--:|:--:| -| [Tutoring Website](./Advanced/Tutoring-Website) | [Typing Speed Tracker](./Advanced/Typing-Speed-Tracker) | [Sudoku Solver](./Advanced/Sudoku-Solver/) | - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - -
-

Show some  ❤️  by  🌟  this repository!

-
- - diff --git a/Typescript-Projects/README.md b/Typescript-Projects/README.md deleted file mode 100644 index 602fa705..00000000 --- a/Typescript-Projects/README.md +++ /dev/null @@ -1,55 +0,0 @@ -

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

- -[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=TYPESCRIPT+PROJECTS)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=65&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=BASIC+LEVEL+PROJECTS;INTERMEDIATE+LEVEL+PROJECTS;ADVANCED+LEVEL+PROJECTS)](https://git.io/typing-svg) - - -
- -## :zap: Available Projects 🎉 - - - -![Basic Level](https://img.shields.io/badge/Level-Basic-00FF00?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| | | | - ---- - - - -![Intermediate Level](https://img.shields.io/badge/Level-Intermediate-FFD700?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Quiz App](./Intermediate/Quiz-App) | | | - ---- - - - -![Advanced Level](https://img.shields.io/badge/Level-Advanced-FF0000?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [To Do List App](./Advanced/To-Do-List-App) | | | - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - -
-

Show some  ❤️  by  🌟  this repository!

-
- - diff --git a/Vanilla-JS-Projects/README.md b/Vanilla-JS-Projects/README.md deleted file mode 100644 index d1cd1582..00000000 --- a/Vanilla-JS-Projects/README.md +++ /dev/null @@ -1,278 +0,0 @@ -

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

- -[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=VANILLA+JS+PROJECTS)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=65&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=BASIC+LEVEL+PROJECTS;INTERMEDIATE+LEVEL+PROJECTS;ADVANCED+LEVEL+PROJECTS)](https://git.io/typing-svg) - - -
- -## :zap: Available Projects 🎉 - - - -![Basic Level](https://img.shields.io/badge/Level-Basic-00FF00?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [3D Solar System](./Basic/3D-Solar-System) | [Anagram Checker](./Basic/Anagram-Checker) | [Analog Clock](./Basic/Analog-Clock) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [Apna College Clone](./Basic/Apna-College-Clone) | [Bulb On Off](./Basic/Bulb-On-Off) | [Captcha Generator](./Basic/Captcha-Generator) | - -#### :zap: Row 3 - -| | | | -|:--:|:--:|:--:| -| [Co Prime Number Checker](./Basic/Co-Prime-Number-Checker) | [CSS Art Gallery](./Basic/CSS-Art-Gallery) | [Custom Video Player](./Basic/Custom-Video-Player) | - -#### :zap: Row 4 - -| | | | -|:--:|:--:|:--:| -| [Days Between Two Dates](./Basic/Days-Between-Two-Dates) | [Dictionary App](./Basic/Dictionary-App) | [Dictonary App](./Basic/Dictonary-App) | - -#### :zap: Row 5 - -| | | | -|:--:|:--:|:--:| -| [Expense Tracker](./Basic/Expense-Tracker) | [Gallery](./Basic/Gallery) | [Image Search Engine](./Basic/Image-Search-Engine) | - -#### :zap: Row 6 - -| | | | -|:--:|:--:|:--:| -| [Isogram Checker](./Basic/Isogram-Checker) | [Isomorphic Strings Checker](./Basic/Isomorphic-Strings-Checker) | [Joke Telling Website](./Basic/Joke-Telling-Website) | - -#### :zap: Row 7 - -| | | | -|:--:|:--:|:--:| -| [Leap Year Checker](./Basic/Leap-Year-Checker) | [Palindrome Checker](./Basic/Palindrome-Checker) | [Pangram Checker](./Basic/Pangram-Checker) | - -#### :zap: Row 8 - -| | | | -|:--:|:--:|:--:| -| [Password Manager](./Basic/Password-Manager) | [Perfect Number Checker](./Basic/Perfect-Number-Checker) | [Personal Portfolio](./Basic/Personal-Portfolio) | - -#### :zap: Row 9 - -| | | | -|:--:|:--:|:--:| -| [Prime Number Checker](./Basic/Prime-Number-Checker) | [Qr Code Generator](./Basic/Qr-Code-Generator) | [Quote Generator](./Basic/Quote-Generator) | - -#### :zap: Row 10 - -| | | | -|:--:|:--:|:--:| -| [Random Advice Generator](./Basic/Random-Advice-Generator) | [Random Picker](./Basic/Random-Picker) | [RGB Color Slider](./Basic/RGB-Color-Slider) | - -#### :zap: Row 11 - -| | | | -|:--:|:--:|:--:| -| [Star Rating Component](./Basic/Star-Rating-Component) | [Stop Watch](./Basic/Stop-Watch) | [Stopwatch](./Basic/Stopwatch) | - -#### :zap: Row 12 - -| | | | -|:--:|:--:|:--:| -| [Subsequence Checker](./Basic/Subsequence-Checker) | [Substring Checker](./Basic/Substring-Checker) | [Tesla Website Clone](./Basic/Tesla-Website-Clone) | - -#### :zap: Row 13 - -| | | | -|:--:|:--:|:--:| -| [Text Translator](./Basic/Text-Translator) | [Theme Cake Order Form](./Basic/Theme-Cake-Order-Form) | [To Do List](./Basic/To-Do-List) | - -#### :zap: Row 14 - -| | | | -|:--:|:--:|:--:| -| [Travel App](./Basic/Travel-App) | [Virtual Piano](./Basic/Virtual-Piano) | [Vowel Counter](./Basic/Vowel-Counter) | - -#### :zap: Row 15 - -| | | | -|:--:|:--:|:--:| -| [Word Counter](./Basic/Word-Counter) | [World Clock](./Basic/World-Clock) | [World Population](./Basic/World-Population) | - -#### :zap: Row 16 - -| | | | -|:--:|:--:|:--:| -| [Youtube Clone](./Basic/Youtube-Clone) | [Electronic Drum Kit](./Basic/Electronic-Drum-Kit) | [Paytm Clone](./Basic/Paytm-Clone) | - -#### :zap: Row 17 - -| | | | -|:--:|:--:|:--:| -| [Search From Here](./Basic/Search-From-Here) | | | - ---- - - - -![Intermediate Level](https://img.shields.io/badge/Level-Intermediate-FFD700?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Amazon Clone](./Intermediate/Amazon-Clone) | [Battery Status Tracker](./Intermediate/Battery-Status-Tracker) | [Book Review Website](./Intermediate/Book-Review-Website) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [Ceaser Cipher](./Intermediate/Ceaser-Cipher) | [Code Editor](./Intermediate/Code-Editor) | [CosmoXplore APoD](./Intermediate/CosmoXplore-APoD) | - -#### :zap: Row 3 - -| | | | -|:--:|:--:|:--:| -| [Countdown Timer](./Intermediate/Countdown-Timer) | [Countries Over The World](./Intermediate/Countries-Over-The-World) | [Daily Journal Website](./Intermediate/Daily-Journal-Website) | - -#### :zap: Row 4 - -| | | | -|:--:|:--:|:--:| -| [Day Calculator](./Intermediate/Day-Calculator) | [Drag and Drop](./Intermediate/Drag-and-Drop) | [Email Subscription form with google sheet](./Intermediate/Email-Subscription-form-with-google-sheet) | - -#### :zap: Row 5 - -| | | | -|:--:|:--:|:--:| -| [Emoji Maker](./Intermediate/Emoji-Maker) | [Expense Splitter Website](./Intermediate/Expense-Splitter-Website) | [Fitness Website](./Intermediate/Fitness-Website) | - - -#### :zap: Row 6 - -| | | | -|:--:|:--:|:--:| -| [Food Recipe Finder](./Intermediate/Food-Recipe-Finder) | [GasGuys HomePage Clone](./Intermediate/GasGuys-HomePage-Clone) | [Github Profile Viewer](./Intermediate/Github-Profile-Viewer) | - -#### :zap: Row 7 - -| | | | -|:--:|:--:|:--:| -| [Gravity Drops](./Intermediate/Gravity-Drops) | [Hex Color Code Generator](./Intermediate/Hex-Color-Code-Generator) | [Interactive Drawing Website](./Intermediate/Interactive-Drawing-Website) | - -#### :zap: Row 8 - -| | | | -|:--:|:--:|:--:| -| [Interactive Periodic Table](./Intermediate/Interactive-Periodic-Table) | [Interval Timer](./Intermediate/Interval-Timer) | [Kanban Board](./Intermediate/Kanban-Board) | - -#### :zap: Row 9 - -| | | | -|:--:|:--:|:--:| -| [Language Learning Website](./Intermediate/Language-Learning-Website) | [Language Translator](./Intermediate/Language-Translator) | [Martian Imagery](./Intermediate/Martian-Imagery) | - -#### :zap: Row 10 - -| | | | -|:--:|:--:|:--:| -| [Meme Creator](./Intermediate/Meme-Creator) | [Meme Generator](./Intermediate/Meme-Generator) | [Morse Code Convertor](./Intermediate/Morse-Code-Convertor) | - -#### :zap: Row 11 - -| | | | -|:--:|:--:|:--:| -| [Movie App](./Intermediate/Movie-App) | [Movie Finder](./Intermediate/Movie-Finder) | [Number To Words Convertor](./Intermediate/Number-To-Words-Convertor) | - -#### :zap: Row 12 - -| | | | -|:--:|:--:|:--:| -| [Paint App](./Intermediate/Paint-App) | [Password Generator](./Intermediate/Password-Generator) | [Password Strength Checker](./Intermediate/Password-Strength-Checker) | - -#### :zap: Row 13 - -| | | | -|:--:|:--:|:--:| -| [Random Name Generator](./Intermediate/Random-Name-Generator) | [Social Media Analytics](./Intermediate/Social-Media-Analytics) | [Sudoku Game](./Intermediate/Sudoku-Game) | - -#### :zap: Row 14 - -| | | | -|:--:|:--:|:--:| -| [Sudoku Solver](./Intermediate/Sudoku-Solver) | [Synonym Searcher](./Intermediate/Synonym-Searcher) | [Task Reminder](./Intermediate/Task-Reminder) | - -#### :zap: Row 15 - -| | | | -|:--:|:--:|:--:| -| [Text Summarizer](./Intermediate/Text-Summarizer) | [Text to Image Generator](./Intermediate/Text-to-Image-Generator) | [Text to Voice](./Intermediate/Text-to-Voice) | - -#### :zap: Row 16 - -| | | | -|:--:|:--:|:--:| -| [Time Capsule Center](./Intermediate/Time-Capsule-Center) | [Time Watcher](./Intermediate/Time-Watcher) | [Travel Journal](./Intermediate/Travel-Journal) | - -#### :zap: Row 17 - -| | | | -|:--:|:--:|:--:| -| [Valid Parenthesis Checker](./Intermediate/Valid-Parenthesis-Checker) | [Weather App](./Intermediate/Weather-App) | [Wheel Selector](./Intermediate/Wheel-Selector) | - - -#### :zap: Row 18 - -| | | | -|:--:|:--:|:--:| -| [Zomato Clone](./Intermediate/Zomato-Clone) | [Wikipedia Clone](./Intermediate/Wikipedia-Clone) | [Calendar App](./Intermediate/Calendar-App) | - - -#### :zap: Row 19 -| | | | -|:--:|:--:|:--:| -| [Recipe Hunter](./Intermediate/Recipe-Hunter) | | | - ---- - - - -![Advanced Level](https://img.shields.io/badge/Level-Advanced-FF0000?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Audio Analyzer](./Advanced/Audio-Analyzer) | [Garden Planning Website](./Advanced/Garden-Planning-Website) | [Hackathon Tracker](./Advanced/Hackathon-Tracker) | - -#### :zap: Row 2 - -| | | | -|:--:|:--:|:--:| -| [Markdown Previewer](./Advanced/Markdown-Previewer) | [Moon Phase Visibility](./Advanced/Moon-Phase-Visibility) | [Recipe Finder](./Advanced/Recipe-Finder) | - -#### :zap: Row 3 - -| | | | -|:--:|:--:|:--:| -| [Resume Builder](./Advanced/Resume-Builder) | [Sort Visualizer](./Advanced/Sort-Visualizer) | [Typing Test](./Advanced/Typing-Test) | - -#### :zap: Row 4 - -| | | | -|:--:|:--:|:--:| -| [Vocabulary Builder](./Advanced/Vocabulary-Builder) | [N Queen Visualizer](./Advanced/N-Queen-Visualizer/) | | | - - -
- -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - -
-

Show some  ❤️  by  🌟  this repository!

-
- - diff --git a/Vue-JS-Projects/README.md b/Vue-JS-Projects/README.md deleted file mode 100644 index 3b3a013a..00000000 --- a/Vue-JS-Projects/README.md +++ /dev/null @@ -1,58 +0,0 @@ -

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

- -[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=VUE+JS+PROJECTS)](https://git.io/typing-svg) -[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=65&pause=400&color=18b8d0¢er=true&vCenter=true&width=2000&height=200&lines=BASIC+LEVEL+PROJECTS;INTERMEDIATE+LEVEL+PROJECTS;ADVANCED+LEVEL+PROJECTS)](https://git.io/typing-svg) - - -
- -## :zap: Available Projects 🎉 - -![Basic Level](https://img.shields.io/badge/Level-Basic-00FF00?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Markdown Previewer](./Basic/Markdown-Previewer) | [Quote Generator](./Basic/Quote-Generator) | | - - -
- ---- - -
- -![Intermediate Level](https://img.shields.io/badge/Level-Intermediate-FFD700?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| [Expense Tracker](./Intermediate/Expense-Tracker) | [Google Keep](./Intermediate/Google-Keep) | | - -
- - ---- -
- -![Advanced Level](https://img.shields.io/badge/Level-Advanced-FF0000?style=for-the-badge&logo=codeigniter) - -#### :zap: Row 1 - -| | | | -|:--:|:--:|:--:| -| | | | - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - -
-

Show some  ❤️  by  🌟  this repository!

-
- - diff --git a/components.json b/components.json new file mode 100644 index 00000000..fef51efb --- /dev/null +++ b/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} \ No newline at end of file diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 00000000..e491f33b --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + images: { + domains: ['avatars.githubusercontent.com', 'raw.githubusercontent.com'], + }, +}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..5b7b663c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6502 @@ +{ + "name": "webmasterlog", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "webmasterlog", + "version": "0.1.0", + "dependencies": { + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-dropdown-menu": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "framer-motion": "^11.11.9", + "lucide-react": "^0.452.0", + "next": "14.2.15", + "react": "^18", + "react-dom": "^18", + "react-icons": "^5.3.0", + "sharp": "^0.33.5", + "tailwind-merge": "^2.5.3", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "14.2.15", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "dependencies": { + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", + "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.15.tgz", + "integrity": "sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.15.tgz", + "integrity": "sha512-pKU0iqKRBlFB/ocOI1Ip2CkKePZpYpnw5bEItEkuZ/Nr9FQP1+p7VDWr4VfOdff4i9bFmrOaeaU1bFEyAcxiMQ==", + "dev": true, + "dependencies": { + "glob": "10.3.10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.15.tgz", + "integrity": "sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.15.tgz", + "integrity": "sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.15.tgz", + "integrity": "sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.15.tgz", + "integrity": "sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.15.tgz", + "integrity": "sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.15.tgz", + "integrity": "sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.15.tgz", + "integrity": "sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.15.tgz", + "integrity": "sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.15.tgz", + "integrity": "sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", + "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", + "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.2.tgz", + "integrity": "sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.2", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.2.tgz", + "integrity": "sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", + "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "dev": true + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "dependencies": { + "@swc/counter": "^0.1.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.16.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", + "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", + "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz", + "integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/type-utils": "8.8.1", + "@typescript-eslint/utils": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz", + "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/typescript-estree": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz", + "integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz", + "integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.8.1", + "@typescript-eslint/utils": "8.8.1", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz", + "integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz", + "integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz", + "integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/typescript-estree": "8.8.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz", + "integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.8.1", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", + "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001668", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz", + "integrity": "sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", + "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "dependencies": { + "clsx": "2.0.0" + }, + "funding": { + "url": "https://joebell.co.uk" + } + }, + "node_modules/class-variance-authority/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz", + "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==", + "dependencies": { + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/cmdk/node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", + "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.15.tgz", + "integrity": "sha512-mKg+NC/8a4JKLZRIOBplxXNdStgxy7lzWuedUaCc8tev+Al9mwDUTujQH6W6qXDH9kycWiVo28tADWGvpBsZcQ==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "14.2.15", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", + "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", + "dev": true, + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.5", + "enhanced-resolve": "^5.15.0", + "eslint-module-utils": "^2.8.1", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz", + "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==", + "dev": true, + "dependencies": { + "aria-query": "~5.1.3", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.19", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", + "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/framer-motion": { + "version": "11.11.9", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.11.9.tgz", + "integrity": "sha512-XpdZseuCrZehdHGuW22zZt3SF5g6AHJHJi7JwQIigOznW4Jg1n0oGPMJQheMaKLC+0rp5gxUKMRYI6ytd3q4RQ==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.2.1.tgz", + "integrity": "sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==", + "dev": true, + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/lucide-react": { + "version": "0.452.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.452.0.tgz", + "integrity": "sha512-kNefjOUOGm+Mu3KDiryONyPba9r+nhcrz5oJs3N6JDzGboQNEXw5GB3yB8rnV9/FA4bPyggNU6CRSihZm9MvSw==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/next": { + "version": "14.2.15", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.15.tgz", + "integrity": "sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==", + "dependencies": { + "@next/env": "14.2.15", + "@swc/helpers": "0.5.5", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.2.15", + "@next/swc-darwin-x64": "14.2.15", + "@next/swc-linux-arm64-gnu": "14.2.15", + "@next/swc-linux-arm64-musl": "14.2.15", + "@next/swc-linux-x64-gnu": "14.2.15", + "@next/swc-linux-x64-musl": "14.2.15", + "@next/swc-win32-arm64-msvc": "14.2.15", + "@next/swc-win32-ia32-msvc": "14.2.15", + "@next/swc-win32-x64-msvc": "14.2.15" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-icons": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", + "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/react-remove-scroll": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", + "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.6", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", + "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.3.tgz", + "integrity": "sha512-d9ZolCAIzom1nf/5p4LdD5zvjmgSxY0BGgdSvmXIoMYAiPdAW/dSpP7joCDYFY7r/HkEa2qmPtkgsu0xjQeQtw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", + "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 00000000..de0d5a49 --- /dev/null +++ b/package.json @@ -0,0 +1,38 @@ +{ + "name": "webmasterlog", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-dropdown-menu": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "framer-motion": "^11.11.9", + "lucide-react": "^0.452.0", + "next": "14.2.15", + "react": "^18", + "react-dom": "^18", + "react-icons": "^5.3.0", + "sharp": "^0.33.5", + "tailwind-merge": "^2.5.3", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "14.2.15", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } +} \ No newline at end of file diff --git a/webmasterlog/postcss.config.mjs b/postcss.config.mjs similarity index 71% rename from webmasterlog/postcss.config.mjs rename to postcss.config.mjs index 1a69fd2a..f6c3605a 100644 --- a/webmasterlog/postcss.config.mjs +++ b/postcss.config.mjs @@ -1,8 +1,8 @@ /** @type {import('postcss-load-config').Config} */ const config = { - plugins: { - tailwindcss: {}, - }, + plugins: { + tailwindcss: {}, + }, }; export default config; diff --git a/webmasterlog/public/image.png b/public/image.png similarity index 100% rename from webmasterlog/public/image.png rename to public/image.png diff --git a/webmasterlog/public/intro-video.mp4 b/public/intro-video.mp4 similarity index 100% rename from webmasterlog/public/intro-video.mp4 rename to public/intro-video.mp4 diff --git a/webmasterlog/public/logo.webp b/public/logo.webp similarity index 100% rename from webmasterlog/public/logo.webp rename to public/logo.webp diff --git a/webmasterlog/public/photo-not-available.webp b/public/photo-not-available.webp similarity index 100% rename from webmasterlog/public/photo-not-available.webp rename to public/photo-not-available.webp diff --git a/webmasterlog/public/white-letter.png b/public/white-letter.png similarity index 100% rename from webmasterlog/public/white-letter.png rename to public/white-letter.png diff --git a/webmasterlog/public/white-logo.png b/public/white-logo.png similarity index 100% rename from webmasterlog/public/white-logo.png rename to public/white-logo.png diff --git a/src/app/(category)/README.md b/src/app/(category)/README.md new file mode 100644 index 00000000..0d2fef09 --- /dev/null +++ b/src/app/(category)/README.md @@ -0,0 +1,715 @@ +

Hey <𝚌𝚘𝚍𝚎𝚛𝚜/>! 👋

+ +[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code&size=60&pause=1000¢er=true&vCenter=true&multiline=true&width=1000&height=100&lines=AVAILABLE+PROJECTS)](https://git.io/typing-svg) + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +
+ + +[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=60&pause=1500&color=dd0031¢er=true&vCenter=true&width=2000&height=120&lines=ANGULAR+JS+PROJECTS)](https://git.io/typing-svg) + + +
+ +#### :zap: Row 1 + +| | | | +| :--: | :--: | :--: | +| [Contact Manager](./src/app/(category)/angular/(projects)/contact-manager) | [Quick Notes](./src/app/(category)/angular/(projects)/quick-notes) | [Recipe Sharing](./src/app/(category)/angular/(projects)/recipe-sharing) | + +--- + +#### :zap: Row 2 + +| | | | +| :--: | :--: | :--: | +| [Task Manager](./src/app/(category)/angular/(projects)/task-manager) | [Train Website](./src/app/(category)/angular/(projects)/train-website) | | + +
+ +
+ +--- + + + +
+ + +[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=60&pause=1500&color=61dafb¢er=true&vCenter=true&width=2000&height=120&lines=FRONTEND+PROJECTS)](https://git.io/typing-svg) + + +
+ +#### :zap: Row 1 + +| | | | +| :--: | :--: | :--: | +| [Amazon Clone](./src/app/(category)/frontend/(projects)/amazon-clone) | [Amazon Prime Clone](./src/app/(category)/frontend/(projects)/amazon-prime-clone) | [Animated Tea Cup](./src/app/(category)/frontend/(projects)/animated-tea-cup) | + +--- + +#### :zap: Row 2 + +| | | | +| :--: | :--: | :--: | +| [Apple Clone](./src/app/(category)/frontend/(projects)/apple-clone) | [Biography Br Ambedkar](./src/app/(category)/frontend/(projects)/biography-br-ambedkar) | [Biography Mahatma Gandhi](./src/app/(category)/frontend/(projects)/biography-mahatma-gandhi) | + +--- + +#### :zap: Row 3 + +| | | | +| :--: | :--: | :--: | +| [Blood Donation Form](./src/app/(category)/frontend/(projects)/blood-donation-form) | [Book Website](./src/app/(category)/frontend/(projects)/book-website) | [Facebook Login Page](./src/app/(category)/frontend/(projects)/facebook-login-page) | + +--- + +#### :zap: Row 4 + +| | | | +| :--: | :--: | :--: | +| [Feedback Form](./src/app/(category)/frontend/(projects)/feedback-form) | [Flexflow](./src/app/(category)/frontend/(projects)/flexflow) | [Flipkart Clone](./src/app/(category)/frontend/(projects)/flipkart-clone) | + +--- + +#### :zap: Row 5 + +| | | | +| :--: | :--: | :--: | +| [Google Drive Clone](./src/app/(category)/frontend/(projects)/google-drive-clone) | [Google Search Clone](./src/app/(category)/frontend/(projects)/google-search-clone) | [Hotstar Clone](./src/app/(category)/frontend/(projects)/hotstar-clone) | + +--- + +#### :zap: Row 6 + +| | | | +| :--: | :--: | :--: | +| [Iphone 14 Pro Clone](./src/app/(category)/frontend/(projects)/iphone-14-pro-clone) | [Linktree Clone](./src/app/(category)/frontend/(projects)/linktree-clone) | [Login Signup Form](./src/app/(category)/frontend/(projects)/login-signup-form) | + +--- + +#### :zap: Row 7 + +| | | | +| :--: | :--: | :--: | +| [Makemytrip Clone](./src/app/(category)/frontend/(projects)/makemytrip-clone) | [Microsoft Clone](./src/app/(category)/frontend/(projects)/microsoft-clone) | [Netflix Clone](./src/app/(category)/frontend/(projects)/netflix-clone) | + +--- + +#### :zap: Row 8 + +| | | | +| :--: | :--: | :--: | +| [Phonepe](./src/app/(category)/frontend/(projects)/phonepe) | [Pokemon Card](./src/app/(category)/frontend/(projects)/pokemon-card) | [Product Landing Page](./src/app/(category)/frontend/(projects)/product-landing-page) | + +--- + +#### :zap: Row 9 + +| | | | +| :--: | :--: | :--: | +| [Reddit Clone](./src/app/(category)/frontend/(projects)/reddit-clone) | [Sidebar Menu](./src/app/(category)/frontend/(projects)/sidebar-menu) | [Spacex Website Clone](./src/app/(category)/frontend/(projects)/spacex-website-clone) | + +--- + +#### :zap: Row 10 + +| | | | +| :--: | :--: | :--: | +| [Spotify Clone](./src/app/(category)/frontend/(projects)/spotify-clone) | [Starbucks Landing Page](./src/app/(category)/frontend/(projects)/starbucks-landing-page) | [Survey Form](./src/app/(category)/frontend/(projects)/survey-form) | + +
+ +
+ +--- + + + +
+ + +[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=60&pause=1500&color=F7DF1E¢er=true&vCenter=true&width=2000&height=120&lines=VANILLA+JS+PROJECTS)](https://git.io/typing-svg) + + +
+ +#### :zap: Row 1 + +| | | | +| :--: | :--: | :--: | +| [3D Solar System](./src/app/(category)/javascript/(projects)/3d-solar-system) | [Amazon Clone](./src/app/(category)/javascript/(projects)/amazon-clone) | [Anagram Checker](./src/app/(category)/javascript/(projects)/anagram-checker) | + +--- + +#### :zap: Row 2 + +| | | | +| :--: | :--: | :--: | +| [Analog Clock](./src/app/(category)/javascript/(projects)/analog-clock) | [Apna College Clone](./src/app/(category)/javascript/(projects)/apna-college-clone) | [Audio Analyzer](./src/app/(category)/javascript/(projects)/audio-analyzer) | + +--- + +#### :zap: Row 3 + +| | | | +| :--: | :--: | :--: | +| [Battery Status Tracker](./src/app/(category)/javascript/(projects)/battery-status-tracker) | [Book Review Website](./src/app/(category)/javascript/(projects)/book-review-website) | [Bulb On Off](./src/app/(category)/javascript/(projects)/bulb-on-off) | + +--- + +#### :zap: Row 4 + +| | | | +| :--: | :--: | :--: | +| [Calendar App](./src/app/(category)/javascript/(projects)/calendar-app) | [Captcha Generator](./src/app/(category)/javascript/(projects)/captcha-generator) | [Ceaser Cipher](./src/app/(category)/javascript/(projects)/ceaser-cipher) | + +--- + +#### :zap: Row 5 + +| | | | +| :--: | :--: | :--: | +| [Co Prime Number Checker](./src/app/(category)/javascript/(projects)/co-prime-number-checker) | [Code Editor](./src/app/(category)/javascript/(projects)/code-editor) | [Cosmoxplore Apod](./src/app/(category)/javascript/(projects)/cosmoxplore-apod) | + +--- + +#### :zap: Row 6 + +| | | | +| :--: | :--: | :--: | +| [Countdown Timer](./src/app/(category)/javascript/(projects)/countdown-timer) | [Countries Over The World](./src/app/(category)/javascript/(projects)/countries-over-the-world) | [Css Art Gallery](./src/app/(category)/javascript/(projects)/css-art-gallery) | + +--- + +#### :zap: Row 7 + +| | | | +| :--: | :--: | :--: | +| [Custom Video Player](./src/app/(category)/javascript/(projects)/custom-video-player) | [Daily Journal Website](./src/app/(category)/javascript/(projects)/daily-journal-website) | [Day Calculator](./src/app/(category)/javascript/(projects)/day-calculator) | + +--- + +#### :zap: Row 8 + +| | | | +| :--: | :--: | :--: | +| [Days Between Two Dates](./src/app/(category)/javascript/(projects)/days-between-two-dates) | [Dictionary App](./src/app/(category)/javascript/(projects)/dictionary-app) | [Dictonary App](./src/app/(category)/javascript/(projects)/dictonary-app) | + +--- + +#### :zap: Row 9 + +| | | | +| :--: | :--: | :--: | +| [Drag And Drop](./src/app/(category)/javascript/(projects)/drag-and-drop) | [Electronic Drum Kit](./src/app/(category)/javascript/(projects)/electronic-drum-kit) | [Email Subscription Form With Google Sheet](./src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet) | + +--- + +#### :zap: Row 10 + +| | | | +| :--: | :--: | :--: | +| [Emoji Maker](./src/app/(category)/javascript/(projects)/emoji-maker) | [Expense Splitter Website](./src/app/(category)/javascript/(projects)/expense-splitter-website) | [Expense Tracker](./src/app/(category)/javascript/(projects)/expense-tracker) | + +--- + +#### :zap: Row 11 + +| | | | +| :--: | :--: | :--: | +| [Fitness Website](./src/app/(category)/javascript/(projects)/fitness-website) | [Food Recipe Finder](./src/app/(category)/javascript/(projects)/food-recipe-finder) | [Gallery](./src/app/(category)/javascript/(projects)/gallery) | + +--- + +#### :zap: Row 12 + +| | | | +| :--: | :--: | :--: | +| [Garden Planning Website](./src/app/(category)/javascript/(projects)/garden-planning-website) | [Gasguys Homepage Clone](./src/app/(category)/javascript/(projects)/gasguys-homepage-clone) | [Github Profile Viewer](./src/app/(category)/javascript/(projects)/github-profile-viewer) | + +--- + +#### :zap: Row 13 + +| | | | +| :--: | :--: | :--: | +| [Gravity Drops](./src/app/(category)/javascript/(projects)/gravity-drops) | [Hackathon Tracker](./src/app/(category)/javascript/(projects)/hackathon-tracker) | [Hex Color Code Generator](./src/app/(category)/javascript/(projects)/hex-color-code-generator) | + +--- + +#### :zap: Row 14 + +| | | | +| :--: | :--: | :--: | +| [Image Search Engine](./src/app/(category)/javascript/(projects)/image-search-engine) | [Interactive Drawing Website](./src/app/(category)/javascript/(projects)/interactive-drawing-website) | [Interactive Periodic Table](./src/app/(category)/javascript/(projects)/interactive-periodic-table) | + +--- + +#### :zap: Row 15 + +| | | | +| :--: | :--: | :--: | +| [Interval Timer](./src/app/(category)/javascript/(projects)/interval-timer) | [Isogram Checker](./src/app/(category)/javascript/(projects)/isogram-checker) | [Isomorphic Strings Checker](./src/app/(category)/javascript/(projects)/isomorphic-strings-checker) | + +--- + +#### :zap: Row 16 + +| | | | +| :--: | :--: | :--: | +| [Joke Telling Website](./src/app/(category)/javascript/(projects)/joke-telling-website) | [Kanban Board](./src/app/(category)/javascript/(projects)/kanban-board) | [Language Learning Website](./src/app/(category)/javascript/(projects)/language-learning-website) | + +--- + +#### :zap: Row 17 + +| | | | +| :--: | :--: | :--: | +| [Language Translator](./src/app/(category)/javascript/(projects)/language-translator) | [Leap Year Checker](./src/app/(category)/javascript/(projects)/leap-year-checker) | [Markdown Previewer](./src/app/(category)/javascript/(projects)/markdown-previewer) | + +--- + +#### :zap: Row 18 + +| | | | +| :--: | :--: | :--: | +| [Martian Imagery](./src/app/(category)/javascript/(projects)/martian-imagery) | [Meme Creator](./src/app/(category)/javascript/(projects)/meme-creator) | [Meme Generator](./src/app/(category)/javascript/(projects)/meme-generator) | + +--- + +#### :zap: Row 19 + +| | | | +| :--: | :--: | :--: | +| [Moon Phase Visibility](./src/app/(category)/javascript/(projects)/moon-phase-visibility) | [Morse Code Convertor](./src/app/(category)/javascript/(projects)/morse-code-convertor) | [Movie App](./src/app/(category)/javascript/(projects)/movie-app) | + +--- + +#### :zap: Row 20 + +| | | | +| :--: | :--: | :--: | +| [Movie Finder](./src/app/(category)/javascript/(projects)/movie-finder) | [N Queen Visualizer](./src/app/(category)/javascript/(projects)/n-queen-visualizer) | [Number To Words Convertor](./src/app/(category)/javascript/(projects)/number-to-words-convertor) | + +--- + +#### :zap: Row 21 + +| | | | +| :--: | :--: | :--: | +| [Paint App](./src/app/(category)/javascript/(projects)/paint-app) | [Palindrome Checker](./src/app/(category)/javascript/(projects)/palindrome-checker) | [Pangram Checker](./src/app/(category)/javascript/(projects)/pangram-checker) | + +--- + +#### :zap: Row 22 + +| | | | +| :--: | :--: | :--: | +| [Password Generator](./src/app/(category)/javascript/(projects)/password-generator) | [Password Manager](./src/app/(category)/javascript/(projects)/password-manager) | [Password Strength Checker](./src/app/(category)/javascript/(projects)/password-strength-checker) | + +--- + +#### :zap: Row 23 + +| | | | +| :--: | :--: | :--: | +| [Paytm Clone](./src/app/(category)/javascript/(projects)/paytm-clone) | [Perfect Number Checker](./src/app/(category)/javascript/(projects)/perfect-number-checker) | [Personal Portfolio](./src/app/(category)/javascript/(projects)/personal-portfolio) | + +--- + +#### :zap: Row 24 + +| | | | +| :--: | :--: | :--: | +| [Prime Number Checker](./src/app/(category)/javascript/(projects)/prime-number-checker) | [Qr Code Generator](./src/app/(category)/javascript/(projects)/qr-code-generator) | [Quote Generator](./src/app/(category)/javascript/(projects)/quote-generator) | + +--- + +#### :zap: Row 25 + +| | | | +| :--: | :--: | :--: | +| [Random Advice Generator](./src/app/(category)/javascript/(projects)/random-advice-generator) | [Random Name Generator](./src/app/(category)/javascript/(projects)/random-name-generator) | [Random Picker](./src/app/(category)/javascript/(projects)/random-picker) | + +--- + +#### :zap: Row 26 + +| | | | +| :--: | :--: | :--: | +| [Recipe Finder](./src/app/(category)/javascript/(projects)/recipe-finder) | [Recipe Hunter](./src/app/(category)/javascript/(projects)/recipe-hunter) | [Resume Builder](./src/app/(category)/javascript/(projects)/resume-builder) | + +--- + +#### :zap: Row 27 + +| | | | +| :--: | :--: | :--: | +| [Rgb Color Slider](./src/app/(category)/javascript/(projects)/rgb-color-slider) | [Search From Here](./src/app/(category)/javascript/(projects)/search-from-here) | [Social Media Analytics](./src/app/(category)/javascript/(projects)/social-media-analytics) | + +--- + +#### :zap: Row 28 + +| | | | +| :--: | :--: | :--: | +| [Sort Visualizer](./src/app/(category)/javascript/(projects)/sort-visualizer) | [Star Rating Component](./src/app/(category)/javascript/(projects)/star-rating-component) | [Stop Watch](./src/app/(category)/javascript/(projects)/stop-watch) | + +--- + +#### :zap: Row 29 + +| | | | +| :--: | :--: | :--: | +| [Stopwatch](./src/app/(category)/javascript/(projects)/stopwatch) | [Subsequence Checker](./src/app/(category)/javascript/(projects)/subsequence-checker) | [Substring Checker](./src/app/(category)/javascript/(projects)/substring-checker) | + +--- + +#### :zap: Row 30 + +| | | | +| :--: | :--: | :--: | +| [Sudoku Game](./src/app/(category)/javascript/(projects)/sudoku-game) | [Sudoku Solver](./src/app/(category)/javascript/(projects)/sudoku-solver) | [Synonym Searcher](./src/app/(category)/javascript/(projects)/synonym-searcher) | + +--- + +#### :zap: Row 31 + +| | | | +| :--: | :--: | :--: | +| [Task Reminder](./src/app/(category)/javascript/(projects)/task-reminder) | [Tesla Website Clone](./src/app/(category)/javascript/(projects)/tesla-website-clone) | [Text Summarizer](./src/app/(category)/javascript/(projects)/text-summarizer) | + +--- + +#### :zap: Row 32 + +| | | | +| :--: | :--: | :--: | +| [Text To Image Generator](./src/app/(category)/javascript/(projects)/text-to-image-generator) | [Text To Voice](./src/app/(category)/javascript/(projects)/text-to-voice) | [Text Translator](./src/app/(category)/javascript/(projects)/text-translator) | + +--- + +#### :zap: Row 33 + +| | | | +| :--: | :--: | :--: | +| [Theme Cake Order Form](./src/app/(category)/javascript/(projects)/theme-cake-order-form) | [Time Capsule Center](./src/app/(category)/javascript/(projects)/time-capsule-center) | [Time Watcher](./src/app/(category)/javascript/(projects)/time-watcher) | + +--- + +#### :zap: Row 34 + +| | | | +| :--: | :--: | :--: | +| [To Do List](./src/app/(category)/javascript/(projects)/to-do-list) | [Travel App](./src/app/(category)/javascript/(projects)/travel-app) | [Travel Journal](./src/app/(category)/javascript/(projects)/travel-journal) | + +--- + +#### :zap: Row 35 + +| | | | +| :--: | :--: | :--: | +| [Typing Test](./src/app/(category)/javascript/(projects)/typing-test) | [Valid Parenthesis Checker](./src/app/(category)/javascript/(projects)/valid-parenthesis-checker) | [Virtual Piano](./src/app/(category)/javascript/(projects)/virtual-piano) | + +--- + +#### :zap: Row 36 + +| | | | +| :--: | :--: | :--: | +| [Vocabulary Builder](./src/app/(category)/javascript/(projects)/vocabulary-builder) | [Vowel Counter](./src/app/(category)/javascript/(projects)/vowel-counter) | [Weather App](./src/app/(category)/javascript/(projects)/weather-app) | + +--- + +#### :zap: Row 37 + +| | | | +| :--: | :--: | :--: | +| [Wheel Selector](./src/app/(category)/javascript/(projects)/wheel-selector) | [Wikipedia Clone](./src/app/(category)/javascript/(projects)/wikipedia-clone) | [Word Counter](./src/app/(category)/javascript/(projects)/word-counter) | + +--- + +#### :zap: Row 38 + +| | | | +| :--: | :--: | :--: | +| [World Clock](./src/app/(category)/javascript/(projects)/world-clock) | [World Population](./src/app/(category)/javascript/(projects)/world-population) | [Youtube Clone](./src/app/(category)/javascript/(projects)/youtube-clone) | + +--- + +#### :zap: Row 39 + +| | | | +| :--: | :--: | :--: | +| [Zomato Clone](./src/app/(category)/javascript/(projects)/zomato-clone) | | | + +
+ +
+ +--- + + + +
+ + +[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=60&pause=1500&color=000000¢er=true&vCenter=true&width=2000&height=120&lines=NEXT+JS+PROJECTS)](https://git.io/typing-svg) + + +
+ +#### :zap: Row 1 + +| | | | +| :--: | :--: | :--: | +| [Attendance Tracking App](./src/app/(category)/next/(projects)/attendance-tracking-app) | [Breaking News App](./src/app/(category)/next/(projects)/breaking-news-app) | [Gen Ai Quiz Application](./src/app/(category)/next/(projects)/gen-ai-quiz-application) | + +--- + +#### :zap: Row 2 + +| | | | +| :--: | :--: | :--: | +| [Quiz App](./src/app/(category)/next/(projects)/quiz-app) | [Url Shortener](./src/app/(category)/next/(projects)/url-shortener) | [Video Call App](./src/app/(category)/next/(projects)/video-call-app) | + +--- + +#### :zap: Row 3 + +| | | +| :--: | :--: | +| [Voice Call App](./src/app/(category)/next/(projects)/voice-call-app) | [Weather Website](./src/app/(category)/next/(projects)/weather-website) | + +
+ +
+ +--- + + + +
+ + +[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=60&pause=1500&color=339933¢er=true&vCenter=true&width=2000&height=120&lines=NODE+JS+PROJECTS)](https://git.io/typing-svg) + + +
+ +#### :zap: Row 1 + +| | | | +| :--: | :--: | :--: | +| [Blog Platform](./src/app/(category)/node/(projects)/blog-platform) | [Cooking Blog](./src/app/(category)/node/(projects)/cooking-blog) | [Crud Operations](./src/app/(category)/node/(projects)/crud-operations) | + +--- + +#### :zap: Row 2 + +| | | | +| :--: | :--: | :--: | +| [Docx To Pdf Converter](./src/app/(category)/node/(projects)/docx-to-pdf-converter) | [E Commerce](./src/app/(category)/node/(projects)/e-commerce) | [File Upload And Download System](./src/app/(category)/node/(projects)/file-upload-and-download-system) | + +--- + +#### :zap: Row 3 + +| | | | +| :--: | :--: | :--: | +| [Gmail Nodemailer](./src/app/(category)/node/(projects)/gmail-nodemailer) | [Headline Hub](./src/app/(category)/node/(projects)/headline-hub) | [Infinite Scrolling](./src/app/(category)/node/(projects)/infinite-scrolling) | + +--- + +#### :zap: Row 4 + +| | | | +| :--: | :--: | :--: | +| [Jwt Authenticator With Roles](./src/app/(category)/node/(projects)/jwt-authenticator-with-roles) | [Url Scraper](./src/app/(category)/node/(projects)/url-scraper) | [Url Shortener](./src/app/(category)/node/(projects)/url-shortener) | + +--- + +#### :zap: Row 5 + +| | | | +| :--: | :--: | :--: | +| [User Registration System](./src/app/(category)/node/(projects)/user-registration-system) | [Youtube Video Downloader](./src/app/(category)/node/(projects)/youtube-video-downloader) | | + +
+ +
+ +--- + + + +
+ + +[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=60&pause=1500&color=61DAFB¢er=true&vCenter=true&width=2000&height=120&lines=REACT+JS+PROJECTS)](https://git.io/typing-svg) + + +
+ +#### :zap: Row 1 + +| | | | +| :--: | :--: | :--: | +| [Cakes N Cookies](./src/app/(category)/react/(projects)/cakes-n-cookies) | [Chat Application](./src/app/(category)/react/(projects)/chat-application) | [Chat Bot](./src/app/(category)/react/(projects)/chat-bot) | + +--- + +#### :zap: Row 2 + +| | | | +| :--: | :--: | :--: | +| [Code Editor](./src/app/(category)/react/(projects)/code-editor) | [Cryptocurrency Finder](./src/app/(category)/react/(projects)/cryptocurrency-finder) | [Currency Converter](./src/app/(category)/react/(projects)/currency-converter) | + +--- + +#### :zap: Row 3 + +| | | | +| :--: | :--: | :--: | +| [Food Recipe App](./src/app/(category)/react/(projects)/food-recipe-app) | [Form Validation](./src/app/(category)/react/(projects)/form-validation) | [Github Profile Viewer](./src/app/(category)/react/(projects)/github-profile-viewer) | + +--- + +#### :zap: Row 4 + +| | | | +| :--: | :--: | :--: | +| [Image Carousel](./src/app/(category)/react/(projects)/image-carousel) | [Interview Report](./src/app/(category)/react/(projects)/interview-report) | [Ip Address Tracker](./src/app/(category)/react/(projects)/ip-address-tracker) | + +--- + +#### :zap: Row 5 + +| | | | +| :--: | :--: | :--: | +| [Job Portal](./src/app/(category)/react/(projects)/job-portal) | [Motivation For The Day](./src/app/(category)/react/(projects)/motivation-for-the-day) | [Movie Land](./src/app/(category)/react/(projects)/movie-land) | + +--- + +#### :zap: Row 6 + +| | | | +| :--: | :--: | :--: | +| [Myntra Clone](./src/app/(category)/react/(projects)/myntra-clone) | [Netflix Clone](./src/app/(category)/react/(projects)/netflix-clone) | [Notes App](./src/app/(category)/react/(projects)/notes-app) | + +--- + +#### :zap: Row 7 + +| | | | +| :--: | :--: | :--: | +| [Password Generator](./src/app/(category)/react/(projects)/password-generator) | [Qr Code Generator](./src/app/(category)/react/(projects)/qr-code-generator) | [Quiz App](./src/app/(category)/react/(projects)/quiz-app) | + +--- + +#### :zap: Row 8 + +| | | | +| :--: | :--: | :--: | +| [Random Bible Verse](./src/app/(category)/react/(projects)/random-bible-verse) | [Shopping Cart](./src/app/(category)/react/(projects)/shopping-cart) | [Solar System Model](./src/app/(category)/react/(projects)/solar-system-model) | + +--- + +#### :zap: Row 9 + +| | | | +| :--: | :--: | :--: | +| [Sudoku Solver](./src/app/(category)/react/(projects)/sudoku-solver) | [Swiggy Clone](./src/app/(category)/react/(projects)/swiggy-clone) | [Tesla Clone](./src/app/(category)/react/(projects)/tesla-clone) | + +--- + +#### :zap: Row 10 + +| | | | +| :--: | :--: | :--: | +| [Text Editor](./src/app/(category)/react/(projects)/text-editor) | [To Do List](./src/app/(category)/react/(projects)/to-do-list) | [Travel Website](./src/app/(category)/react/(projects)/travel-website) | + +--- + +#### :zap: Row 11 + +| | | | +| :--: | :--: | :--: | +| [Tspot Travel App](./src/app/(category)/react/(projects)/tspot-travel-app) | [Tutoring Website](./src/app/(category)/react/(projects)/tutoring-website) | [Typing Speed Tracker](./src/app/(category)/react/(projects)/typing-speed-tracker) | + +--- + +#### :zap: Row 12 + +| | | | +| :--: | :--: | :--: | +| [Video Hub](./src/app/(category)/react/(projects)/video-hub) | [Weather App](./src/app/(category)/react/(projects)/weather-app) | [Youtube Clone](./src/app/(category)/react/(projects)/youtube-clone) | + +
+ +
+ +--- + + + +
+ + +[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=60&pause=1500&color=3178C6¢er=true&vCenter=true&width=2000&height=120&lines=TYPESCRIPT+PROJECTS)](https://git.io/typing-svg) + + +
+ +#### :zap: Row 1 + +| | | | +| :--: | :--: | :--: | +| [Quiz App](./src/app/(category)/typescript/(projects)/quiz-app) | [To Do List App](./src/app/(category)/typescript/(projects)/to-do-list-app) | | + +
+ +
+ +--- + + + +
+ + +[![Typing SVG](https://readme-typing-svg.demolab.com?font=Comfortaa&size=60&pause=1500&color=4FC08D¢er=true&vCenter=true&width=2000&height=120&lines=VUE+JS+PROJECTS)](https://git.io/typing-svg) + + +
+ +#### :zap: Row 1 + +| | | | +| :--: | :--: | :--: | +| [Expense Tracker](./src/app/(category)/vue/(projects)/expense-tracker) | [Google Keep](./src/app/(category)/vue/(projects)/google-keep) | [Markdown Previewer](./src/app/(category)/vue/(projects)/markdown-previewer) | + +--- + +#### :zap: Row 2 + +| | | | +| :--: | :--: | :--: | +| [Quote Generator](./src/app/(category)/vue/(projects)/quote-generator) | | | + +
+ +
+ +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + +
+

Show some  ❤️  by  🌟  this repository!

+
+ + diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/README.md b/src/app/(category)/angular/(projects)/contact-manager/README.md similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/README.md rename to src/app/(category)/angular/(projects)/contact-manager/README.md diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/angular.json b/src/app/(category)/angular/(projects)/contact-manager/angular.json similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/angular.json rename to src/app/(category)/angular/(projects)/contact-manager/angular.json index 8e210100..0db83cb8 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/angular.json +++ b/src/app/(category)/angular/(projects)/contact-manager/angular.json @@ -1,97 +1,97 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "contact-manager": { - "projectType": "application", - "schematics": {}, - "root": "", - "sourceRoot": "src", - "prefix": "app", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:application", - "options": { - "outputPath": "dist/contact-manager", - "index": "src/index.html", - "browser": "src/main.ts", - "polyfills": [ - "zone.js" - ], - "tsConfig": "tsconfig.app.json", - "assets": [ - { - "glob": "**/*", - "input": "public" - } - ], - "styles": [ - "src/styles.css", - "node_modules/ngx-toastr/toastr.css" - ], - "scripts": [] - }, - "configurations": { - "production": { - "budgets": [ - { - "type": "initial", - "maximumWarning": "500kB", - "maximumError": "1MB" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "2kB", - "maximumError": "4kB" - } - ], - "outputHashing": "all" - }, - "development": { - "optimization": false, - "extractLicenses": false, - "sourceMap": true - } - }, - "defaultConfiguration": "production" - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "configurations": { - "production": { - "buildTarget": "contact-manager:build:production" - }, - "development": { - "buildTarget": "contact-manager:build:development" - } - }, - "defaultConfiguration": "development" - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n" - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "polyfills": [ - "zone.js", - "zone.js/testing" - ], - "tsConfig": "tsconfig.spec.json", - "assets": [ - { - "glob": "**/*", - "input": "public" - } - ], - "styles": [ - "src/styles.css" - ], - "scripts": [] - } - } - } - } - } -} +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "contact-manager": { + "projectType": "application", + "schematics": {}, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/contact-manager", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "src/styles.css", + "node_modules/ngx-toastr/toastr.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kB", + "maximumError": "1MB" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kB", + "maximumError": "4kB" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "contact-manager:build:production" + }, + "development": { + "buildTarget": "contact-manager:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "src/styles.css" + ], + "scripts": [] + } + } + } + } + } +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/db.json b/src/app/(category)/angular/(projects)/contact-manager/db.json similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/db.json rename to src/app/(category)/angular/(projects)/contact-manager/db.json diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/images/image01.png b/src/app/(category)/angular/(projects)/contact-manager/images/image01.png similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/images/image01.png rename to src/app/(category)/angular/(projects)/contact-manager/images/image01.png diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/images/image02.png b/src/app/(category)/angular/(projects)/contact-manager/images/image02.png similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/images/image02.png rename to src/app/(category)/angular/(projects)/contact-manager/images/image02.png diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/images/image03.png b/src/app/(category)/angular/(projects)/contact-manager/images/image03.png similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/images/image03.png rename to src/app/(category)/angular/(projects)/contact-manager/images/image03.png diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/images/image04.png b/src/app/(category)/angular/(projects)/contact-manager/images/image04.png similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/images/image04.png rename to src/app/(category)/angular/(projects)/contact-manager/images/image04.png diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/images/image05.png b/src/app/(category)/angular/(projects)/contact-manager/images/image05.png similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/images/image05.png rename to src/app/(category)/angular/(projects)/contact-manager/images/image05.png diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/package-lock.json b/src/app/(category)/angular/(projects)/contact-manager/package-lock.json similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/package-lock.json rename to src/app/(category)/angular/(projects)/contact-manager/package-lock.json diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/package.json b/src/app/(category)/angular/(projects)/contact-manager/package.json similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/package.json rename to src/app/(category)/angular/(projects)/contact-manager/package.json index 1e6c10b3..30c49740 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/package.json +++ b/src/app/(category)/angular/(projects)/contact-manager/package.json @@ -1,43 +1,43 @@ -{ - "name": "contact-manager", - "version": "0.0.0", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "watch": "ng build --watch --configuration development", - "test": "ng test" - }, - "private": true, - "dependencies": { - "@angular/animations": "^18.1.0", - "@angular/common": "^18.1.0", - "@angular/compiler": "^18.1.0", - "@angular/core": "^18.1.0", - "@angular/forms": "^18.1.0", - "@angular/platform-browser": "^18.1.0", - "@angular/platform-browser-dynamic": "^18.1.0", - "@angular/router": "^18.1.0", - "ngx-toastr": "^19.0.0", - "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.14.3" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^18.1.3", - "@angular/cli": "^18.1.3", - "@angular/compiler-cli": "^18.1.0", - "@types/jasmine": "~5.1.0", - "autoprefixer": "^10.4.19", - "jasmine-core": "~5.1.0", - "json-server": "^1.0.0-beta.1", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.1.0", - "postcss": "^8.4.40", - "tailwindcss": "^3.4.7", - "typescript": "~5.5.2" - } -} +{ + "name": "contact-manager", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^18.1.0", + "@angular/common": "^18.1.0", + "@angular/compiler": "^18.1.0", + "@angular/core": "^18.1.0", + "@angular/forms": "^18.1.0", + "@angular/platform-browser": "^18.1.0", + "@angular/platform-browser-dynamic": "^18.1.0", + "@angular/router": "^18.1.0", + "ngx-toastr": "^19.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.3" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^18.1.3", + "@angular/cli": "^18.1.3", + "@angular/compiler-cli": "^18.1.0", + "@types/jasmine": "~5.1.0", + "autoprefixer": "^10.4.19", + "jasmine-core": "~5.1.0", + "json-server": "^1.0.0-beta.1", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "postcss": "^8.4.40", + "tailwindcss": "^3.4.7", + "typescript": "~5.5.2" + } +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/screenshot.webp b/src/app/(category)/angular/(projects)/contact-manager/screenshot.webp similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/screenshot.webp rename to src/app/(category)/angular/(projects)/contact-manager/screenshot.webp diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.css b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.css similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.css rename to src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.css diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.html b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.html similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.html rename to src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.html index af15ba08..549f77d2 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.html +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.html @@ -1,27 +1,27 @@ - - -
-
- - - - -
- - -
- -
-
-
+ + +
+
+ + + + +
+ + +
+ +
+
+
diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.spec.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.spec.ts similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.spec.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.spec.ts index dba54230..dadc5e2e 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.spec.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.spec.ts @@ -1,29 +1,29 @@ -import { TestBed } from '@angular/core/testing'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [AppComponent], - }).compileComponents(); - }); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); - - it(`should have the 'contact-manager' title`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual('contact-manager'); - }); - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('h1')?.textContent).toContain('Hello, contact-manager'); - }); -}); +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [AppComponent], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have the 'contact-manager' title`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('contact-manager'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('h1')?.textContent).toContain('Hello, contact-manager'); + }); +}); diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.ts index 51ab3598..56ef1e83 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.component.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.component.ts @@ -1,21 +1,21 @@ -import { Component } from "@angular/core"; -import { RouterOutlet } from "@angular/router"; -import { HeaderComponent } from "./components/header/header.component"; -import { ContactListComponent } from "./components/contact-list/contact-list.component"; - -@Component({ - selector: "app-root", - standalone: true, - imports: [RouterOutlet, HeaderComponent, ContactListComponent], - templateUrl: "./app.component.html", - styleUrl: "./app.component.css", -}) -export class AppComponent { - title = "contact-manager"; - - searchQuery: string = ""; - - onSearchChanged(value: string): void { - this.searchQuery = value; - } -} +import { Component } from "@angular/core"; +import { RouterOutlet } from "@angular/router"; +import { HeaderComponent } from "./components/header/header.component"; +import { ContactListComponent } from "./components/contact-list/contact-list.component"; + +@Component({ + selector: "app-root", + standalone: true, + imports: [RouterOutlet, HeaderComponent, ContactListComponent], + templateUrl: "./app.component.html", + styleUrl: "./app.component.css", +}) +export class AppComponent { + title = "contact-manager"; + + searchQuery: string = ""; + + onSearchChanged(value: string): void { + this.searchQuery = value; + } +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.config.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.config.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.config.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/app.config.ts index 360adf37..7ea40e06 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.config.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.config.ts @@ -1,29 +1,29 @@ -import { ApplicationConfig, provideZoneChangeDetection } from "@angular/core"; -import { provideRouter } from "@angular/router"; -import { importProvidersFrom } from "@angular/core"; -import { HttpClientModule } from "@angular/common/http"; - -import { routes } from "./app.routes"; -import { provideAnimations } from "@angular/platform-browser/animations"; -import { provideToastr } from "ngx-toastr"; - -export const appConfig: ApplicationConfig = { - providers: [ - provideZoneChangeDetection({ eventCoalescing: true }), - provideRouter(routes), - importProvidersFrom(HttpClientModule), - provideAnimations(), - // Provide toastr and its configs - provideToastr({ - maxOpened: 2, - autoDismiss: true, - timeOut: 5000, - closeButton: true, - extendedTimeOut: 1000, - progressBar: true, - progressAnimation: "increasing", - positionClass: "toast-top-center", - newestOnTop: true, - }), - ], -}; +import { ApplicationConfig, provideZoneChangeDetection } from "@angular/core"; +import { provideRouter } from "@angular/router"; +import { importProvidersFrom } from "@angular/core"; +import { HttpClientModule } from "@angular/common/http"; + +import { routes } from "./app.routes"; +import { provideAnimations } from "@angular/platform-browser/animations"; +import { provideToastr } from "ngx-toastr"; + +export const appConfig: ApplicationConfig = { + providers: [ + provideZoneChangeDetection({ eventCoalescing: true }), + provideRouter(routes), + importProvidersFrom(HttpClientModule), + provideAnimations(), + // Provide toastr and its configs + provideToastr({ + maxOpened: 2, + autoDismiss: true, + timeOut: 5000, + closeButton: true, + extendedTimeOut: 1000, + progressBar: true, + progressAnimation: "increasing", + positionClass: "toast-top-center", + newestOnTop: true, + }), + ], +}; diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.routes.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.routes.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.routes.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/app.routes.ts index 4f3af40e..dc39edb5 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/app.routes.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/app.routes.ts @@ -1,3 +1,3 @@ -import { Routes } from '@angular/router'; - -export const routes: Routes = []; +import { Routes } from '@angular/router'; + +export const routes: Routes = []; diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.css b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.css similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.css rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.css diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.html b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.html similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.html rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.html index a64fbb46..83e88476 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.html +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.html @@ -1,71 +1,71 @@ -
-
    - -
  • -
    -

    - No Contact found -

    -
    -
  • - - - -
    - -
    - {{ - group.key - }} -
    -
    - -
  • -
    -
    - -
    -
    -

    - {{ contact.name }} -

    -

    - {{ contact.phone }} -

    -
    -
    -

    - {{ contact.email }} -

    -
    -
    - -
    -
    - -
    -
    -
  • -
    -
-
- - +
+
    + +
  • +
    +

    + No Contact found +

    +
    +
  • + + + +
    + +
    + {{ + group.key + }} +
    +
    + +
  • +
    +
    + +
    +
    +

    + {{ contact.name }} +

    +

    + {{ contact.phone }} +

    +
    +
    +

    + {{ contact.email }} +

    +
    +
    + +
    +
    + +
    +
    +
  • +
    +
+
+ + diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.spec.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.spec.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.spec.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.spec.ts index 366b2f80..7399922b 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.spec.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.spec.ts @@ -1,23 +1,23 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ContactListComponent } from './contact-list.component'; - -describe('ContactListComponent', () => { - let component: ContactListComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ContactListComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(ContactListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ContactListComponent } from './contact-list.component'; + +describe('ContactListComponent', () => { + let component: ContactListComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ContactListComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(ContactListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.ts index dceb0d6b..dd98c4f6 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/contact-list/contact-list.component.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/contact-list/contact-list.component.ts @@ -1,104 +1,104 @@ -import { - Component, - Input, - OnChanges, - OnInit, - SimpleChanges, -} from "@angular/core"; -import { ContactService } from "../../services/contact.service"; -import { Contact } from "../../models/contact"; -import { CommonModule } from "@angular/common"; -import { EditContactComponent } from "../edit-contact/edit-contact.component"; -import { ToastrService } from "ngx-toastr"; - -@Component({ - selector: "app-contact-list", - standalone: true, - imports: [CommonModule, EditContactComponent], - templateUrl: "./contact-list.component.html", - styleUrl: "./contact-list.component.css", -}) -export class ContactListComponent implements OnInit, OnChanges { - contacts: Contact[] = []; - editContact: Contact = { id: "", name: "", email: "", phone: "" }; - @Input() searchQuery: string = ""; - filteredContacts: Contact[] = []; - - toggleEditContact(contact: Contact): void { - this.editContact = contact; - console.log("currently the edit contact is: ", this.editContact); - } - - ngOnInit(): void { - this.getAllTasks(); - // Listens to whenever the contacts change - // so as to update the list, by getting the tasks - this.contactService.getModalEvent().subscribe(() => { - this.getAllTasks(); - }); - } - - ngOnChanges(changes: SimpleChanges): void { - if (changes["searchQuery"]) { - this.searchContacts(); - } - } - - constructor( - private contactService: ContactService, - private notificationPopup: ToastrService - ) {} - - groupedContacts = new Map(); - - getAllTasks(): void { - this.contactService.getAllContacts().subscribe({ - next: (response) => { - this.contacts = response.sort((a, b) => a.name.localeCompare(b.name)); - this.filteredContacts = this.contacts; - this.groupContacts(); - }, - error: (err) => { - this.notificationPopup.error("An Error Occured", "Error!"); - }, - }); - } - - groupContacts(): void { - this.groupedContacts.clear(); - this.filteredContacts.forEach((contact) => { - const firstLetter = contact.name.charAt(0).toUpperCase(); - if (!this.groupedContacts.has(firstLetter)) { - this.groupedContacts.set(firstLetter, []); - } - this.groupedContacts.get(firstLetter)?.push(contact); - }); - } - - deleteContact(contact: Contact): void { - this.contactService.deleteContact(contact).subscribe({ - next: (response) => { - this.notificationPopup.success( - "Contact deleted successfully", - "Success!" - ); - this.getAllTasks(); - }, - error: (err) => { - this.notificationPopup.error("An Error Occured", "Error!"); - console.log(err); - }, - }); - } - - searchContacts(): void { - const filtered = this.contacts.filter( - (contact) => - contact.name.toLowerCase().includes(this.searchQuery.toLowerCase()) || - contact.phone.includes(this.searchQuery) - ); - - this.filteredContacts = filtered; - this.groupContacts(); - } -} +import { + Component, + Input, + OnChanges, + OnInit, + SimpleChanges, +} from "@angular/core"; +import { ContactService } from "../../services/contact.service"; +import { Contact } from "../../models/contact"; +import { CommonModule } from "@angular/common"; +import { EditContactComponent } from "../edit-contact/edit-contact.component"; +import { ToastrService } from "ngx-toastr"; + +@Component({ + selector: "app-contact-list", + standalone: true, + imports: [CommonModule, EditContactComponent], + templateUrl: "./contact-list.component.html", + styleUrl: "./contact-list.component.css", +}) +export class ContactListComponent implements OnInit, OnChanges { + contacts: Contact[] = []; + editContact: Contact = { id: "", name: "", email: "", phone: "" }; + @Input() searchQuery: string = ""; + filteredContacts: Contact[] = []; + + toggleEditContact(contact: Contact): void { + this.editContact = contact; + console.log("currently the edit contact is: ", this.editContact); + } + + ngOnInit(): void { + this.getAllTasks(); + // Listens to whenever the contacts change + // so as to update the list, by getting the tasks + this.contactService.getModalEvent().subscribe(() => { + this.getAllTasks(); + }); + } + + ngOnChanges(changes: SimpleChanges): void { + if (changes["searchQuery"]) { + this.searchContacts(); + } + } + + constructor( + private contactService: ContactService, + private notificationPopup: ToastrService + ) {} + + groupedContacts = new Map(); + + getAllTasks(): void { + this.contactService.getAllContacts().subscribe({ + next: (response) => { + this.contacts = response.sort((a, b) => a.name.localeCompare(b.name)); + this.filteredContacts = this.contacts; + this.groupContacts(); + }, + error: (err) => { + this.notificationPopup.error("An Error Occured", "Error!"); + }, + }); + } + + groupContacts(): void { + this.groupedContacts.clear(); + this.filteredContacts.forEach((contact) => { + const firstLetter = contact.name.charAt(0).toUpperCase(); + if (!this.groupedContacts.has(firstLetter)) { + this.groupedContacts.set(firstLetter, []); + } + this.groupedContacts.get(firstLetter)?.push(contact); + }); + } + + deleteContact(contact: Contact): void { + this.contactService.deleteContact(contact).subscribe({ + next: (response) => { + this.notificationPopup.success( + "Contact deleted successfully", + "Success!" + ); + this.getAllTasks(); + }, + error: (err) => { + this.notificationPopup.error("An Error Occured", "Error!"); + console.log(err); + }, + }); + } + + searchContacts(): void { + const filtered = this.contacts.filter( + (contact) => + contact.name.toLowerCase().includes(this.searchQuery.toLowerCase()) || + contact.phone.includes(this.searchQuery) + ); + + this.filteredContacts = filtered; + this.groupContacts(); + } +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.css b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.css similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.css rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.css diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.html b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.html similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.html rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.html index b898aa13..7314d5c1 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.html +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.html @@ -1,92 +1,92 @@ -
-
- - -
-
+
+
+ + +
+
diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.spec.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.spec.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.spec.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.spec.ts index bbf6cc6f..65749f79 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.spec.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.spec.ts @@ -1,23 +1,23 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { EditContactComponent } from './edit-contact.component'; - -describe('EditContactComponent', () => { - let component: EditContactComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [EditContactComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(EditContactComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditContactComponent } from './edit-contact.component'; + +describe('EditContactComponent', () => { + let component: EditContactComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [EditContactComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(EditContactComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.ts index 0aa0bac6..88201bf6 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/edit-contact/edit-contact.component.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/edit-contact/edit-contact.component.ts @@ -1,108 +1,108 @@ -import { - Component, - EventEmitter, - Input, - OnChanges, - Output, - SimpleChanges, -} from "@angular/core"; -import { Contact } from "../../models/contact"; -import { - ReactiveFormsModule, - FormBuilder, - FormGroup, - Validators, -} from "@angular/forms"; -import { ContactService } from "../../services/contact.service"; -import { ToastrService } from "ngx-toastr"; - -@Component({ - selector: "app-edit-contact", - standalone: true, - imports: [ReactiveFormsModule], - templateUrl: "./edit-contact.component.html", - styleUrl: "./edit-contact.component.css", -}) -export class EditContactComponent implements OnChanges { - @Output() toggleTask = new EventEmitter(); - @Input() editContact!: Contact; - contactForm: FormGroup; - errors = { name: "", phone: "", email: "" }; - newContact: Contact = new Contact(); - - constructor( - private fb: FormBuilder, - private contactService: ContactService, - private notificationPopup: ToastrService - ) { - this.contactForm = this.fb.group({ - name: ["", [Validators.required]], - email: ["", [Validators.email]], - phone: ["", [Validators.required]], - }); - console.log(this.editContact); - } - - ngOnChanges(changes: SimpleChanges): void { - if (changes["editContact"]) { - const contact = changes["editContact"].currentValue; - if (contact) { - this.contactForm.patchValue({ - name: contact.name, - email: contact.email, - phone: contact.phone, - }); - } - } - } - - onSubmit(): void { - this.errors = { name: "", phone: "", email: "" }; - if (this.contactForm.valid) { - console.log("Form Submitted:", this.contactForm.value); - this.newContact = this.contactForm.value; - this.newContact.id = this.editContact.id; - console.log(this.newContact); - // Also same here. Addopted the new syntax - // (Current Best Practice) with the use of - // next and error in subscriptions - this.contactService.editContact(this.newContact).subscribe({ - next: (response) => { - // Notify the user about the success - this.notificationPopup.success("Edited Successfully", "Success!"); - // Notify the contact list component - // So as to update the list of contacts - this.contactService.sendModalEvent(); - // Close the modal - this.setTaskNull(); - }, - error: (err) => { - this.notificationPopup.error("An Error Occured", "Error!"); - console.log(err); - }, - }); - } else { - this.notificationPopup.error("The Form provided is invalid", "Error!"); - this.displayFormErrors(); - } - } - - displayFormErrors(): void { - this.errors = { - name: this.contactForm.get("name")?.hasError("required") - ? "Name is required" - : "", - phone: this.contactForm.get("phone")?.hasError("required") - ? "Phone number is required" - : "", - email: this.contactForm.get("email")?.hasError("email") - ? "Invalid email format" - : "", - }; - } - - setTaskNull(): void { - console.log("Going to emit"); - this.toggleTask.emit({ id: "", name: "", email: "", phone: "" }); - } -} +import { + Component, + EventEmitter, + Input, + OnChanges, + Output, + SimpleChanges, +} from "@angular/core"; +import { Contact } from "../../models/contact"; +import { + ReactiveFormsModule, + FormBuilder, + FormGroup, + Validators, +} from "@angular/forms"; +import { ContactService } from "../../services/contact.service"; +import { ToastrService } from "ngx-toastr"; + +@Component({ + selector: "app-edit-contact", + standalone: true, + imports: [ReactiveFormsModule], + templateUrl: "./edit-contact.component.html", + styleUrl: "./edit-contact.component.css", +}) +export class EditContactComponent implements OnChanges { + @Output() toggleTask = new EventEmitter(); + @Input() editContact!: Contact; + contactForm: FormGroup; + errors = { name: "", phone: "", email: "" }; + newContact: Contact = new Contact(); + + constructor( + private fb: FormBuilder, + private contactService: ContactService, + private notificationPopup: ToastrService + ) { + this.contactForm = this.fb.group({ + name: ["", [Validators.required]], + email: ["", [Validators.email]], + phone: ["", [Validators.required]], + }); + console.log(this.editContact); + } + + ngOnChanges(changes: SimpleChanges): void { + if (changes["editContact"]) { + const contact = changes["editContact"].currentValue; + if (contact) { + this.contactForm.patchValue({ + name: contact.name, + email: contact.email, + phone: contact.phone, + }); + } + } + } + + onSubmit(): void { + this.errors = { name: "", phone: "", email: "" }; + if (this.contactForm.valid) { + console.log("Form Submitted:", this.contactForm.value); + this.newContact = this.contactForm.value; + this.newContact.id = this.editContact.id; + console.log(this.newContact); + // Also same here. Addopted the new syntax + // (Current Best Practice) with the use of + // next and error in subscriptions + this.contactService.editContact(this.newContact).subscribe({ + next: (response) => { + // Notify the user about the success + this.notificationPopup.success("Edited Successfully", "Success!"); + // Notify the contact list component + // So as to update the list of contacts + this.contactService.sendModalEvent(); + // Close the modal + this.setTaskNull(); + }, + error: (err) => { + this.notificationPopup.error("An Error Occured", "Error!"); + console.log(err); + }, + }); + } else { + this.notificationPopup.error("The Form provided is invalid", "Error!"); + this.displayFormErrors(); + } + } + + displayFormErrors(): void { + this.errors = { + name: this.contactForm.get("name")?.hasError("required") + ? "Name is required" + : "", + phone: this.contactForm.get("phone")?.hasError("required") + ? "Phone number is required" + : "", + email: this.contactForm.get("email")?.hasError("email") + ? "Invalid email format" + : "", + }; + } + + setTaskNull(): void { + console.log("Going to emit"); + this.toggleTask.emit({ id: "", name: "", email: "", phone: "" }); + } +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.css b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.css similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.css rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.css diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.html b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.html similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.html rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.html index e2f1b350..a083b4ea 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.html +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.html @@ -1,31 +1,31 @@ -
-

- Contact Manager -

-
- - - - -
-
- +
+

+ Contact Manager +

+
+ + + + +
+
+ diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.spec.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.spec.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.spec.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.spec.ts index 1cb98da0..204ed6e4 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.spec.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.spec.ts @@ -1,23 +1,23 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { HeaderComponent } from './header.component'; - -describe('HeaderComponent', () => { - let component: HeaderComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [HeaderComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(HeaderComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HeaderComponent } from './header.component'; + +describe('HeaderComponent', () => { + let component: HeaderComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [HeaderComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(HeaderComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.ts index c83a53b3..c205664d 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/header/header.component.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/header/header.component.ts @@ -1,31 +1,31 @@ -import { Component, EventEmitter, Output } from "@angular/core"; -import { NewContactComponent } from "../new-contact/new-contact.component"; -import { CommonModule } from "@angular/common"; -import { FormsModule } from "@angular/forms"; - -@Component({ - selector: "app-header", - standalone: true, - imports: [NewContactComponent, CommonModule, FormsModule], - templateUrl: "./header.component.html", - styleUrl: "./header.component.css", -}) -export class HeaderComponent { - isNewContactModalOpen: boolean = false; - @Output() searchChanged = new EventEmitter(); - @Output() newContactAdded = new EventEmitter(); - searchQuery: string = ""; - - toggleNewContactModal(toggle: boolean): void { - this.isNewContactModalOpen = toggle; - console.log("currently the modal is: ", this.isNewContactModalOpen); - } - - onSearchChange(): void { - this.searchChanged.emit(this.searchQuery); - } - - onAddNewContact(): void { - this.newContactAdded.emit(); - } -} +import { Component, EventEmitter, Output } from "@angular/core"; +import { NewContactComponent } from "../new-contact/new-contact.component"; +import { CommonModule } from "@angular/common"; +import { FormsModule } from "@angular/forms"; + +@Component({ + selector: "app-header", + standalone: true, + imports: [NewContactComponent, CommonModule, FormsModule], + templateUrl: "./header.component.html", + styleUrl: "./header.component.css", +}) +export class HeaderComponent { + isNewContactModalOpen: boolean = false; + @Output() searchChanged = new EventEmitter(); + @Output() newContactAdded = new EventEmitter(); + searchQuery: string = ""; + + toggleNewContactModal(toggle: boolean): void { + this.isNewContactModalOpen = toggle; + console.log("currently the modal is: ", this.isNewContactModalOpen); + } + + onSearchChange(): void { + this.searchChanged.emit(this.searchQuery); + } + + onAddNewContact(): void { + this.newContactAdded.emit(); + } +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.css b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.css similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.css rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.css diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.html b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.html similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.html rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.html index 783511e2..3dc834b6 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.html +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.html @@ -1,92 +1,92 @@ -
-
- - -
-
+
+
+ + +
+
diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.spec.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.spec.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.spec.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.spec.ts index a56eb18b..a6b88212 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.spec.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.spec.ts @@ -1,23 +1,23 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { NewContactComponent } from './new-contact.component'; - -describe('NewContactComponent', () => { - let component: NewContactComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [NewContactComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(NewContactComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NewContactComponent } from './new-contact.component'; + +describe('NewContactComponent', () => { + let component: NewContactComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [NewContactComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(NewContactComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.ts similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.ts index ea88f672..8ba1cc6f 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/components/new-contact/new-contact.component.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/components/new-contact/new-contact.component.ts @@ -1,88 +1,88 @@ -import { Component, EventEmitter, Output } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { - ReactiveFormsModule, - FormBuilder, - FormGroup, - Validators, -} from "@angular/forms"; -import { Contact } from "../../models/contact"; -import { ContactService } from "../../services/contact.service"; -import { ToastrService } from "ngx-toastr"; - -@Component({ - selector: "app-new-contact", - standalone: true, - imports: [CommonModule, ReactiveFormsModule], - templateUrl: "./new-contact.component.html", - styleUrl: "./new-contact.component.css", -}) -export class NewContactComponent { - @Output() closeNewContactModal = new EventEmitter(); - - contactForm: FormGroup; - errors = { name: "", phone: "", email: "" }; - newContact: Contact = new Contact(); - - constructor( - private fb: FormBuilder, - private contactService: ContactService, - private notificationPopup: ToastrService - ) { - this.contactForm = this.fb.group({ - name: ["", [Validators.required]], - email: ["", [Validators.email]], - phone: ["", [Validators.required]], - }); - } - - onSubmit(): void { - this.errors = { name: "", phone: "", email: "" }; - if (this.contactForm.valid) { - console.log("Form Submitted:", this.contactForm.value); - this.newContact = this.contactForm.value; - // Addopted the new syntax (Current Best Practice) with the use of - // next and error in subscriptions - this.contactService.addContact(this.newContact).subscribe({ - next: (response) => { - console.log(response); - // Show a popup to notify the user that it was successfull - this.notificationPopup.success( - "Contact added successfully", - "Success!" - ); - // emits to the modal event in contact service - // to let it know that the list changed - this.contactService.sendModalEvent(); - // THen Close the modal - this.close(); - }, - error: (err) => { - console.log(err); - this.notificationPopup.error("An Error occured", "Error!"); - }, - }); - } else { - this.notificationPopup.error("The form is invalid", "Error!"); - this.displayFormErrors(); - } - } - - displayFormErrors(): void { - this.errors = { - name: this.contactForm.get("name")?.hasError("required") - ? "Name is required" - : "", - phone: this.contactForm.get("phone")?.hasError("required") - ? "Phone number is required" - : "", - email: this.contactForm.get("email")?.hasError("email") - ? "Invalid email format" - : "", - }; - } - - close(): void { - this.closeNewContactModal.emit(false); - } -} +import { Component, EventEmitter, Output } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { + ReactiveFormsModule, + FormBuilder, + FormGroup, + Validators, +} from "@angular/forms"; +import { Contact } from "../../models/contact"; +import { ContactService } from "../../services/contact.service"; +import { ToastrService } from "ngx-toastr"; + +@Component({ + selector: "app-new-contact", + standalone: true, + imports: [CommonModule, ReactiveFormsModule], + templateUrl: "./new-contact.component.html", + styleUrl: "./new-contact.component.css", +}) +export class NewContactComponent { + @Output() closeNewContactModal = new EventEmitter(); + + contactForm: FormGroup; + errors = { name: "", phone: "", email: "" }; + newContact: Contact = new Contact(); + + constructor( + private fb: FormBuilder, + private contactService: ContactService, + private notificationPopup: ToastrService + ) { + this.contactForm = this.fb.group({ + name: ["", [Validators.required]], + email: ["", [Validators.email]], + phone: ["", [Validators.required]], + }); + } + + onSubmit(): void { + this.errors = { name: "", phone: "", email: "" }; + if (this.contactForm.valid) { + console.log("Form Submitted:", this.contactForm.value); + this.newContact = this.contactForm.value; + // Addopted the new syntax (Current Best Practice) with the use of + // next and error in subscriptions + this.contactService.addContact(this.newContact).subscribe({ + next: (response) => { + console.log(response); + // Show a popup to notify the user that it was successfull + this.notificationPopup.success( + "Contact added successfully", + "Success!" + ); + // emits to the modal event in contact service + // to let it know that the list changed + this.contactService.sendModalEvent(); + // THen Close the modal + this.close(); + }, + error: (err) => { + console.log(err); + this.notificationPopup.error("An Error occured", "Error!"); + }, + }); + } else { + this.notificationPopup.error("The form is invalid", "Error!"); + this.displayFormErrors(); + } + } + + displayFormErrors(): void { + this.errors = { + name: this.contactForm.get("name")?.hasError("required") + ? "Name is required" + : "", + phone: this.contactForm.get("phone")?.hasError("required") + ? "Phone number is required" + : "", + email: this.contactForm.get("email")?.hasError("email") + ? "Invalid email format" + : "", + }; + } + + close(): void { + this.closeNewContactModal.emit(false); + } +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/models/contact.spec.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/models/contact.spec.ts similarity index 95% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/models/contact.spec.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/models/contact.spec.ts index 5008ce46..948e63a3 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/models/contact.spec.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/models/contact.spec.ts @@ -1,7 +1,7 @@ -import { Contact } from './contact'; - -describe('Contact', () => { - it('should create an instance', () => { - expect(new Contact()).toBeTruthy(); - }); -}); +import { Contact } from './contact'; + +describe('Contact', () => { + it('should create an instance', () => { + expect(new Contact()).toBeTruthy(); + }); +}); diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/models/contact.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/models/contact.ts similarity index 95% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/models/contact.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/models/contact.ts index a18abc8a..5ce801d6 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/models/contact.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/models/contact.ts @@ -1,6 +1,6 @@ -export class Contact { - id: string = ""; - name: string = ""; - phone: string = ""; - email: string = ""; -} +export class Contact { + id: string = ""; + name: string = ""; + phone: string = ""; + email: string = ""; +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/services/contact.service.spec.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/services/contact.service.spec.ts similarity index 95% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/services/contact.service.spec.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/services/contact.service.spec.ts index ec9336d7..10418408 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/services/contact.service.spec.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/services/contact.service.spec.ts @@ -1,16 +1,16 @@ -import { TestBed } from '@angular/core/testing'; - -import { ContactService } from './contact.service'; - -describe('ContactService', () => { - let service: ContactService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(ContactService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); +import { TestBed } from '@angular/core/testing'; + +import { ContactService } from './contact.service'; + +describe('ContactService', () => { + let service: ContactService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ContactService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/services/contact.service.ts b/src/app/(category)/angular/(projects)/contact-manager/src/app/services/contact.service.ts similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/app/services/contact.service.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/app/services/contact.service.ts index 518a13e9..fc6cdcc5 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/app/services/contact.service.ts +++ b/src/app/(category)/angular/(projects)/contact-manager/src/app/services/contact.service.ts @@ -1,61 +1,61 @@ -// This is a service provided by Angular’s @angular/common/http module. It is used to make HTTP requests (GET, POST, PUT, DELETE, etc.) to communicate with a backend server. -import { HttpClient } from "@angular/common/http"; - -// Injectable: This decorator marks the class as a service that can be injected into other components or services. It is part of Angular’s dependency injection system. -import { Injectable } from "@angular/core"; -import { Contact } from "../models/contact"; -import { Observable, Subject } from "rxjs"; - -@Injectable({ - // This specifies that the service is provided at the root level, - // meaning that Angular will create a single instance of this service that is shared across the entire application (singleton). - // This is the recommended way to provide services in Angular as it avoids duplication. - providedIn: "root", -}) - -// This defines the ContactService class, which is exported so it can be imported and used in other parts of the application. -export class ContactService { - // This is a property of the class that holds the URL for the backend service where the contacts data can be fetched, updated, or manipulated. - serviceUrl: string = ""; - - public contactsChanged = new Subject(); - - // The constructor is a special method that gets called when an instance of this service is created. - // The HttpClient is injected into the service through the constructor. - constructor(private http: HttpClient) { - this.serviceUrl = "http://localhost:3000/contacts"; - } - - // Method for sending modal event. - // Use by the add and edit modals - sendModalEvent() { - this.contactsChanged.next(null); - } - - // Get modal events, listened by the contact list component - // Whenever emited, the contact list component updates the contacts - getModalEvent(): Observable { - return this.contactsChanged.asObservable(); - } - - // The method returns an Observable that emits a Contact. - // In Angular, HttpClient methods return observables, which are a key part of reactive programming. - // Observables allow you to handle asynchronous operations like HTTP requests and can be subscribed - // to in components to perform actions when the request completes. - // The method returns an Observable, which will emit the response from the server when the POST request is complete. - addContact(contact: Contact): Observable { - return this.http.post(this.serviceUrl, contact); - } - - getAllContacts(): Observable { - return this.http.get(this.serviceUrl); - } - - deleteContact(contact: Contact): Observable { - return this.http.delete(this.serviceUrl + `/${contact.id}`); - } - - editContact(contact: Contact): Observable { - return this.http.put(this.serviceUrl + `/${contact.id}`, contact); - } -} +// This is a service provided by Angular’s @angular/common/http module. It is used to make HTTP requests (GET, POST, PUT, DELETE, etc.) to communicate with a backend server. +import { HttpClient } from "@angular/common/http"; + +// Injectable: This decorator marks the class as a service that can be injected into other components or services. It is part of Angular’s dependency injection system. +import { Injectable } from "@angular/core"; +import { Contact } from "../models/contact"; +import { Observable, Subject } from "rxjs"; + +@Injectable({ + // This specifies that the service is provided at the root level, + // meaning that Angular will create a single instance of this service that is shared across the entire application (singleton). + // This is the recommended way to provide services in Angular as it avoids duplication. + providedIn: "root", +}) + +// This defines the ContactService class, which is exported so it can be imported and used in other parts of the application. +export class ContactService { + // This is a property of the class that holds the URL for the backend service where the contacts data can be fetched, updated, or manipulated. + serviceUrl: string = ""; + + public contactsChanged = new Subject(); + + // The constructor is a special method that gets called when an instance of this service is created. + // The HttpClient is injected into the service through the constructor. + constructor(private http: HttpClient) { + this.serviceUrl = "http://localhost:3000/contacts"; + } + + // Method for sending modal event. + // Use by the add and edit modals + sendModalEvent() { + this.contactsChanged.next(null); + } + + // Get modal events, listened by the contact list component + // Whenever emited, the contact list component updates the contacts + getModalEvent(): Observable { + return this.contactsChanged.asObservable(); + } + + // The method returns an Observable that emits a Contact. + // In Angular, HttpClient methods return observables, which are a key part of reactive programming. + // Observables allow you to handle asynchronous operations like HTTP requests and can be subscribed + // to in components to perform actions when the request completes. + // The method returns an Observable, which will emit the response from the server when the POST request is complete. + addContact(contact: Contact): Observable { + return this.http.post(this.serviceUrl, contact); + } + + getAllContacts(): Observable { + return this.http.get(this.serviceUrl); + } + + deleteContact(contact: Contact): Observable { + return this.http.delete(this.serviceUrl + `/${contact.id}`); + } + + editContact(contact: Contact): Observable { + return this.http.put(this.serviceUrl + `/${contact.id}`, contact); + } +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/assets/images/bg-2.jpeg b/src/app/(category)/angular/(projects)/contact-manager/src/assets/images/bg-2.jpeg similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/assets/images/bg-2.jpeg rename to src/app/(category)/angular/(projects)/contact-manager/src/assets/images/bg-2.jpeg diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/index.html b/src/app/(category)/angular/(projects)/contact-manager/src/index.html similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/index.html rename to src/app/(category)/angular/(projects)/contact-manager/src/index.html index 5368f4f9..750ad81e 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/index.html +++ b/src/app/(category)/angular/(projects)/contact-manager/src/index.html @@ -1,21 +1,21 @@ - - - - - - ContactManager - - - - - - - - - - - - - - + + + + + + ContactManager + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/main.ts b/src/app/(category)/angular/(projects)/contact-manager/src/main.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/main.ts rename to src/app/(category)/angular/(projects)/contact-manager/src/main.ts diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/styles.css b/src/app/(category)/angular/(projects)/contact-manager/src/styles.css similarity index 95% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/styles.css rename to src/app/(category)/angular/(projects)/contact-manager/src/styles.css index bde7c4a0..51c713d8 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/styles.css +++ b/src/app/(category)/angular/(projects)/contact-manager/src/styles.css @@ -1,31 +1,31 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -* { - box-sizing: border-box; - margin: 0; - padding: 0; - font-family: "Inter", sans-serif; -} - -::-webkit-scrollbar { - display: none; -} - -html, body { height: 100%; width: 100%; background-image: url('./assets/images/bg-2.jpeg'); - background-size: cover; - background-position: center center; - background-repeat: no-repeat; } - - .popup { - background-image: url('./assets/images/bg-2.jpeg'); - background-size: cover; - background-position: center center; - background-repeat: no-repeat; -} - - -.toast-top-center { - top: 15px !important; +@tailwind base; +@tailwind components; +@tailwind utilities; + +* { + box-sizing: border-box; + margin: 0; + padding: 0; + font-family: "Inter", sans-serif; +} + +::-webkit-scrollbar { + display: none; +} + +html, body { height: 100%; width: 100%; background-image: url('./assets/images/bg-2.jpeg'); + background-size: cover; + background-position: center center; + background-repeat: no-repeat; } + + .popup { + background-image: url('./assets/images/bg-2.jpeg'); + background-size: cover; + background-position: center center; + background-repeat: no-repeat; +} + + +.toast-top-center { + top: 15px !important; } \ No newline at end of file diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/tailwind.config.js b/src/app/(category)/angular/(projects)/contact-manager/tailwind.config.js similarity index 100% rename from Angular-JS-Projects/Advanced/Contact-Manager/tailwind.config.js rename to src/app/(category)/angular/(projects)/contact-manager/tailwind.config.js diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.app.json b/src/app/(category)/angular/(projects)/contact-manager/tsconfig.app.json similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.app.json rename to src/app/(category)/angular/(projects)/contact-manager/tsconfig.app.json index 7a775bdf..3775b37e 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.app.json +++ b/src/app/(category)/angular/(projects)/contact-manager/tsconfig.app.json @@ -1,15 +1,15 @@ -/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ -/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/app", - "types": [] - }, - "files": [ - "src/main.ts" - ], - "include": [ - "src/**/*.d.ts" - ] -} +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.json b/src/app/(category)/angular/(projects)/contact-manager/tsconfig.json similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.json rename to src/app/(category)/angular/(projects)/contact-manager/tsconfig.json index 2b1c74df..a9ae8b06 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.json +++ b/src/app/(category)/angular/(projects)/contact-manager/tsconfig.json @@ -1,32 +1,32 @@ -/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ -/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ -{ - "compileOnSave": false, - "compilerOptions": { - "outDir": "./dist/out-tsc", - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "skipLibCheck": true, - "esModuleInterop": true, - "sourceMap": true, - "declaration": false, - "experimentalDecorators": true, - "moduleResolution": "bundler", - "importHelpers": true, - "target": "ES2022", - "module": "ES2022", - "lib": [ - "ES2022", - "dom" - ] - }, - "angularCompilerOptions": { - "enableI18nLegacyMessageIdFormat": false, - "strictInjectionParameters": true, - "strictInputAccessModifiers": true, - "strictTemplates": true - } -} +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "lib": [ + "ES2022", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/Angular-JS-Projects/Intermediate/Train-Website/tsconfig.spec.json b/src/app/(category)/angular/(projects)/contact-manager/tsconfig.spec.json similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/tsconfig.spec.json rename to src/app/(category)/angular/(projects)/contact-manager/tsconfig.spec.json diff --git a/Angular-JS-Projects/Basic/Quick-Notes/README.md b/src/app/(category)/angular/(projects)/quick-notes/README.md similarity index 100% rename from Angular-JS-Projects/Basic/Quick-Notes/README.md rename to src/app/(category)/angular/(projects)/quick-notes/README.md diff --git a/Angular-JS-Projects/Basic/Quick-Notes/app.js b/src/app/(category)/angular/(projects)/quick-notes/app.js similarity index 100% rename from Angular-JS-Projects/Basic/Quick-Notes/app.js rename to src/app/(category)/angular/(projects)/quick-notes/app.js diff --git a/Angular-JS-Projects/Basic/Quick-Notes/bg.webp b/src/app/(category)/angular/(projects)/quick-notes/bg.webp similarity index 100% rename from Angular-JS-Projects/Basic/Quick-Notes/bg.webp rename to src/app/(category)/angular/(projects)/quick-notes/bg.webp diff --git a/Angular-JS-Projects/Basic/Quick-Notes/index.html b/src/app/(category)/angular/(projects)/quick-notes/index.html similarity index 100% rename from Angular-JS-Projects/Basic/Quick-Notes/index.html rename to src/app/(category)/angular/(projects)/quick-notes/index.html diff --git a/Angular-JS-Projects/Basic/Quick-Notes/screenshot.webp b/src/app/(category)/angular/(projects)/quick-notes/screenshot.webp similarity index 100% rename from Angular-JS-Projects/Basic/Quick-Notes/screenshot.webp rename to src/app/(category)/angular/(projects)/quick-notes/screenshot.webp diff --git a/Angular-JS-Projects/Basic/Quick-Notes/styles.css b/src/app/(category)/angular/(projects)/quick-notes/styles.css similarity index 100% rename from Angular-JS-Projects/Basic/Quick-Notes/styles.css rename to src/app/(category)/angular/(projects)/quick-notes/styles.css diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/.gitignore b/src/app/(category)/angular/(projects)/recipe-sharing/.gitignore similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/.gitignore rename to src/app/(category)/angular/(projects)/recipe-sharing/.gitignore diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/README.md b/src/app/(category)/angular/(projects)/recipe-sharing/README.md similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/README.md rename to src/app/(category)/angular/(projects)/recipe-sharing/README.md diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/package-lock.json b/src/app/(category)/angular/(projects)/recipe-sharing/package-lock.json similarity index 99% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/package-lock.json rename to src/app/(category)/angular/(projects)/recipe-sharing/package-lock.json index fd5844b2..e674df42 100644 --- a/Angular-JS-Projects/Intermediate/Recipe-Sharing/package-lock.json +++ b/src/app/(category)/angular/(projects)/recipe-sharing/package-lock.json @@ -1,5 +1,5 @@ { - "name": "cook-book", + "name": "recipe-sharing", "version": "0.0.0", "lockfileVersion": 1, "requires": true, diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/package.json b/src/app/(category)/angular/(projects)/recipe-sharing/package.json similarity index 97% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/package.json rename to src/app/(category)/angular/(projects)/recipe-sharing/package.json index 974b5934..72aae764 100644 --- a/Angular-JS-Projects/Intermediate/Recipe-Sharing/package.json +++ b/src/app/(category)/angular/(projects)/recipe-sharing/package.json @@ -1,5 +1,5 @@ { - "name": "cook-book", + "name": "recipe-sharing", "version": "0.0.0", "scripts": { "ng": "ng", diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/screenshot.webp b/src/app/(category)/angular/(projects)/recipe-sharing/screenshot.webp similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/screenshot.webp rename to src/app/(category)/angular/(projects)/recipe-sharing/screenshot.webp diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/Product.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/Product.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/Product.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/Product.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/Recipe.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/Recipe.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/Recipe.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/Recipe.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app-routing.module.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/app-routing.module.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app-routing.module.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/app-routing.module.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.component.css b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.component.css rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.component.css diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.component.html b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.component.html rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.component.html diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.component.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.component.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.component.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.component.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.component.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.module.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.module.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/app.module.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/app.module.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/eshop/eshop.component.css b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/eshop/eshop.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/eshop/eshop.component.css rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/eshop/eshop.component.css diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/eshop/eshop.component.html b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/eshop/eshop.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/eshop/eshop.component.html rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/eshop/eshop.component.html diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/eshop/eshop.component.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/eshop/eshop.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/eshop/eshop.component.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/eshop/eshop.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/eshop/eshop.component.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/eshop/eshop.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/eshop/eshop.component.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/eshop/eshop.component.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/form.service.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/form.service.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/form.service.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/form.service.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/form.service.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/form.service.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/form.service.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/form.service.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/home/home.component.css b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/home/home.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/home/home.component.css rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/home/home.component.css diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/home/home.component.html b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/home/home.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/home/home.component.html rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/home/home.component.html diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/home/home.component.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/home/home.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/home/home.component.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/home/home.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/home/home.component.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/home/home.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/home/home.component.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/home/home.component.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/navbar/navbar.component.css b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/navbar/navbar.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/navbar/navbar.component.css rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/navbar/navbar.component.css diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/navbar/navbar.component.html b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/navbar/navbar.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/navbar/navbar.component.html rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/navbar/navbar.component.html diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/navbar/navbar.component.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/navbar/navbar.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/navbar/navbar.component.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/navbar/navbar.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/navbar/navbar.component.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/navbar/navbar.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/navbar/navbar.component.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/navbar/navbar.component.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/recipe-form/recipe-form.component.css b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/recipe-form/recipe-form.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/recipe-form/recipe-form.component.css rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/recipe-form/recipe-form.component.css diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/recipe-form/recipe-form.component.html b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/recipe-form/recipe-form.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/recipe-form/recipe-form.component.html rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/recipe-form/recipe-form.component.html diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/recipe-form/recipe-form.component.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/recipe-form/recipe-form.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/recipe-form/recipe-form.component.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/recipe-form/recipe-form.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/recipe-form/recipe-form.component.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/recipe-form/recipe-form.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/recipe-form/recipe-form.component.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/recipe-form/recipe-form.component.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/shop.service.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/shop.service.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/shop.service.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/shop.service.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/shop.service.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/shop.service.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/shop.service.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/shop.service.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/update-recipe-form/update-recipe-form.component.css b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/update-recipe-form/update-recipe-form.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/update-recipe-form/update-recipe-form.component.css rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/update-recipe-form/update-recipe-form.component.css diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/update-recipe-form/update-recipe-form.component.html b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/update-recipe-form/update-recipe-form.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/update-recipe-form/update-recipe-form.component.html rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/update-recipe-form/update-recipe-form.component.html diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/update-recipe-form/update-recipe-form.component.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/update-recipe-form/update-recipe-form.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/update-recipe-form/update-recipe-form.component.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/update-recipe-form/update-recipe-form.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/update-recipe-form/update-recipe-form.component.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/update-recipe-form/update-recipe-form.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/update-recipe-form/update-recipe-form.component.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/update-recipe-form/update-recipe-form.component.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/view-recipe/view-recipe.component.css b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/view-recipe/view-recipe.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/view-recipe/view-recipe.component.css rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/view-recipe/view-recipe.component.css diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/view-recipe/view-recipe.component.html b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/view-recipe/view-recipe.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/view-recipe/view-recipe.component.html rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/view-recipe/view-recipe.component.html diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/view-recipe/view-recipe.component.spec.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/view-recipe/view-recipe.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/view-recipe/view-recipe.component.spec.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/view-recipe/view-recipe.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/view-recipe/view-recipe.component.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/app/view-recipe/view-recipe.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/app/view-recipe/view-recipe.component.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/app/view-recipe/view-recipe.component.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/assets/cooking-hotpot.png b/src/app/(category)/angular/(projects)/recipe-sharing/src/assets/cooking-hotpot.png similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/assets/cooking-hotpot.png rename to src/app/(category)/angular/(projects)/recipe-sharing/src/assets/cooking-hotpot.png diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/favicon.ico b/src/app/(category)/angular/(projects)/recipe-sharing/src/favicon.ico similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/favicon.ico rename to src/app/(category)/angular/(projects)/recipe-sharing/src/favicon.ico diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/index.html b/src/app/(category)/angular/(projects)/recipe-sharing/src/index.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/index.html rename to src/app/(category)/angular/(projects)/recipe-sharing/src/index.html diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/main.ts b/src/app/(category)/angular/(projects)/recipe-sharing/src/main.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/main.ts rename to src/app/(category)/angular/(projects)/recipe-sharing/src/main.ts diff --git a/Angular-JS-Projects/Intermediate/Recipe-Sharing/src/styles.css b/src/app/(category)/angular/(projects)/recipe-sharing/src/styles.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Recipe-Sharing/src/styles.css rename to src/app/(category)/angular/(projects)/recipe-sharing/src/styles.css diff --git a/Angular-JS-Projects/Basic/Task-Manager/README.md b/src/app/(category)/angular/(projects)/task-manager/README.md similarity index 100% rename from Angular-JS-Projects/Basic/Task-Manager/README.md rename to src/app/(category)/angular/(projects)/task-manager/README.md diff --git a/Angular-JS-Projects/Basic/Task-Manager/app.js b/src/app/(category)/angular/(projects)/task-manager/app.js similarity index 100% rename from Angular-JS-Projects/Basic/Task-Manager/app.js rename to src/app/(category)/angular/(projects)/task-manager/app.js diff --git a/Angular-JS-Projects/Basic/Task-Manager/index.html b/src/app/(category)/angular/(projects)/task-manager/index.html similarity index 100% rename from Angular-JS-Projects/Basic/Task-Manager/index.html rename to src/app/(category)/angular/(projects)/task-manager/index.html diff --git a/Angular-JS-Projects/Basic/Task-Manager/screenshot.webp b/src/app/(category)/angular/(projects)/task-manager/screenshot.webp similarity index 100% rename from Angular-JS-Projects/Basic/Task-Manager/screenshot.webp rename to src/app/(category)/angular/(projects)/task-manager/screenshot.webp diff --git a/Angular-JS-Projects/Basic/Task-Manager/style.css b/src/app/(category)/angular/(projects)/task-manager/style.css similarity index 100% rename from Angular-JS-Projects/Basic/Task-Manager/style.css rename to src/app/(category)/angular/(projects)/task-manager/style.css diff --git a/Angular-JS-Projects/Intermediate/Train-Website/.editorconfig b/src/app/(category)/angular/(projects)/train-website/.editorconfig similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/.editorconfig rename to src/app/(category)/angular/(projects)/train-website/.editorconfig diff --git a/Angular-JS-Projects/Intermediate/Train-Website/.gitignore b/src/app/(category)/angular/(projects)/train-website/.gitignore similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/.gitignore rename to src/app/(category)/angular/(projects)/train-website/.gitignore diff --git a/Angular-JS-Projects/Intermediate/Train-Website/README.md b/src/app/(category)/angular/(projects)/train-website/README.md similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/README.md rename to src/app/(category)/angular/(projects)/train-website/README.md diff --git a/Angular-JS-Projects/Intermediate/Train-Website/angular.json b/src/app/(category)/angular/(projects)/train-website/angular.json similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/angular.json rename to src/app/(category)/angular/(projects)/train-website/angular.json diff --git a/Angular-JS-Projects/Intermediate/Train-Website/package.json b/src/app/(category)/angular/(projects)/train-website/package.json similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/package.json rename to src/app/(category)/angular/(projects)/train-website/package.json diff --git a/Angular-JS-Projects/Intermediate/Train-Website/proxy.conf.json b/src/app/(category)/angular/(projects)/train-website/proxy.conf.json similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/proxy.conf.json rename to src/app/(category)/angular/(projects)/train-website/proxy.conf.json diff --git a/Angular-JS-Projects/Intermediate/Train-Website/public/favicon.ico b/src/app/(category)/angular/(projects)/train-website/public/favicon.ico similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/public/favicon.ico rename to src/app/(category)/angular/(projects)/train-website/public/favicon.ico diff --git a/Angular-JS-Projects/Intermediate/Train-Website/screenshot.webp b/src/app/(category)/angular/(projects)/train-website/screenshot.webp similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/screenshot.webp rename to src/app/(category)/angular/(projects)/train-website/screenshot.webp diff --git a/Angular-JS-Projects/Intermediate/Train-Website/server.ts b/src/app/(category)/angular/(projects)/train-website/server.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/server.ts rename to src/app/(category)/angular/(projects)/train-website/server.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/app.component.css b/src/app/(category)/angular/(projects)/train-website/src/app/app.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/app.component.css rename to src/app/(category)/angular/(projects)/train-website/src/app/app.component.css diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/app.component.html b/src/app/(category)/angular/(projects)/train-website/src/app/app.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/app.component.html rename to src/app/(category)/angular/(projects)/train-website/src/app/app.component.html diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/app.component.spec.ts b/src/app/(category)/angular/(projects)/train-website/src/app/app.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/app.component.spec.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/app.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/app.component.ts b/src/app/(category)/angular/(projects)/train-website/src/app/app.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/app.component.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/app.component.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/app.config.server.ts b/src/app/(category)/angular/(projects)/train-website/src/app/app.config.server.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/app.config.server.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/app.config.server.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/app.config.ts b/src/app/(category)/angular/(projects)/train-website/src/app/app.config.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/app.config.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/app.config.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/app.routes.ts b/src/app/(category)/angular/(projects)/train-website/src/app/app.routes.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/app.routes.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/app.routes.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/constants/constants.ts b/src/app/(category)/angular/(projects)/train-website/src/app/constants/constants.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/constants/constants.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/constants/constants.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/models/stations.ts b/src/app/(category)/angular/(projects)/train-website/src/app/models/stations.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/models/stations.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/models/stations.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/admin/admin.component.css b/src/app/(category)/angular/(projects)/train-website/src/app/pages/admin/admin.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/admin/admin.component.css rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/admin/admin.component.css diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/admin/admin.component.html b/src/app/(category)/angular/(projects)/train-website/src/app/pages/admin/admin.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/admin/admin.component.html rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/admin/admin.component.html diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/admin/admin.component.spec.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/admin/admin.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/admin/admin.component.spec.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/admin/admin.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/admin/admin.component.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/admin/admin.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/admin/admin.component.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/admin/admin.component.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/bookings/bookings.component.css b/src/app/(category)/angular/(projects)/train-website/src/app/pages/bookings/bookings.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/bookings/bookings.component.css rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/bookings/bookings.component.css diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/bookings/bookings.component.html b/src/app/(category)/angular/(projects)/train-website/src/app/pages/bookings/bookings.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/bookings/bookings.component.html rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/bookings/bookings.component.html diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/bookings/bookings.component.spec.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/bookings/bookings.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/bookings/bookings.component.spec.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/bookings/bookings.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/bookings/bookings.component.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/bookings/bookings.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/bookings/bookings.component.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/bookings/bookings.component.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/home/home.component.css b/src/app/(category)/angular/(projects)/train-website/src/app/pages/home/home.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/home/home.component.css rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/home/home.component.css diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/home/home.component.html b/src/app/(category)/angular/(projects)/train-website/src/app/pages/home/home.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/home/home.component.html rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/home/home.component.html diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/home/home.component.spec.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/home/home.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/home/home.component.spec.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/home/home.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/home/home.component.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/home/home.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/home/home.component.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/home/home.component.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/search/search.component.css b/src/app/(category)/angular/(projects)/train-website/src/app/pages/search/search.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/search/search.component.css rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/search/search.component.css diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/search/search.component.html b/src/app/(category)/angular/(projects)/train-website/src/app/pages/search/search.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/search/search.component.html rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/search/search.component.html diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/search/search.component.spec.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/search/search.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/search/search.component.spec.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/search/search.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/search/search.component.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/search/search.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/search/search.component.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/search/search.component.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/trains/trains.component.css b/src/app/(category)/angular/(projects)/train-website/src/app/pages/trains/trains.component.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/trains/trains.component.css rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/trains/trains.component.css diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/trains/trains.component.html b/src/app/(category)/angular/(projects)/train-website/src/app/pages/trains/trains.component.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/trains/trains.component.html rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/trains/trains.component.html diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/trains/trains.component.spec.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/trains/trains.component.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/trains/trains.component.spec.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/trains/trains.component.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/trains/trains.component.ts b/src/app/(category)/angular/(projects)/train-website/src/app/pages/trains/trains.component.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/pages/trains/trains.component.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/pages/trains/trains.component.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/services/stations.service.spec.ts b/src/app/(category)/angular/(projects)/train-website/src/app/services/stations.service.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/services/stations.service.spec.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/services/stations.service.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/services/stations.service.ts b/src/app/(category)/angular/(projects)/train-website/src/app/services/stations.service.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/services/stations.service.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/services/stations.service.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/services/trains.service.spec.ts b/src/app/(category)/angular/(projects)/train-website/src/app/services/trains.service.spec.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/services/trains.service.spec.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/services/trains.service.spec.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/app/services/trains.service.ts b/src/app/(category)/angular/(projects)/train-website/src/app/services/trains.service.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/app/services/trains.service.ts rename to src/app/(category)/angular/(projects)/train-website/src/app/services/trains.service.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/environments/environment.development.ts b/src/app/(category)/angular/(projects)/train-website/src/environments/environment.development.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/environments/environment.development.ts rename to src/app/(category)/angular/(projects)/train-website/src/environments/environment.development.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/environments/environment.ts b/src/app/(category)/angular/(projects)/train-website/src/environments/environment.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/environments/environment.ts rename to src/app/(category)/angular/(projects)/train-website/src/environments/environment.ts diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/index.html b/src/app/(category)/angular/(projects)/train-website/src/index.html similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/index.html rename to src/app/(category)/angular/(projects)/train-website/src/index.html diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/main.server.ts b/src/app/(category)/angular/(projects)/train-website/src/main.server.ts similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/main.server.ts rename to src/app/(category)/angular/(projects)/train-website/src/main.server.ts diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/src/main.ts b/src/app/(category)/angular/(projects)/train-website/src/main.ts similarity index 97% rename from Angular-JS-Projects/Advanced/Contact-Manager/src/main.ts rename to src/app/(category)/angular/(projects)/train-website/src/main.ts index 89ca5674..35b00f34 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/src/main.ts +++ b/src/app/(category)/angular/(projects)/train-website/src/main.ts @@ -1,6 +1,6 @@ -import { bootstrapApplication } from '@angular/platform-browser'; -import { appConfig } from './app/app.config'; -import { AppComponent } from './app/app.component'; - -bootstrapApplication(AppComponent, appConfig) - .catch((err) => console.error(err)); +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/Angular-JS-Projects/Intermediate/Train-Website/src/styles.css b/src/app/(category)/angular/(projects)/train-website/src/styles.css similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/src/styles.css rename to src/app/(category)/angular/(projects)/train-website/src/styles.css diff --git a/Angular-JS-Projects/Intermediate/Train-Website/tsconfig.app.json b/src/app/(category)/angular/(projects)/train-website/tsconfig.app.json similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/tsconfig.app.json rename to src/app/(category)/angular/(projects)/train-website/tsconfig.app.json diff --git a/Angular-JS-Projects/Intermediate/Train-Website/tsconfig.json b/src/app/(category)/angular/(projects)/train-website/tsconfig.json similarity index 100% rename from Angular-JS-Projects/Intermediate/Train-Website/tsconfig.json rename to src/app/(category)/angular/(projects)/train-website/tsconfig.json diff --git a/Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.spec.json b/src/app/(category)/angular/(projects)/train-website/tsconfig.spec.json similarity index 96% rename from Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.spec.json rename to src/app/(category)/angular/(projects)/train-website/tsconfig.spec.json index 8591662f..5fb748d9 100644 --- a/Angular-JS-Projects/Advanced/Contact-Manager/tsconfig.spec.json +++ b/src/app/(category)/angular/(projects)/train-website/tsconfig.spec.json @@ -1,15 +1,15 @@ -/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ -/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/spec", - "types": [ - "jasmine" - ] - }, - "include": [ - "src/**/*.spec.ts", - "src/**/*.d.ts" - ] -} +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/src/app/(category)/angular/page.tsx b/src/app/(category)/angular/page.tsx new file mode 100644 index 00000000..39cc84dd --- /dev/null +++ b/src/app/(category)/angular/page.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import data from '../../../database/data.json'; +import { ProjectsData } from '../../../types'; +import ProjectCard from '../../../components/shared/ProjectCard'; + +const levels = ['beginner', 'intermediate', 'advanced'] as const; + +const page = () => { + const projects = data.angular as ProjectsData; + + return ( +
+ {levels.map((level) => ( +
+ {projects[level].map((project, index) => ( + + ))} +
+ ))} +
+ ) +} + +export default page; \ No newline at end of file diff --git a/Front-end-Projects/Basic/Amazon-Clone/README.md b/src/app/(category)/frontend/(projects)/amazon-clone/README.md similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/README.md rename to src/app/(category)/frontend/(projects)/amazon-clone/README.md diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/cartLogo.png b/src/app/(category)/frontend/(projects)/amazon-clone/assets/cartLogo.png similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/cartLogo.png rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/cartLogo.png diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/favicon.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/favicon.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/favicon.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/favicon.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/flag.png b/src/app/(category)/frontend/(projects)/amazon-clone/assets/flag.png similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/flag.png rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/flag.png diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/footerLogo.png b/src/app/(category)/frontend/(projects)/amazon-clone/assets/footerLogo.png similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/footerLogo.png rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/footerLogo.png diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image1.1.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image1.1.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image1.1.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image1.1.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image1.2.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image1.2.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image1.2.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image1.2.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image1.3.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image1.3.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image1.3.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image1.3.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image1.4.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image1.4.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image1.4.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image1.4.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image10.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image10.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image10.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image10.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image11.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image11.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image11.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image11.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image12.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image12.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image12.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image12.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image13.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image13.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image13.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image13.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image2.1.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.1.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image2.1.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.1.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image2.2.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.2.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image2.2.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.2.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image2.3.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.3.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image2.3.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.3.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image2.4.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.4.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image2.4.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.4.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image2.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image2.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image2.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image4.1.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.1.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image4.1.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.1.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image4.2.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.2.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image4.2.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.2.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image4.3.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.3.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image4.3.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.3.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image4.4.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.4.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image4.4.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.4.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image4.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image4.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image4.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image6.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image6.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image6.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image6.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image7.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image7.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image7.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image7.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/image9.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/image9.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/image9.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/image9.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/logo.png b/src/app/(category)/frontend/(projects)/amazon-clone/assets/logo.png similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/logo.png rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/logo.png diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/main.jpg b/src/app/(category)/frontend/(projects)/amazon-clone/assets/main.jpg similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/main.jpg rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/main.jpg diff --git a/Front-end-Projects/Basic/Amazon-Clone/assets/smallImage.png b/src/app/(category)/frontend/(projects)/amazon-clone/assets/smallImage.png similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/assets/smallImage.png rename to src/app/(category)/frontend/(projects)/amazon-clone/assets/smallImage.png diff --git a/Front-end-Projects/Basic/Amazon-Clone/index.html b/src/app/(category)/frontend/(projects)/amazon-clone/index.html similarity index 97% rename from Front-end-Projects/Basic/Amazon-Clone/index.html rename to src/app/(category)/frontend/(projects)/amazon-clone/index.html index 047fff4c..7fb809cc 100644 --- a/Front-end-Projects/Basic/Amazon-Clone/index.html +++ b/src/app/(category)/frontend/(projects)/amazon-clone/index.html @@ -1,396 +1,396 @@ - - - - - - Amazon - - - - - -
- - - -
- -
- -

All

-
- -
- - -
- Registry -
- -
- Sell -
-
- -
- -
- -
-
-

You are on amazon.com. You can also shop on Amazon India for millions of products with fast local delivery. Click here to go to amazon.in

-
-
- -
- -
-
-

A whole new way to work

-
- Shop personal computers -
-
- -
-
-

Handpicked music & audio

-
- -
- -
-
-
-
-

Headphones

-
-
- -
-
-
-
-

Guitars

-
-
- -
-
-
-
-

Keyboards

-
-
- -
-
-
-
-

Microphones

-
-
- -
- -
- See more -
-
- -
-
-

Upgrade your office furniture

-
- Shop now -
-
- -
-
-

Creating business solutions

-
- See more software products -
-
- - -
-
-

Player's paradise starts here

-
- Shop video games -
-
- -
-
-

Shop activity trackers and smartwatches

-
- Shop now -
-
- -
-
-

Warm & welcoming decor

-
- See more -
-
- -
-
-

Refresh yourself & your space

-
- -
- -
-
-
-
-

Dining

-
-
- -
-
-
-
-

Home

-
-
- -
-
-
-
-

Kitchen

-
-
- -
-
-
-
-

Health and Beauty

-
-
- -
- -
- Shop now -
-
- -
-
-

Curated furniture to enhance your home

-
- See more -
-
- -
-
-

Shop deals in Fashion

-
- -
- -
-
-
-
-

Shoes under $50

-
-
- -
-
-
-
-

Jeans under $50

-
-
- -
-
-
-
-

Tops under $25

-
-
- -
-
-
-
-

Dresses under $30

-
-
- -
- -
- See more -
-
- -
-
-

Personal Care under $25

-
- Shop now -
-
- -
-
-

Deals on shoes

-
- Explore more -
-
- -
- - - - - + + + + + + Amazon + + + + + +
+ + + +
+ +
+ +

All

+
+ +
+ + +
+ Registry +
+ +
+ Sell +
+
+ +
+ +
+ +
+
+

You are on amazon.com. You can also shop on Amazon India for millions of products with fast local delivery. Click here to go to amazon.in

+
+
+ +
+ +
+
+

A whole new way to work

+
+ Shop personal computers +
+
+ +
+
+

Handpicked music & audio

+
+ +
+ +
+
+
+
+

Headphones

+
+
+ +
+
+
+
+

Guitars

+
+
+ +
+
+
+
+

Keyboards

+
+
+ +
+
+
+
+

Microphones

+
+
+ +
+ +
+ See more +
+
+ +
+
+

Upgrade your office furniture

+
+ Shop now +
+
+ +
+
+

Creating business solutions

+
+ See more software products +
+
+ + +
+
+

Player's paradise starts here

+
+ Shop video games +
+
+ +
+
+

Shop activity trackers and smartwatches

+
+ Shop now +
+
+ +
+
+

Warm & welcoming decor

+
+ See more +
+
+ +
+
+

Refresh yourself & your space

+
+ +
+ +
+
+
+
+

Dining

+
+
+ +
+
+
+
+

Home

+
+
+ +
+
+
+
+

Kitchen

+
+
+ +
+
+
+
+

Health and Beauty

+
+
+ +
+ +
+ Shop now +
+
+ +
+
+

Curated furniture to enhance your home

+
+ See more +
+
+ +
+
+

Shop deals in Fashion

+
+ +
+ +
+
+
+
+

Shoes under $50

+
+
+ +
+
+
+
+

Jeans under $50

+
+
+ +
+
+
+
+

Tops under $25

+
+
+ +
+
+
+
+

Dresses under $30

+
+
+ +
+ +
+ See more +
+
+ +
+
+

Personal Care under $25

+
+ Shop now +
+
+ +
+
+

Deals on shoes

+
+ Explore more +
+
+ +
+ + + + + \ No newline at end of file diff --git a/Front-end-Projects/Basic/Amazon-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/amazon-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Amazon-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/amazon-clone/screenshot.webp diff --git a/Front-end-Projects/Basic/Amazon-Clone/style.css b/src/app/(category)/frontend/(projects)/amazon-clone/style.css similarity index 93% rename from Front-end-Projects/Basic/Amazon-Clone/style.css rename to src/app/(category)/frontend/(projects)/amazon-clone/style.css index 5393901b..9cdf8249 100644 --- a/Front-end-Projects/Basic/Amazon-Clone/style.css +++ b/src/app/(category)/frontend/(projects)/amazon-clone/style.css @@ -1,983 +1,983 @@ -*{ - margin: 0; - padding: 0; - border: border-box; - font-family: Arial; -} - -.navbar{ - height: 60px; - color: white; - background-color: #0f1111; - display: flex; - align-items: center; - justify-content: space-evenly; -} - -.border{ - border: 1.5px solid transparent; - border-radius: 3px; -} - -.border:hover{ - border: 1.5px solid rgb(203, 203, 203); - border-radius: 3px; - cursor: pointer; -} - -/* Box 1 Style(amazon-logo) */ - -.amazon-logo{ - height: 50px; - width: 110px; - margin: 1px; -} - -.logo{ - background-image: url("assets/logo.png"); - height: 50px; - width: 100%; - background-size: cover; -} - -/* Box 2 Style(address) */ - -.address{ - padding: 8px 4px 8px 4px; -} - -.first-add{ - font-size:0.9rem; - color: #cccccc; - margin-left: 15px; -} - -.icon-location{ - display: flex; -} - -.location{ - color: #ffffff; - font-size: 1rem; - font-weight: 600; - margin-left: 4px; -} - -/* Box 3 Style(search-box) */ - -.search-box{ - width: 890px; - height: 40px; - border-radius: 5px; - display: flex; - justify-content: space-evenly; - background-color: white; - cursor: pointer; -} - -.search-box:active{ - border: 3px solid orange; - border-radius: 8px; -} - -.search-box:hover{ - border: 3px solid orange; - border-radius: 8px; -} - -.select{ - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; - border: none; - border-right: 1.5px solid #a4a5a5; - outline: none; - font-size: 14px; - width: 50px; - text-align: center; - background-color: #e6e6e6; - cursor: pointer; -} - -.search-input{ - width: 100%; - margin-left: 8px; - font-size: 1rem; - border: none; - outline: none; -} - -.search-input::placeholder{ - font-size: 1.1rem; -} - -.search-icon{ - width: 50px; - display: flex; - justify-content: center; - align-items: center; - font-size: 1.4rem; - color: #0f1111; - background-color: #febd68; - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; -} - -/* Box 4 Style(language) */ - -.language2{ - padding: 16px 4px 12px 4px; - display: flex; - justify-content: space-evenly; - align-items: center; -} - -.flag{ - width: 21.6px; - height: 20.5px; -} - -.lang{ - background-color: transparent; - color: white; - border: none; - outline: none; - padding-left: 4px; - font-size: 1rem; - font-weight: 600; - cursor: pointer; -} - -/* Box 5 Style(account1) */ - -.account{ - padding: 8px 7px 8px 7px; -} - -span{ - font-size: 0.7rem; - font-weight: 500; -} - -.second-line{ - font-size: 0.9rem; - font-weight: 700; -} - -/* Box6 Style(Order1) */ - -.order{ - padding: 8px 7px 8px 7px; -} - -/* Box7 Style(cart) */ - -.cart{ - padding: 8px 7px 5px 7px; - display: flex; - justify-content: center; - align-items: center; -} - -.cartlogo{ - width: 40px; - height: 32px; -} - -.cart p{ - padding-top: 18px; -} - -/* Panel Style(panel) */ - -.panel{ - height: 40px; - background-color: #222f3d; - color: #ffffff; - display: flex; - align-items: center; - justify-content: space-evenly; -} - -.all{ - display: flex; - height: 40px; - width: 50px; - align-items: center; - justify-content: center; -} - -.all i{ - font-size: 18px; -} - -.all p{ - font-size: 0.9rem; - padding-left: 3px; - font-weight: 700; -} - -.options{ - width: 93%; - display: flex; - padding-left: 5px; -} - -.op{ - height: 40px; - display: flex; - align-items: center; -} - -.options a{ - color: #ffffff; - text-decoration: none; - font-size: 0.9rem; - margin-left: 8px; - padding-right: 8px; -} - -/* Main Section Style */ - -.main-section{ - background-image: url("assets/main.jpg"); - mask-image: linear-gradient(to bottom, #000000 50%, transparent 100%); - background-size: cover; - max-width: 100%; - height: 600px; - display: flex; - justify-content: center; - align-items: flex-end; -} - -.main-message{ - background-color: #ffffff; - color: #0f1111; - height: 40px; - width: 97%; - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 308px; -} - -.main-message p{ - font-size: 0.9rem; -} - -.main-message a{ - text-decoration: none; - font-size: 0.9rem; - color: #007185; -} - -/* Shop Section Style*/ - -.box-section{ - display: flex; - flex-wrap: wrap; - justify-content: space-evenly; - background-color: #eeeeee; - padding-bottom: 25px; - margin-top: -20.1vw; -} - -.box{ - height: 420px; - width: 23%; - background-color: #ffffff; - padding: 25px 0px 15px; - margin-top: 25px; - z-index: 1; -} - -.box-image{ - height: 325px; - background-size: cover; - margin-top: 1rem; - margin-bottom: 1rem; - cursor: pointer; -} - -.box-content{ - margin-left: 1.3rem; - margin-right: 1.3rem; -} - -.box-content h2{ - font-size: 1.32rem; -} - -.box-content a{ - text-decoration: none; - font-size: 14px; - color: #007185; - padding-top: -20px; - cursor: pointer; -} - -/* For Squadren Image Style */ - -.squad-images{ - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; -} - -.squad-box{ - width: 47%; -} - -.squad-box-image{ - height: 17vh; - background-size: cover; -} - -.squad-box-content p{ - font-size: 13px; - padding-top: 3px; -} - -.push{ - margin-top: 30px; -} - -/* Footer Style*/ - -.pannel1{ - height: 50px; - background-color: #37475a; - color: #ffffff; - font-size: 0.85rem; - display: flex; - align-items: center; - justify-content: center; -} - -.pannel2{ - background: linear-gradient(180deg, #1f2b37, #25323f, #273849); - color: #ffffff; - height: 480px; - display: flex; - justify-content: space-evenly; -} - -.pannel2 p{ - font-size: 1rem; - font-weight: 600; -} - -.pannel2 a{ - color: #ffffff; - text-decoration: none; - font-size: 0.85rem; -} - -ul{ - margin-top: 50px; -} - -ul a{ - padding-top: 30px; - display: block; - color: #dddddd; -} - -.pannel3{ - background-color: #1f2b37; - height: 75px; - display: flex; - align-items: center; - justify-content: center; -} - -.foot-logo{ - background-image: url("assets/logo.png"); - width: 150px; - height: 60px; - background-size: cover; -} - -.pannel4{ - height: 80px; - background-color:#19222c; - color: #ffffff; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.redirect a{ - text-decoration: none; - font-size: 0.75rem; - color: #ffffff; - padding-left: 15px; -} - -.copy-right { - margin-top: 5px; - font-size: 0.75rem; - text-align: center; -} - -.copy-right span{ - font-size: 1rem; - font-weight: 600; -} - -@media (min-width: 481px) and (max-width: 800px) { - - *{ - margin: 0; - padding: 0; - border: border-box; - font-family: Arial; - } - - .navbar{ - font-size: 20px; - } - - .amazon-logo{ - height: 43px; - margin-left: 6px; - } - - .logo{ - background-image: url("assets/footerLogo.png"); - background-size: contain; - background-repeat: no-repeat; - margin-top: 10px; - width: 67px; - } - - .add{ - margin-left: 3px; - } - - .address{ - width: 55px; - height: 25px; - margin-right: 10px; - } - - .first-add{ - font-size: 0.6rem; - margin-left: 11px; - margin-bottom: 5px; - } - - .location{ - font-size: 0.9rem; - margin-left: 2px; - } - - .icon-location i{ - font-size: 0.7rem; - } - - .select{ - width: 37px; - font-size: 12px; - } - - .search-box{ - height: 36px; - } - - .search-input{ - font-size: 0.9rem; - } - - .search-input::placeholder{ - font-size: 0.9rem; - } - - .search-icon{ - font-size: 1.3rem; - } - - .language{ - display: none; - } - - .account{ - margin-left: 8px; - width: 45px; - } - - .second-line{ - font-size: 0.75rem; - } - - .order{ - height: 30px; - margin-left: 5px; - } - - .gu{ - margin-top: 5px; - } - - .account span, .order span{ - display: none; - } - - .cart{ - height: 30px; - margin-right: 8px; - } - - .cartlogo{ - height: 30px; - width: 30px; - } - - .ghu{ - margin-bottom: 10px; - } - - .options a{ - font-size: 0.8rem; - margin-left: 8px; - } - - .all{ - margin-right: -8px; - } - - .all i{ - font-size: 0.8rem; - } - - .all p{ - font-size: 0.9rem; - padding-left: 5px; - padding-top: 3px; - font-weight: 700; - } - - .main-section { - height: 420px; - background-size: contain; - background-repeat: no-repeat; - margin-bottom: 180px; - } - - .main-message { - width: 90%; - border-radius: 5px; - height: 45px; - margin-bottom: 22vh; - text-align: center; - color: #000000; - padding: 3px 3px 3px 3px; - } - - .main-message p{ - font-size: 0.73rem; - } - - .main-message a{ - font-size: 0.8rem; - } - - .box-section { - margin-top: -55.1vw; - margin-bottom: -10px; - } - - .box { - margin-top: 25px; - height: 16rem; - width: 45%; - padding-top: 15px; - } - - .box-image { - height: 22vh; - margin-top: 0.5rem; - margin-bottom: 0.5rem; - } - - .box-content h2 { - font-size: 0.8rem; - } - - .box-content a { - font-size: 12px; - } - - .squad-box-image{ - height: 9vh; - background-size:cover; - } - - .squad-box-content{ - margin-bottom: -20px; - } - - .squad-box-content p{ - font-size: 0.5rem; - - } - - .push{ - margin-top: 2rem; - } - - .pannel1{ - height: 37px; - font-size: 0.65rem; - } - - .pannel2{ - height: 300px; - } - - .pannel2 p{ - font-size: 0.9rem; - font-weight: 600; - } - - .pannel2 a{ - color: #ffffff; - text-decoration: none; - font-size: 0.7rem; - } - - ul{ - margin-top: 40px; - } - - .big{ - display: none; - } - - ul a{ - padding-top: 15px; - display: block; - color: #dddddd; - } - .pannel3{ - height: 50px; - } - - .foot-logo{ - margin-top: 20px; - background-size: contain; - background-repeat: no-repeat; - width: 100px; - } - - .pannel4{ - height: 80px; - background-color:#19222c; - color: #ffffff; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - } - - .redirect a{ - text-decoration: none; - font-size: 0.7rem; - color: #ffffff; - padding-left: 15px; - } - - .copy-right { - margin-top: 5px; - font-size: 0.65rem; - text-align: center; - } - - .copy-right span{ - font-size: 0.9rem; - font-weight: 600; - } -} - -@media (max-width: 480px) { - - *{ - margin: 0; - padding: 0; - border: border-box; - font-family: Arial; - } - - .navbar{ - font-size: 10px; - } - - .amazon-logo{ - height: 37px; - margin-left: 4px; - } - - .logo{ - background-image: url("assets/smallImage.png"); - background-size: contain; - background-repeat: no-repeat; - margin-bottom: -15px; - height: 35px; - width: 35px; - } - - .add{ - margin-left: -3px; - } - - .address{ - width: 30px; - margin-right: 10px; - } - - .first-add{ - font-size: 0.4rem; - margin-left: 1px; - } - - .location{ - font-size: 0.7rem; - margin-left: 2px; - } - - .icon-location i{ - display: none; - } - - .select{ - width: 20px; - font-size: 9px; - } - - .search-box{ - height: 30px; - } - - .search-box:hover{ - border: 2px solid orange; - border-radius: 5px; - } - - .search-box:active{ - border: 2px solid orange; - border-radius: 5px; - } - - .search-input{ - font-size: 0.7rem; - } - - .search-input::placeholder{ - font-size: 0.6rem; - } - - .search-icon{ - font-size: 16px; - } - - .language{ - display: none; - } - - .account{ - margin-left: 8px; - } - - .second-line{ - font-size: 10px; - } - - .order{ - height: 20px; - } - - .gu{ - margin-top: 5px; - } - - .account span, .order span{ - display: none; - } - - .cart{ - height: 25px; - } - - .cartlogo{ - height: 20px; - width: 20px; - } - - .ghu{ - margin-bottom: 10px; - } - - .options a{ - font-size: 10px; - margin-left: 5px; - } - - .all{ - margin-right: -8px; - } - - .all i{ - font-size: 12px; - } - - .all p{ - font-size: 0.6rem; - padding-left: 5px; - padding-top: 3px; - font-weight: 700; - } - - .main-section { - height: 200px; - margin-bottom: 180px; - } - - .main-message { - width: 67%; - border-radius: 5px; - height: 25px; - margin-bottom: 6vh; - text-align: center; - color: #000000; - padding: 3px 3px 3px 3px; - z-index: 3; - } - - .main-message p{ - font-size: 0.5rem; - } - - .main-message a{ - font-size: 0.55rem; - } - - .box-section { - margin-top: -50.1vw; - margin-bottom: -10px; - } - - .box { - margin-top: 15px; - height: 16rem; - width: 45%; - padding-top: 15px; - } - - .box-image { - height: 22vh; - margin-top: 0.5rem; - margin-bottom: 0.5rem; - } - - .box-content h2 { - font-size: 0.8rem; - } - - .box-content a { - font-size: 12px; - } - - .squad-box-image{ - height: 9vh; - background-size:cover; - } - - .squad-box-content{ - margin-bottom: -20px; - } - - .squad-box-content p{ - font-size: 0.5rem; - - } - - .push{ - margin-top: 2rem; - } - - .pannel1{ - height: 37px; - font-size: 0.65rem; - } - - .pannel2{ - height: 300px; - } - - .pannel2 p{ - font-size: 0.57rem; - font-weight: 600; - } - - .pannel2 a{ - color: #ffffff; - text-decoration: none; - font-size: 0.4rem; - } - - ul{ - margin-top: 40px; - } - - .big{ - display: none; - } - - ul a{ - padding-top: 15px; - display: block; - color: #dddddd; - } - - .pannel3{ - height: 60px; - } - - .foot-logo{ - background-image: url("assets/footerLogo.png"); - margin-top: 28px; - background-size: contain; - background-repeat: no-repeat; - width: 100px; - } - - .pannel4{ - height: 60px; - background-color:#19222c; - color: #ffffff; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - } - - .redirect a{ - text-decoration: none; - font-size: 0.55rem; - color: #ffffff; - padding-left: 15px; - } - - .copy-right { - margin-top: 5px; - margin-bottom: 7px; - font-size: 0.58rem; - text-align: center; - } - - .copy-right span{ - font-size: 0.8rem; - font-weight: 600; - } -} +*{ + margin: 0; + padding: 0; + border: border-box; + font-family: Arial; +} + +.navbar{ + height: 60px; + color: white; + background-color: #0f1111; + display: flex; + align-items: center; + justify-content: space-evenly; +} + +.border{ + border: 1.5px solid transparent; + border-radius: 3px; +} + +.border:hover{ + border: 1.5px solid rgb(203, 203, 203); + border-radius: 3px; + cursor: pointer; +} + +/* Box 1 Style(amazon-logo) */ + +.amazon-logo{ + height: 50px; + width: 110px; + margin: 1px; +} + +.logo{ + background-image: url("assets/logo.png"); + height: 50px; + width: 100%; + background-size: cover; +} + +/* Box 2 Style(address) */ + +.address{ + padding: 8px 4px 8px 4px; +} + +.first-add{ + font-size:0.9rem; + color: #cccccc; + margin-left: 15px; +} + +.icon-location{ + display: flex; +} + +.location{ + color: #ffffff; + font-size: 1rem; + font-weight: 600; + margin-left: 4px; +} + +/* Box 3 Style(search-box) */ + +.search-box{ + width: 890px; + height: 40px; + border-radius: 5px; + display: flex; + justify-content: space-evenly; + background-color: white; + cursor: pointer; +} + +.search-box:active{ + border: 3px solid orange; + border-radius: 8px; +} + +.search-box:hover{ + border: 3px solid orange; + border-radius: 8px; +} + +.select{ + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + border: none; + border-right: 1.5px solid #a4a5a5; + outline: none; + font-size: 14px; + width: 50px; + text-align: center; + background-color: #e6e6e6; + cursor: pointer; +} + +.search-input{ + width: 100%; + margin-left: 8px; + font-size: 1rem; + border: none; + outline: none; +} + +.search-input::placeholder{ + font-size: 1.1rem; +} + +.search-icon{ + width: 50px; + display: flex; + justify-content: center; + align-items: center; + font-size: 1.4rem; + color: #0f1111; + background-color: #febd68; + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; +} + +/* Box 4 Style(language) */ + +.language2{ + padding: 16px 4px 12px 4px; + display: flex; + justify-content: space-evenly; + align-items: center; +} + +.flag{ + width: 21.6px; + height: 20.5px; +} + +.lang{ + background-color: transparent; + color: white; + border: none; + outline: none; + padding-left: 4px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; +} + +/* Box 5 Style(account1) */ + +.account{ + padding: 8px 7px 8px 7px; +} + +span{ + font-size: 0.7rem; + font-weight: 500; +} + +.second-line{ + font-size: 0.9rem; + font-weight: 700; +} + +/* Box6 Style(Order1) */ + +.order{ + padding: 8px 7px 8px 7px; +} + +/* Box7 Style(cart) */ + +.cart{ + padding: 8px 7px 5px 7px; + display: flex; + justify-content: center; + align-items: center; +} + +.cartlogo{ + width: 40px; + height: 32px; +} + +.cart p{ + padding-top: 18px; +} + +/* Panel Style(panel) */ + +.panel{ + height: 40px; + background-color: #222f3d; + color: #ffffff; + display: flex; + align-items: center; + justify-content: space-evenly; +} + +.all{ + display: flex; + height: 40px; + width: 50px; + align-items: center; + justify-content: center; +} + +.all i{ + font-size: 18px; +} + +.all p{ + font-size: 0.9rem; + padding-left: 3px; + font-weight: 700; +} + +.options{ + width: 93%; + display: flex; + padding-left: 5px; +} + +.op{ + height: 40px; + display: flex; + align-items: center; +} + +.options a{ + color: #ffffff; + text-decoration: none; + font-size: 0.9rem; + margin-left: 8px; + padding-right: 8px; +} + +/* Main Section Style */ + +.main-section{ + background-image: url("assets/main.jpg"); + mask-image: linear-gradient(to bottom, #000000 50%, transparent 100%); + background-size: cover; + max-width: 100%; + height: 600px; + display: flex; + justify-content: center; + align-items: flex-end; +} + +.main-message{ + background-color: #ffffff; + color: #0f1111; + height: 40px; + width: 97%; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 308px; +} + +.main-message p{ + font-size: 0.9rem; +} + +.main-message a{ + text-decoration: none; + font-size: 0.9rem; + color: #007185; +} + +/* Shop Section Style*/ + +.box-section{ + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; + background-color: #eeeeee; + padding-bottom: 25px; + margin-top: -20.1vw; +} + +.box{ + height: 420px; + width: 23%; + background-color: #ffffff; + padding: 25px 0px 15px; + margin-top: 25px; + z-index: 1; +} + +.box-image{ + height: 325px; + background-size: cover; + margin-top: 1rem; + margin-bottom: 1rem; + cursor: pointer; +} + +.box-content{ + margin-left: 1.3rem; + margin-right: 1.3rem; +} + +.box-content h2{ + font-size: 1.32rem; +} + +.box-content a{ + text-decoration: none; + font-size: 14px; + color: #007185; + padding-top: -20px; + cursor: pointer; +} + +/* For Squadren Image Style */ + +.squad-images{ + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} + +.squad-box{ + width: 47%; +} + +.squad-box-image{ + height: 17vh; + background-size: cover; +} + +.squad-box-content p{ + font-size: 13px; + padding-top: 3px; +} + +.push{ + margin-top: 30px; +} + +/* Footer Style*/ + +.pannel1{ + height: 50px; + background-color: #37475a; + color: #ffffff; + font-size: 0.85rem; + display: flex; + align-items: center; + justify-content: center; +} + +.pannel2{ + background: linear-gradient(180deg, #1f2b37, #25323f, #273849); + color: #ffffff; + height: 480px; + display: flex; + justify-content: space-evenly; +} + +.pannel2 p{ + font-size: 1rem; + font-weight: 600; +} + +.pannel2 a{ + color: #ffffff; + text-decoration: none; + font-size: 0.85rem; +} + +ul{ + margin-top: 50px; +} + +ul a{ + padding-top: 30px; + display: block; + color: #dddddd; +} + +.pannel3{ + background-color: #1f2b37; + height: 75px; + display: flex; + align-items: center; + justify-content: center; +} + +.foot-logo{ + background-image: url("assets/logo.png"); + width: 150px; + height: 60px; + background-size: cover; +} + +.pannel4{ + height: 80px; + background-color:#19222c; + color: #ffffff; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.redirect a{ + text-decoration: none; + font-size: 0.75rem; + color: #ffffff; + padding-left: 15px; +} + +.copy-right { + margin-top: 5px; + font-size: 0.75rem; + text-align: center; +} + +.copy-right span{ + font-size: 1rem; + font-weight: 600; +} + +@media (min-width: 481px) and (max-width: 800px) { + + *{ + margin: 0; + padding: 0; + border: border-box; + font-family: Arial; + } + + .navbar{ + font-size: 20px; + } + + .amazon-logo{ + height: 43px; + margin-left: 6px; + } + + .logo{ + background-image: url("assets/footerLogo.png"); + background-size: contain; + background-repeat: no-repeat; + margin-top: 10px; + width: 67px; + } + + .add{ + margin-left: 3px; + } + + .address{ + width: 55px; + height: 25px; + margin-right: 10px; + } + + .first-add{ + font-size: 0.6rem; + margin-left: 11px; + margin-bottom: 5px; + } + + .location{ + font-size: 0.9rem; + margin-left: 2px; + } + + .icon-location i{ + font-size: 0.7rem; + } + + .select{ + width: 37px; + font-size: 12px; + } + + .search-box{ + height: 36px; + } + + .search-input{ + font-size: 0.9rem; + } + + .search-input::placeholder{ + font-size: 0.9rem; + } + + .search-icon{ + font-size: 1.3rem; + } + + .language{ + display: none; + } + + .account{ + margin-left: 8px; + width: 45px; + } + + .second-line{ + font-size: 0.75rem; + } + + .order{ + height: 30px; + margin-left: 5px; + } + + .gu{ + margin-top: 5px; + } + + .account span, .order span{ + display: none; + } + + .cart{ + height: 30px; + margin-right: 8px; + } + + .cartlogo{ + height: 30px; + width: 30px; + } + + .ghu{ + margin-bottom: 10px; + } + + .options a{ + font-size: 0.8rem; + margin-left: 8px; + } + + .all{ + margin-right: -8px; + } + + .all i{ + font-size: 0.8rem; + } + + .all p{ + font-size: 0.9rem; + padding-left: 5px; + padding-top: 3px; + font-weight: 700; + } + + .main-section { + height: 420px; + background-size: contain; + background-repeat: no-repeat; + margin-bottom: 180px; + } + + .main-message { + width: 90%; + border-radius: 5px; + height: 45px; + margin-bottom: 22vh; + text-align: center; + color: #000000; + padding: 3px 3px 3px 3px; + } + + .main-message p{ + font-size: 0.73rem; + } + + .main-message a{ + font-size: 0.8rem; + } + + .box-section { + margin-top: -55.1vw; + margin-bottom: -10px; + } + + .box { + margin-top: 25px; + height: 16rem; + width: 45%; + padding-top: 15px; + } + + .box-image { + height: 22vh; + margin-top: 0.5rem; + margin-bottom: 0.5rem; + } + + .box-content h2 { + font-size: 0.8rem; + } + + .box-content a { + font-size: 12px; + } + + .squad-box-image{ + height: 9vh; + background-size:cover; + } + + .squad-box-content{ + margin-bottom: -20px; + } + + .squad-box-content p{ + font-size: 0.5rem; + + } + + .push{ + margin-top: 2rem; + } + + .pannel1{ + height: 37px; + font-size: 0.65rem; + } + + .pannel2{ + height: 300px; + } + + .pannel2 p{ + font-size: 0.9rem; + font-weight: 600; + } + + .pannel2 a{ + color: #ffffff; + text-decoration: none; + font-size: 0.7rem; + } + + ul{ + margin-top: 40px; + } + + .big{ + display: none; + } + + ul a{ + padding-top: 15px; + display: block; + color: #dddddd; + } + .pannel3{ + height: 50px; + } + + .foot-logo{ + margin-top: 20px; + background-size: contain; + background-repeat: no-repeat; + width: 100px; + } + + .pannel4{ + height: 80px; + background-color:#19222c; + color: #ffffff; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + .redirect a{ + text-decoration: none; + font-size: 0.7rem; + color: #ffffff; + padding-left: 15px; + } + + .copy-right { + margin-top: 5px; + font-size: 0.65rem; + text-align: center; + } + + .copy-right span{ + font-size: 0.9rem; + font-weight: 600; + } +} + +@media (max-width: 480px) { + + *{ + margin: 0; + padding: 0; + border: border-box; + font-family: Arial; + } + + .navbar{ + font-size: 10px; + } + + .amazon-logo{ + height: 37px; + margin-left: 4px; + } + + .logo{ + background-image: url("assets/smallImage.png"); + background-size: contain; + background-repeat: no-repeat; + margin-bottom: -15px; + height: 35px; + width: 35px; + } + + .add{ + margin-left: -3px; + } + + .address{ + width: 30px; + margin-right: 10px; + } + + .first-add{ + font-size: 0.4rem; + margin-left: 1px; + } + + .location{ + font-size: 0.7rem; + margin-left: 2px; + } + + .icon-location i{ + display: none; + } + + .select{ + width: 20px; + font-size: 9px; + } + + .search-box{ + height: 30px; + } + + .search-box:hover{ + border: 2px solid orange; + border-radius: 5px; + } + + .search-box:active{ + border: 2px solid orange; + border-radius: 5px; + } + + .search-input{ + font-size: 0.7rem; + } + + .search-input::placeholder{ + font-size: 0.6rem; + } + + .search-icon{ + font-size: 16px; + } + + .language{ + display: none; + } + + .account{ + margin-left: 8px; + } + + .second-line{ + font-size: 10px; + } + + .order{ + height: 20px; + } + + .gu{ + margin-top: 5px; + } + + .account span, .order span{ + display: none; + } + + .cart{ + height: 25px; + } + + .cartlogo{ + height: 20px; + width: 20px; + } + + .ghu{ + margin-bottom: 10px; + } + + .options a{ + font-size: 10px; + margin-left: 5px; + } + + .all{ + margin-right: -8px; + } + + .all i{ + font-size: 12px; + } + + .all p{ + font-size: 0.6rem; + padding-left: 5px; + padding-top: 3px; + font-weight: 700; + } + + .main-section { + height: 200px; + margin-bottom: 180px; + } + + .main-message { + width: 67%; + border-radius: 5px; + height: 25px; + margin-bottom: 6vh; + text-align: center; + color: #000000; + padding: 3px 3px 3px 3px; + z-index: 3; + } + + .main-message p{ + font-size: 0.5rem; + } + + .main-message a{ + font-size: 0.55rem; + } + + .box-section { + margin-top: -50.1vw; + margin-bottom: -10px; + } + + .box { + margin-top: 15px; + height: 16rem; + width: 45%; + padding-top: 15px; + } + + .box-image { + height: 22vh; + margin-top: 0.5rem; + margin-bottom: 0.5rem; + } + + .box-content h2 { + font-size: 0.8rem; + } + + .box-content a { + font-size: 12px; + } + + .squad-box-image{ + height: 9vh; + background-size:cover; + } + + .squad-box-content{ + margin-bottom: -20px; + } + + .squad-box-content p{ + font-size: 0.5rem; + + } + + .push{ + margin-top: 2rem; + } + + .pannel1{ + height: 37px; + font-size: 0.65rem; + } + + .pannel2{ + height: 300px; + } + + .pannel2 p{ + font-size: 0.57rem; + font-weight: 600; + } + + .pannel2 a{ + color: #ffffff; + text-decoration: none; + font-size: 0.4rem; + } + + ul{ + margin-top: 40px; + } + + .big{ + display: none; + } + + ul a{ + padding-top: 15px; + display: block; + color: #dddddd; + } + + .pannel3{ + height: 60px; + } + + .foot-logo{ + background-image: url("assets/footerLogo.png"); + margin-top: 28px; + background-size: contain; + background-repeat: no-repeat; + width: 100px; + } + + .pannel4{ + height: 60px; + background-color:#19222c; + color: #ffffff; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + .redirect a{ + text-decoration: none; + font-size: 0.55rem; + color: #ffffff; + padding-left: 15px; + } + + .copy-right { + margin-top: 5px; + margin-bottom: 7px; + font-size: 0.58rem; + text-align: center; + } + + .copy-right span{ + font-size: 0.8rem; + font-weight: 600; + } +} diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/426x294_Discovery.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/426x294_Discovery.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/426x294_Discovery.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/426x294_Discovery.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/426x294_MANORAMAMAX.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/426x294_MANORAMAMAX.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/426x294_MANORAMAMAX.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/426x294_MANORAMAMAX.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Amc.png b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Amc.png similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Amc.png rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Amc.png diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Docubay-426X2947_V1.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Docubay-426X2947_V1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Docubay-426X2947_V1.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Docubay-426X2947_V1.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Erosnow-426X2948_V1.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Erosnow-426X2948_V1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Erosnow-426X2948_V1.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Erosnow-426X2948_V1.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Hayu.png b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Hayu.png similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Hayu.png rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Hayu.png diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/LionsgatePlay-426X2946_V1.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/LionsgatePlay-426X2946_V1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/LionsgatePlay-426X2946_V1.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/LionsgatePlay-426X2946_V1.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Logo-min.png b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Logo-min.png similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Logo-min.png rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Logo-min.png diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Mubi-426X2946_V1.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Mubi-426X2946_V1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Mubi-426X2946_V1.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Mubi-426X2946_V1.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Stingray.png b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Stingray.png similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Stingray.png rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Stingray.png diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Vrott.png b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Vrott.png similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/Vrott.png rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/Vrott.png diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/bg-hero.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/bg-hero.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/bg-hero.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/bg-hero.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/hoichoi-426X2946_V1.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/hoichoi-426X2946_V1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/hoichoi-426X2946_V1.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/hoichoi-426X2946_V1.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/iWonder.png b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/iWonder.png similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/iWonder.png rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/iWonder.png diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/section1-bg.jpg b/src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/section1-bg.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/Images/section1-bg.jpg rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/Images/section1-bg.jpg diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/README.md b/src/app/(category)/frontend/(projects)/amazon-prime-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/README.md rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/README.md diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/index.html b/src/app/(category)/frontend/(projects)/amazon-prime-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/index.html rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/index.html diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/amazon-prime-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Amazon-Prime-Clone/style.css b/src/app/(category)/frontend/(projects)/amazon-prime-clone/style.css similarity index 100% rename from Front-end-Projects/Intermediate/Amazon-Prime-Clone/style.css rename to src/app/(category)/frontend/(projects)/amazon-prime-clone/style.css diff --git a/Front-end-Projects/Basic/Animated-Tea-Cup/README.md b/src/app/(category)/frontend/(projects)/animated-tea-cup/README.md similarity index 98% rename from Front-end-Projects/Basic/Animated-Tea-Cup/README.md rename to src/app/(category)/frontend/(projects)/animated-tea-cup/README.md index bb00ec41..1187ee18 100644 --- a/Front-end-Projects/Basic/Animated-Tea-Cup/README.md +++ b/src/app/(category)/frontend/(projects)/animated-tea-cup/README.md @@ -1,76 +1,76 @@ -

💥 Animated Tea Cup 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - - - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
- -

This project is used for learning animations by doing CSS Art

-
- - - - -## :zap: How to run it? 🕹️ - - - -- Clone the repo -- Navigate to directory -- Run `index.html` - - - -## :zap: Screenshots 📸 - - -![Img](./screenshot.webp) - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Amruta Jayanti 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 Animated Tea Cup 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + + + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+ +

This project is used for learning animations by doing CSS Art

+
+ + + + +## :zap: How to run it? 🕹️ + + + +- Clone the repo +- Navigate to directory +- Run `index.html` + + + +## :zap: Screenshots 📸 + + +![Img](./screenshot.webp) + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Amruta Jayanti 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Front-end-Projects/Basic/Animated-Tea-Cup/index.html b/src/app/(category)/frontend/(projects)/animated-tea-cup/index.html similarity index 100% rename from Front-end-Projects/Basic/Animated-Tea-Cup/index.html rename to src/app/(category)/frontend/(projects)/animated-tea-cup/index.html diff --git a/Front-end-Projects/Basic/Animated-Tea-Cup/screenshot.webp b/src/app/(category)/frontend/(projects)/animated-tea-cup/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Animated-Tea-Cup/screenshot.webp rename to src/app/(category)/frontend/(projects)/animated-tea-cup/screenshot.webp diff --git a/Front-end-Projects/Basic/Animated-Tea-Cup/style.css b/src/app/(category)/frontend/(projects)/animated-tea-cup/style.css similarity index 94% rename from Front-end-Projects/Basic/Animated-Tea-Cup/style.css rename to src/app/(category)/frontend/(projects)/animated-tea-cup/style.css index 4cc1b581..ee55ad76 100644 --- a/Front-end-Projects/Basic/Animated-Tea-Cup/style.css +++ b/src/app/(category)/frontend/(projects)/animated-tea-cup/style.css @@ -1,131 +1,131 @@ -body -{ - background: #3a0000; - margin: 0; - padding: 0; -} - -.speech-bubble { - position: absolute; - bottom: 20px; - left: 50%; - transform: translateX(-50%); - background: #00aabb; - border-radius: 0.4em; - padding: 10px 20px; - color: white; - max-width: 200px; - text-align: center; -} - - -h1 -{ - text-align: center; -} -.cup -{ - position: absolute; - top:50%; - left:50%; - transform: translate(-50%,-50%); - width: 150px; - height: 160px; - background: #fff; - border-bottom-left-radius: 20px; - border-bottom-right-radius: 20px; -} -.cup::before -{ - content:''; - position: absolute; - top: 0; - left:0; - height: 30px; - width:100%; - border-radius: 50%; - background: #c16d31; - border:7px solid #fff; - box-sizing: border-box; - transform: translateY(-50%); - box-shadow: inset 0 0 15px rgba(0,0,0,0.5); -} -.cup::after -{ - content:''; - position: absolute; - top: 48%; - right: -50px; - height: 96px; - width:80px; - border-radius: 50%; - background: transparent; - border:12px solid #fff; - box-sizing: border-box; - transform: translateY(-50%); -} -.plate -{ - width :250px; - height:30px; - border-bottom-left-radius: 40%; - border-bottom-right-radius: 40%; - background: #fff; - position: absolute; - top:161px; - transform: translateX(-50px); -} -ul -{ - margin:0; - padding: 0; - position: absolute; - top: -50%; - transform: translateX(10%); - width:100%; -} -ul li -{ - list-style: none; - width:2px; - height: 40px; - background: #fff; - float: left; - margin:10px; - animation: animate 2s infinite linear; -} - -@keyframes animate { - 0%{ - transform: translateY(0); - opacity: 1; - filter: blur(3px); - } - 100% - { - transform: translateY(-80px); - opacity:0; - filter: blur(5px); - } - -} -ul li:nth-child(1) -{ - animation-delay: .2s; -} -ul li:nth-child(2) -{ - animation-delay: .4s; -} -ul li:nth-child(3) -{ - animation-delay: .6s; -} -ul li:nth-child(4) -{ - animation-delay: .4s; -} -ul li:nth-child(5) -{ - animation-delay: .2s; +body +{ + background: #3a0000; + margin: 0; + padding: 0; +} + +.speech-bubble { + position: absolute; + bottom: 20px; + left: 50%; + transform: translateX(-50%); + background: #00aabb; + border-radius: 0.4em; + padding: 10px 20px; + color: white; + max-width: 200px; + text-align: center; +} + + +h1 +{ + text-align: center; +} +.cup +{ + position: absolute; + top:50%; + left:50%; + transform: translate(-50%,-50%); + width: 150px; + height: 160px; + background: #fff; + border-bottom-left-radius: 20px; + border-bottom-right-radius: 20px; +} +.cup::before +{ + content:''; + position: absolute; + top: 0; + left:0; + height: 30px; + width:100%; + border-radius: 50%; + background: #c16d31; + border:7px solid #fff; + box-sizing: border-box; + transform: translateY(-50%); + box-shadow: inset 0 0 15px rgba(0,0,0,0.5); +} +.cup::after +{ + content:''; + position: absolute; + top: 48%; + right: -50px; + height: 96px; + width:80px; + border-radius: 50%; + background: transparent; + border:12px solid #fff; + box-sizing: border-box; + transform: translateY(-50%); +} +.plate +{ + width :250px; + height:30px; + border-bottom-left-radius: 40%; + border-bottom-right-radius: 40%; + background: #fff; + position: absolute; + top:161px; + transform: translateX(-50px); +} +ul +{ + margin:0; + padding: 0; + position: absolute; + top: -50%; + transform: translateX(10%); + width:100%; +} +ul li +{ + list-style: none; + width:2px; + height: 40px; + background: #fff; + float: left; + margin:10px; + animation: animate 2s infinite linear; +} + +@keyframes animate { + 0%{ + transform: translateY(0); + opacity: 1; + filter: blur(3px); + } + 100% + { + transform: translateY(-80px); + opacity:0; + filter: blur(5px); + } + +} +ul li:nth-child(1) +{ + animation-delay: .2s; +} +ul li:nth-child(2) +{ + animation-delay: .4s; +} +ul li:nth-child(3) +{ + animation-delay: .6s; +} +ul li:nth-child(4) +{ + animation-delay: .4s; +} +ul li:nth-child(5) +{ + animation-delay: .2s; } \ No newline at end of file diff --git a/Front-end-Projects/Intermediate/Apple-Clone/README.md b/src/app/(category)/frontend/(projects)/apple-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/README.md rename to src/app/(category)/frontend/(projects)/apple-clone/README.md diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/apple-logoo.jpg b/src/app/(category)/frontend/(projects)/apple-clone/assests/apple-logoo.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/apple-logoo.jpg rename to src/app/(category)/frontend/(projects)/apple-clone/assests/apple-logoo.jpg diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/blue.jpg b/src/app/(category)/frontend/(projects)/apple-clone/assests/blue.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/blue.jpg rename to src/app/(category)/frontend/(projects)/apple-clone/assests/blue.jpg diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/dynamicp.jpg b/src/app/(category)/frontend/(projects)/apple-clone/assests/dynamicp.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/dynamicp.jpg rename to src/app/(category)/frontend/(projects)/apple-clone/assests/dynamicp.jpg diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/enclosure.png b/src/app/(category)/frontend/(projects)/apple-clone/assests/enclosure.png similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/enclosure.png rename to src/app/(category)/frontend/(projects)/apple-clone/assests/enclosure.png diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/iconshield.png b/src/app/(category)/frontend/(projects)/apple-clone/assests/iconshield.png similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/iconshield.png rename to src/app/(category)/frontend/(projects)/apple-clone/assests/iconshield.png diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/iphone15.jpg b/src/app/(category)/frontend/(projects)/apple-clone/assests/iphone15.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/iphone15.jpg rename to src/app/(category)/frontend/(projects)/apple-clone/assests/iphone15.jpg diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/phones.jpg b/src/app/(category)/frontend/(projects)/apple-clone/assests/phones.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/phones.jpg rename to src/app/(category)/frontend/(projects)/apple-clone/assests/phones.jpg diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/photo.png b/src/app/(category)/frontend/(projects)/apple-clone/assests/photo.png similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/photo.png rename to src/app/(category)/frontend/(projects)/apple-clone/assests/photo.png diff --git a/Front-end-Projects/Intermediate/Apple-Clone/assests/water.png b/src/app/(category)/frontend/(projects)/apple-clone/assests/water.png similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/assests/water.png rename to src/app/(category)/frontend/(projects)/apple-clone/assests/water.png diff --git a/Front-end-Projects/Intermediate/Apple-Clone/index.html b/src/app/(category)/frontend/(projects)/apple-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/index.html rename to src/app/(category)/frontend/(projects)/apple-clone/index.html diff --git a/Front-end-Projects/Intermediate/Apple-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/apple-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/apple-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Apple-Clone/styles.css b/src/app/(category)/frontend/(projects)/apple-clone/styles.css similarity index 100% rename from Front-end-Projects/Intermediate/Apple-Clone/styles.css rename to src/app/(category)/frontend/(projects)/apple-clone/styles.css diff --git a/Front-end-Projects/Basic/Biography-BR-Ambedkar/images/Dr._Bhimrao_Ambedkar.jpg b/src/app/(category)/frontend/(projects)/biography-br-ambedkar/images/Dr._Bhimrao_Ambedkar.jpg similarity index 100% rename from Front-end-Projects/Basic/Biography-BR-Ambedkar/images/Dr._Bhimrao_Ambedkar.jpg rename to src/app/(category)/frontend/(projects)/biography-br-ambedkar/images/Dr._Bhimrao_Ambedkar.jpg diff --git a/Front-end-Projects/Basic/Biography-BR-Ambedkar/index.html b/src/app/(category)/frontend/(projects)/biography-br-ambedkar/index.html similarity index 100% rename from Front-end-Projects/Basic/Biography-BR-Ambedkar/index.html rename to src/app/(category)/frontend/(projects)/biography-br-ambedkar/index.html diff --git a/Front-end-Projects/Basic/Biography-BR-Ambedkar/readme.md b/src/app/(category)/frontend/(projects)/biography-br-ambedkar/readme.md similarity index 100% rename from Front-end-Projects/Basic/Biography-BR-Ambedkar/readme.md rename to src/app/(category)/frontend/(projects)/biography-br-ambedkar/readme.md diff --git a/Front-end-Projects/Basic/Biography-BR-Ambedkar/screenshot.webp b/src/app/(category)/frontend/(projects)/biography-br-ambedkar/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Biography-BR-Ambedkar/screenshot.webp rename to src/app/(category)/frontend/(projects)/biography-br-ambedkar/screenshot.webp diff --git a/Front-end-Projects/Basic/Biography-BR-Ambedkar/styles.css b/src/app/(category)/frontend/(projects)/biography-br-ambedkar/styles.css similarity index 100% rename from Front-end-Projects/Basic/Biography-BR-Ambedkar/styles.css rename to src/app/(category)/frontend/(projects)/biography-br-ambedkar/styles.css diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/1.png b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/1.png similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/1.png rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/1.png diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/3.jpg b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/3.jpg similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/3.jpg rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/3.jpg diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/4.jpg b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/4.jpg similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/4.jpg rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/4.jpg diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/Picture2.jpg b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/Picture2.jpg similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/Picture2.jpg rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/Picture2.jpg diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/Picture3.jpg b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/Picture3.jpg similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/Picture3.jpg rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/Picture3.jpg diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/Picture4.jpg b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/Picture4.jpg similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/Picture4.jpg rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/Picture4.jpg diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/Picture4.png b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/Picture4.png similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/Picture4.png rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/Picture4.png diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/favicon.png b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/favicon.png similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/favicon.png rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/favicon.png diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/gandhiji.jpg b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/gandhiji.jpg similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/images/gandhiji.jpg rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/images/gandhiji.jpg diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/index.html b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/index.html similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/index.html rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/index.html diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/readme.md b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/readme.md similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/readme.md rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/readme.md diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/screenshot.webp b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/screenshot.webp rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/screenshot.webp diff --git a/Front-end-Projects/Basic/Biography-Mahatma-Gandhi/style.css b/src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/style.css similarity index 100% rename from Front-end-Projects/Basic/Biography-Mahatma-Gandhi/style.css rename to src/app/(category)/frontend/(projects)/biography-mahatma-gandhi/style.css diff --git a/Front-end-Projects/Basic/Blood-Donation-Form/README.md b/src/app/(category)/frontend/(projects)/blood-donation-form/README.md similarity index 100% rename from Front-end-Projects/Basic/Blood-Donation-Form/README.md rename to src/app/(category)/frontend/(projects)/blood-donation-form/README.md diff --git a/Front-end-Projects/Basic/Blood-Donation-Form/icon.png b/src/app/(category)/frontend/(projects)/blood-donation-form/icon.png similarity index 100% rename from Front-end-Projects/Basic/Blood-Donation-Form/icon.png rename to src/app/(category)/frontend/(projects)/blood-donation-form/icon.png diff --git a/Front-end-Projects/Basic/Blood-Donation-Form/images.jpg b/src/app/(category)/frontend/(projects)/blood-donation-form/images.jpg similarity index 100% rename from Front-end-Projects/Basic/Blood-Donation-Form/images.jpg rename to src/app/(category)/frontend/(projects)/blood-donation-form/images.jpg diff --git a/Front-end-Projects/Basic/Blood-Donation-Form/index.html b/src/app/(category)/frontend/(projects)/blood-donation-form/index.html similarity index 100% rename from Front-end-Projects/Basic/Blood-Donation-Form/index.html rename to src/app/(category)/frontend/(projects)/blood-donation-form/index.html diff --git a/Front-end-Projects/Basic/Blood-Donation-Form/screenshot.webp b/src/app/(category)/frontend/(projects)/blood-donation-form/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Blood-Donation-Form/screenshot.webp rename to src/app/(category)/frontend/(projects)/blood-donation-form/screenshot.webp diff --git a/Front-end-Projects/Basic/Blood-Donation-Form/styles.css b/src/app/(category)/frontend/(projects)/blood-donation-form/styles.css similarity index 100% rename from Front-end-Projects/Basic/Blood-Donation-Form/styles.css rename to src/app/(category)/frontend/(projects)/blood-donation-form/styles.css diff --git a/Front-end-Projects/Intermediate/Book-Website/README.md b/src/app/(category)/frontend/(projects)/book-website/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/README.md rename to src/app/(category)/frontend/(projects)/book-website/README.md diff --git a/Front-end-Projects/Intermediate/Book-Website/images/background.png b/src/app/(category)/frontend/(projects)/book-website/images/background.png similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/images/background.png rename to src/app/(category)/frontend/(projects)/book-website/images/background.png diff --git a/Front-end-Projects/Intermediate/Book-Website/images/book1.png b/src/app/(category)/frontend/(projects)/book-website/images/book1.png similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/images/book1.png rename to src/app/(category)/frontend/(projects)/book-website/images/book1.png diff --git a/Front-end-Projects/Intermediate/Book-Website/images/book2.png b/src/app/(category)/frontend/(projects)/book-website/images/book2.png similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/images/book2.png rename to src/app/(category)/frontend/(projects)/book-website/images/book2.png diff --git a/Front-end-Projects/Intermediate/Book-Website/images/book3.png b/src/app/(category)/frontend/(projects)/book-website/images/book3.png similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/images/book3.png rename to src/app/(category)/frontend/(projects)/book-website/images/book3.png diff --git a/Front-end-Projects/Intermediate/Book-Website/images/book4.png b/src/app/(category)/frontend/(projects)/book-website/images/book4.png similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/images/book4.png rename to src/app/(category)/frontend/(projects)/book-website/images/book4.png diff --git a/Front-end-Projects/Intermediate/Book-Website/images/book5.png b/src/app/(category)/frontend/(projects)/book-website/images/book5.png similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/images/book5.png rename to src/app/(category)/frontend/(projects)/book-website/images/book5.png diff --git a/Front-end-Projects/Intermediate/Book-Website/images/logo.png b/src/app/(category)/frontend/(projects)/book-website/images/logo.png similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/images/logo.png rename to src/app/(category)/frontend/(projects)/book-website/images/logo.png diff --git a/Front-end-Projects/Intermediate/Book-Website/images/mainbook.png b/src/app/(category)/frontend/(projects)/book-website/images/mainbook.png similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/images/mainbook.png rename to src/app/(category)/frontend/(projects)/book-website/images/mainbook.png diff --git a/Front-end-Projects/Intermediate/Book-Website/index.html b/src/app/(category)/frontend/(projects)/book-website/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/index.html rename to src/app/(category)/frontend/(projects)/book-website/index.html diff --git a/Front-end-Projects/Intermediate/Book-Website/screenshot.webp b/src/app/(category)/frontend/(projects)/book-website/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/screenshot.webp rename to src/app/(category)/frontend/(projects)/book-website/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Book-Website/style.css b/src/app/(category)/frontend/(projects)/book-website/style.css similarity index 100% rename from Front-end-Projects/Intermediate/Book-Website/style.css rename to src/app/(category)/frontend/(projects)/book-website/style.css diff --git a/Front-end-Projects/Basic/Facebook-Login-Page/README.md b/src/app/(category)/frontend/(projects)/facebook-login-page/README.md similarity index 100% rename from Front-end-Projects/Basic/Facebook-Login-Page/README.md rename to src/app/(category)/frontend/(projects)/facebook-login-page/README.md diff --git a/Front-end-Projects/Basic/Facebook-Login-Page/images/favicon.png b/src/app/(category)/frontend/(projects)/facebook-login-page/images/favicon.png similarity index 100% rename from Front-end-Projects/Basic/Facebook-Login-Page/images/favicon.png rename to src/app/(category)/frontend/(projects)/facebook-login-page/images/favicon.png diff --git a/Front-end-Projects/Basic/Facebook-Login-Page/images/fb.svg b/src/app/(category)/frontend/(projects)/facebook-login-page/images/fb.svg similarity index 100% rename from Front-end-Projects/Basic/Facebook-Login-Page/images/fb.svg rename to src/app/(category)/frontend/(projects)/facebook-login-page/images/fb.svg diff --git a/Front-end-Projects/Basic/Facebook-Login-Page/index.html b/src/app/(category)/frontend/(projects)/facebook-login-page/index.html similarity index 100% rename from Front-end-Projects/Basic/Facebook-Login-Page/index.html rename to src/app/(category)/frontend/(projects)/facebook-login-page/index.html diff --git a/Front-end-Projects/Basic/Facebook-Login-Page/screenshot.webp b/src/app/(category)/frontend/(projects)/facebook-login-page/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Facebook-Login-Page/screenshot.webp rename to src/app/(category)/frontend/(projects)/facebook-login-page/screenshot.webp diff --git a/Front-end-Projects/Basic/Feedback-Form/READMe.md b/src/app/(category)/frontend/(projects)/feedback-form/READMe.md similarity index 100% rename from Front-end-Projects/Basic/Feedback-Form/READMe.md rename to src/app/(category)/frontend/(projects)/feedback-form/READMe.md diff --git a/Front-end-Projects/Basic/Feedback-Form/index.html b/src/app/(category)/frontend/(projects)/feedback-form/index.html similarity index 100% rename from Front-end-Projects/Basic/Feedback-Form/index.html rename to src/app/(category)/frontend/(projects)/feedback-form/index.html diff --git a/Front-end-Projects/Basic/Feedback-Form/screenshot.webp b/src/app/(category)/frontend/(projects)/feedback-form/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Feedback-Form/screenshot.webp rename to src/app/(category)/frontend/(projects)/feedback-form/screenshot.webp diff --git a/Front-end-Projects/Basic/Feedback-Form/styles.css b/src/app/(category)/frontend/(projects)/feedback-form/styles.css similarity index 100% rename from Front-end-Projects/Basic/Feedback-Form/styles.css rename to src/app/(category)/frontend/(projects)/feedback-form/styles.css diff --git a/Front-end-Projects/Basic/FlexFlow/README.md b/src/app/(category)/frontend/(projects)/flexflow/README.md similarity index 100% rename from Front-end-Projects/Basic/FlexFlow/README.md rename to src/app/(category)/frontend/(projects)/flexflow/README.md diff --git a/Front-end-Projects/Basic/FlexFlow/gym.html b/src/app/(category)/frontend/(projects)/flexflow/gym.html similarity index 100% rename from Front-end-Projects/Basic/FlexFlow/gym.html rename to src/app/(category)/frontend/(projects)/flexflow/gym.html diff --git a/Front-end-Projects/Basic/FlexFlow/logo.png b/src/app/(category)/frontend/(projects)/flexflow/logo.png similarity index 100% rename from Front-end-Projects/Basic/FlexFlow/logo.png rename to src/app/(category)/frontend/(projects)/flexflow/logo.png diff --git a/Front-end-Projects/Basic/FlexFlow/screenshot.webp b/src/app/(category)/frontend/(projects)/flexflow/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/FlexFlow/screenshot.webp rename to src/app/(category)/frontend/(projects)/flexflow/screenshot.webp diff --git a/Front-end-Projects/Basic/FlexFlow/style.css b/src/app/(category)/frontend/(projects)/flexflow/style.css similarity index 100% rename from Front-end-Projects/Basic/FlexFlow/style.css rename to src/app/(category)/frontend/(projects)/flexflow/style.css diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/README.md b/src/app/(category)/frontend/(projects)/flipkart-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/README.md rename to src/app/(category)/frontend/(projects)/flipkart-clone/README.md diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/e1.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/e1.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/e1.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/e1.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/e2.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/e2.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/e2.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/e2.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/e3.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/e3.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/e3.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/e3.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/e4.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/e4.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/e4.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/e4.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/e5.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/e5.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/e5.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/e5.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/e6.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/e6.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/e6.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/e6.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/e7.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/e7.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/e7.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/e7.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/f1.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/f1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/f1.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/f1.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/f2.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/f2.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/f2.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/f2.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/f3..PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/f3..PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/f3..PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/f3..PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/f3.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/f3.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/f3.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/f3.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/f4.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/f4.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/f4.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/f4.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/g1.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/g1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/g1.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/g1.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/g2.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/g2.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/g2.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/g2.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/g3.jpeg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/g3.jpeg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/g3.jpeg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/g3.jpeg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/g3.png b/src/app/(category)/frontend/(projects)/flipkart-clone/images/g3.png similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/g3.png rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/g3.png diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/g4.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/g4.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/g4.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/g4.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/g4.png b/src/app/(category)/frontend/(projects)/flipkart-clone/images/g4.png similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/g4.png rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/g4.png diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/h1.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/h1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/h1.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/h1.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/h2.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/h2.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/h2.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/h2.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/h3.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/h3.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/h3.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/h3.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/h4.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/h4.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/h4.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/h4.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/head2.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/head2.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/head2.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/head2.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/head3.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/head3.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/head3.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/head3.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/head4.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/head4.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/head4.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/head4.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/head5.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/head5.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/head5.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/head5.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/head6.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/head6.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/head6.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/head6.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/head7.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/head7.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/head7.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/head7.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/head8.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/head8.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/head8.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/head8.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/head9.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/head9.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/head9.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/head9.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/i1.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/i1.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/i1.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/i1.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/i2.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/i2.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/i2.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/i2.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/i3.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/i3.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/i3.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/i3.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/i4.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/i4.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/i4.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/i4.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/i5.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/i5.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/i5.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/i5.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/i6.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/i6.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/i6.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/i6.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/img1.png b/src/app/(category)/frontend/(projects)/flipkart-clone/images/img1.png similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/img1.png rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/img1.png diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/img2.png b/src/app/(category)/frontend/(projects)/flipkart-clone/images/img2.png similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/img2.png rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/img2.png diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/img3.png b/src/app/(category)/frontend/(projects)/flipkart-clone/images/img3.png similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/img3.png rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/img3.png diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/img4.png b/src/app/(category)/frontend/(projects)/flipkart-clone/images/img4.png similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/img4.png rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/img4.png diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/img5.jpeg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/img5.jpeg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/img5.jpeg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/img5.jpeg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/img6.jpg b/src/app/(category)/frontend/(projects)/flipkart-clone/images/img6.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/img6.jpg rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/img6.jpg diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/img7.png b/src/app/(category)/frontend/(projects)/flipkart-clone/images/img7.png similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/img7.png rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/img7.png diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/img8.png b/src/app/(category)/frontend/(projects)/flipkart-clone/images/img8.png similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/img8.png rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/img8.png diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/images/screenshot.PNG b/src/app/(category)/frontend/(projects)/flipkart-clone/images/screenshot.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/images/screenshot.PNG rename to src/app/(category)/frontend/(projects)/flipkart-clone/images/screenshot.PNG diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/index.html b/src/app/(category)/frontend/(projects)/flipkart-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/index.html rename to src/app/(category)/frontend/(projects)/flipkart-clone/index.html diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/flipkart-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/flipkart-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Flipkart-Clone/style.css b/src/app/(category)/frontend/(projects)/flipkart-clone/style.css similarity index 100% rename from Front-end-Projects/Intermediate/Flipkart-Clone/style.css rename to src/app/(category)/frontend/(projects)/flipkart-clone/style.css diff --git a/Front-end-Projects/Basic/Google-Drive-Clone/README.md b/src/app/(category)/frontend/(projects)/google-drive-clone/README.md similarity index 100% rename from Front-end-Projects/Basic/Google-Drive-Clone/README.md rename to src/app/(category)/frontend/(projects)/google-drive-clone/README.md diff --git a/Front-end-Projects/Basic/Google-Drive-Clone/index.html b/src/app/(category)/frontend/(projects)/google-drive-clone/index.html similarity index 100% rename from Front-end-Projects/Basic/Google-Drive-Clone/index.html rename to src/app/(category)/frontend/(projects)/google-drive-clone/index.html diff --git a/Front-end-Projects/Basic/Google-Drive-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/google-drive-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Google-Drive-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/google-drive-clone/screenshot.webp diff --git a/Front-end-Projects/Basic/Google-Drive-Clone/style.css b/src/app/(category)/frontend/(projects)/google-drive-clone/style.css similarity index 100% rename from Front-end-Projects/Basic/Google-Drive-Clone/style.css rename to src/app/(category)/frontend/(projects)/google-drive-clone/style.css diff --git a/Front-end-Projects/Basic/Google-Search-Clone/README.md b/src/app/(category)/frontend/(projects)/google-search-clone/README.md similarity index 100% rename from Front-end-Projects/Basic/Google-Search-Clone/README.md rename to src/app/(category)/frontend/(projects)/google-search-clone/README.md diff --git a/Front-end-Projects/Basic/Google-Search-Clone/advsrch.html b/src/app/(category)/frontend/(projects)/google-search-clone/advsrch.html similarity index 96% rename from Front-end-Projects/Basic/Google-Search-Clone/advsrch.html rename to src/app/(category)/frontend/(projects)/google-search-clone/advsrch.html index a28a3621..c251a721 100644 --- a/Front-end-Projects/Basic/Google-Search-Clone/advsrch.html +++ b/src/app/(category)/frontend/(projects)/google-search-clone/advsrch.html @@ -1,62 +1,62 @@ - - - - - - Google - - - - - - - -

- Advanced Search -

-
-
-

Find pages with...

-
-
-

all these words:

-
- -
-
-
-

this exact word or phrase:

-
- -
-
-
-

any of these words:

-
- -
-
-
-

none of these words:

-
- -
-
-
- - -
- - -
- - + + + + + + Google + + + + + + + +

+ Advanced Search +

+
+
+

Find pages with...

+
+
+

all these words:

+
+ +
+
+
+

this exact word or phrase:

+
+ +
+
+
+

any of these words:

+
+ +
+
+
+

none of these words:

+
+ +
+
+
+ + +
+ + +
+ + diff --git a/Front-end-Projects/Basic/Google-Search-Clone/favi.png b/src/app/(category)/frontend/(projects)/google-search-clone/favi.png similarity index 100% rename from Front-end-Projects/Basic/Google-Search-Clone/favi.png rename to src/app/(category)/frontend/(projects)/google-search-clone/favi.png diff --git a/Front-end-Projects/Basic/Google-Search-Clone/googleimage.png b/src/app/(category)/frontend/(projects)/google-search-clone/googleimage.png similarity index 100% rename from Front-end-Projects/Basic/Google-Search-Clone/googleimage.png rename to src/app/(category)/frontend/(projects)/google-search-clone/googleimage.png diff --git a/Front-end-Projects/Basic/Google-Search-Clone/home.jpg b/src/app/(category)/frontend/(projects)/google-search-clone/home.jpg similarity index 100% rename from Front-end-Projects/Basic/Google-Search-Clone/home.jpg rename to src/app/(category)/frontend/(projects)/google-search-clone/home.jpg diff --git a/Front-end-Projects/Basic/Google-Search-Clone/imagesrch.html b/src/app/(category)/frontend/(projects)/google-search-clone/imagesrch.html similarity index 96% rename from Front-end-Projects/Basic/Google-Search-Clone/imagesrch.html rename to src/app/(category)/frontend/(projects)/google-search-clone/imagesrch.html index 059bf9b4..efbf5e3f 100644 --- a/Front-end-Projects/Basic/Google-Search-Clone/imagesrch.html +++ b/src/app/(category)/frontend/(projects)/google-search-clone/imagesrch.html @@ -1,30 +1,30 @@ - - - - - Google Images - - - - - - -
- - -
- -
-
- - + + + + + Google Images + + + + + + +
+ + +
+ +
+
+ + diff --git a/Front-end-Projects/Basic/Google-Search-Clone/index.html b/src/app/(category)/frontend/(projects)/google-search-clone/index.html similarity index 100% rename from Front-end-Projects/Basic/Google-Search-Clone/index.html rename to src/app/(category)/frontend/(projects)/google-search-clone/index.html diff --git a/Front-end-Projects/Basic/Google-Search-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/google-search-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Google-Search-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/google-search-clone/screenshot.webp diff --git a/Front-end-Projects/Basic/Google-Search-Clone/style.css b/src/app/(category)/frontend/(projects)/google-search-clone/style.css similarity index 94% rename from Front-end-Projects/Basic/Google-Search-Clone/style.css rename to src/app/(category)/frontend/(projects)/google-search-clone/style.css index 51dbc28c..ac983316 100644 --- a/Front-end-Projects/Basic/Google-Search-Clone/style.css +++ b/src/app/(category)/frontend/(projects)/google-search-clone/style.css @@ -1,99 +1,99 @@ -.img-adv-search{ - display: flex; - justify-content: right; - list-style: none; -} -.img-adv{ - margin: 8px; -} -.home-logo{ - display: flex; - align-items: center; - justify-content: center; -} -a:link,a:hover,a:visited,a:active{ - color: black; - text-decoration: none; -} -/*Googles own css */ -.srch-btn{ - margin-top: 30px; - background-color: #f8f9fa; - border: 1px solid #f8f9fa; - border-radius: 4px; - color: #3c4043; - font-family: Roboto,arial , sans-serif; - font-size: 14px; - margin: 11px 4px; - padding: 0 16px; - line-height: 27px; - height: 36px; - min-width: 54px; - text-align: center; - cursor: pointer; - user-select: none; -} -.srch-btn:hover{ - border-color: #d4d9dc; -} -.center{ - display: flex; - justify-content: center ; -} -.round-input{ - display: flex; - z-index: 3; - height: 44px; - background: #fff; - border: 1px solid #dfe1e5; - box-shadow: none; - border-radius: 24px; - margin: 0 auto; - width: calc(632px + 6px); - width: 544px; - max-width: 584px; - margin-top: 18px; -} - -.h1{ - color: #d93025; - font-size: 20px; - margin: 25px 35px; -} -.line{ - border-bottom: 1px solid #ebebeb; -} -.h2{ -font-size: 16px; - color: #333333; -} -.div-adv{ - margin: 55px; -} -.row-input{ - align-items: center; - margin-top: 20px; - display: flex; - flex-direction: row; - font-size: 13px; - vertical-align: middle; -} -.left{ - width: 200px; -} -.right{ - width: 380px; -} -.btn-adv{ - - display: flex; - justify-content: flex-end ; - width: 625px; - -} -.btn-advanced{ - box-shadow: none; - color: white; - background-color:#4d90fe; - border: 1px solid #3079ed; +.img-adv-search{ + display: flex; + justify-content: right; + list-style: none; +} +.img-adv{ + margin: 8px; +} +.home-logo{ + display: flex; + align-items: center; + justify-content: center; +} +a:link,a:hover,a:visited,a:active{ + color: black; + text-decoration: none; +} +/*Googles own css */ +.srch-btn{ + margin-top: 30px; + background-color: #f8f9fa; + border: 1px solid #f8f9fa; + border-radius: 4px; + color: #3c4043; + font-family: Roboto,arial , sans-serif; + font-size: 14px; + margin: 11px 4px; + padding: 0 16px; + line-height: 27px; + height: 36px; + min-width: 54px; + text-align: center; + cursor: pointer; + user-select: none; +} +.srch-btn:hover{ + border-color: #d4d9dc; +} +.center{ + display: flex; + justify-content: center ; +} +.round-input{ + display: flex; + z-index: 3; + height: 44px; + background: #fff; + border: 1px solid #dfe1e5; + box-shadow: none; + border-radius: 24px; + margin: 0 auto; + width: calc(632px + 6px); + width: 544px; + max-width: 584px; + margin-top: 18px; +} + +.h1{ + color: #d93025; + font-size: 20px; + margin: 25px 35px; +} +.line{ + border-bottom: 1px solid #ebebeb; +} +.h2{ +font-size: 16px; + color: #333333; +} +.div-adv{ + margin: 55px; +} +.row-input{ + align-items: center; + margin-top: 20px; + display: flex; + flex-direction: row; + font-size: 13px; + vertical-align: middle; +} +.left{ + width: 200px; +} +.right{ + width: 380px; +} +.btn-adv{ + + display: flex; + justify-content: flex-end ; + width: 625px; + +} +.btn-advanced{ + box-shadow: none; + color: white; + background-color:#4d90fe; + border: 1px solid #3079ed; } \ No newline at end of file diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/Hotstar.png b/src/app/(category)/frontend/(projects)/hotstar-clone/Hotstar.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/Hotstar.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/Hotstar.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/README.md b/src/app/(category)/frontend/(projects)/hotstar-clone/README.md similarity index 97% rename from Front-end-Projects/Intermediate/Hotstar-Clone/README.md rename to src/app/(category)/frontend/(projects)/hotstar-clone/README.md index 6cd0169e..a9d4e258 100644 --- a/Front-end-Projects/Intermediate/Hotstar-Clone/README.md +++ b/src/app/(category)/frontend/(projects)/hotstar-clone/README.md @@ -1,61 +1,61 @@ -

💥Hotstar Clone💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - -
- -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
- -

This project is a simple HTML Js and CSS implementation of a Hotstar website clone. It aims to replicate the basic structure and styling of the popular website Hotstar.

-
- - - -## :zap: How to run it? 🕹️ - -To run this project locally, follow these steps: - -1. Fork the repository. - -2. Clone the repository to your local machine: -git clone - -3. Open the project folder in your preferred code editor, now you can view website in live. - - - -## :zap: Screenshots 📸 - - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Aditi Jain 👦

-

- - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥Hotstar Clone💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + +
+ +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+ +

This project is a simple HTML Js and CSS implementation of a Hotstar website clone. It aims to replicate the basic structure and styling of the popular website Hotstar.

+
+ + + +## :zap: How to run it? 🕹️ + +To run this project locally, follow these steps: + +1. Fork the repository. + +2. Clone the repository to your local machine: +git clone + +3. Open the project folder in your preferred code editor, now you can view website in live. + + + +## :zap: Screenshots 📸 + + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Aditi Jain 👦

+

+ + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/add.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/add.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/add.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/add.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/disney.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/disney.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/disney.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/disney.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/geographic.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/geographic.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/geographic.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/geographic.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/logo.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/logo.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/logo.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/logo.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/marvel.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/marvel.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/marvel.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/marvel.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/nxt.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/nxt.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/nxt.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/nxt.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/pixar.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/pixar.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/pixar.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/pixar.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/play.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/play.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/play.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/play.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 1.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 1.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 1.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 1.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 10.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 10.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 10.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 10.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 11.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 11.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 11.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 11.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 12.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 12.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 12.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 12.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 2.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 2.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 2.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 2.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 3.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 3.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 3.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 3.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 4.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 4.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 4.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 4.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 5.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 5.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 5.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 5.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 6.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 6.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 6.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 6.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 7.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 7.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 7.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 7.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 8.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 8.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 8.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 8.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 9.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 9.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/poster 9.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/poster 9.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/pre.png b/src/app/(category)/frontend/(projects)/hotstar-clone/images/pre.png similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/pre.png rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/pre.png diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 1.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 1.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 1.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 1.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 2.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 2.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 2.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 2.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 3.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 3.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 3.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 3.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 4.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 4.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 4.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 4.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 5.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 5.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/slider 5.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/slider 5.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/images/star-wars.PNG b/src/app/(category)/frontend/(projects)/hotstar-clone/images/star-wars.PNG similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/images/star-wars.PNG rename to src/app/(category)/frontend/(projects)/hotstar-clone/images/star-wars.PNG diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/index.html b/src/app/(category)/frontend/(projects)/hotstar-clone/index.html similarity index 97% rename from Front-end-Projects/Intermediate/Hotstar-Clone/index.html rename to src/app/(category)/frontend/(projects)/hotstar-clone/index.html index 960138e1..8f1bc2ba 100644 --- a/Front-end-Projects/Intermediate/Hotstar-Clone/index.html +++ b/src/app/(category)/frontend/(projects)/hotstar-clone/index.html @@ -1,392 +1,392 @@ - - - - - - - Disney+ Hotstar - - - - - - - - - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -

recommended for you

-
- - -
-
- -
-

Loki

-
- Superhero, Science Fiction, Action,fantasy Marvel
- The mercurial villain Loki resumes his role as the God of... -
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
-
- -

popular shows

-
- - -
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

Loki

-
- Superhero, Science Fiction, Action,fantasy Marvel
- The mercurial villain Loki resumes his role as the God of... -
- -
-
-
-
- -

new releases

-
- - -
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

Loki

-
- Superhero, Science Fiction, Action,fantasy Marvel
- The mercurial villain Loki resumes his role as the God of... -
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
- -
-

movie name

-
Lorem ipsum dolor sit amet consectetur.
- -
-
-
-
- - - + + + + + + + Disney+ Hotstar + + + + + + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +

recommended for you

+
+ + +
+
+ +
+

Loki

+
+ Superhero, Science Fiction, Action,fantasy Marvel
+ The mercurial villain Loki resumes his role as the God of... +
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+
+ +

popular shows

+
+ + +
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

Loki

+
+ Superhero, Science Fiction, Action,fantasy Marvel
+ The mercurial villain Loki resumes his role as the God of... +
+ +
+
+
+
+ +

new releases

+
+ + +
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

Loki

+
+ Superhero, Science Fiction, Action,fantasy Marvel
+ The mercurial villain Loki resumes his role as the God of... +
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+ +
+

movie name

+
Lorem ipsum dolor sit amet consectetur.
+ +
+
+
+
+ + + \ No newline at end of file diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/index.js b/src/app/(category)/frontend/(projects)/hotstar-clone/index.js similarity index 97% rename from Front-end-Projects/Intermediate/Hotstar-Clone/index.js rename to src/app/(category)/frontend/(projects)/hotstar-clone/index.js index 55c3a8f9..72be2ec1 100644 --- a/Front-end-Projects/Intermediate/Hotstar-Clone/index.js +++ b/src/app/(category)/frontend/(projects)/hotstar-clone/index.js @@ -1,116 +1,116 @@ -let movies = [ - { - name: "falcon and the winter soldier", - des: - "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", - image: "images/slider 2.PNG" - }, - { - name: "loki", - des: - "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", - image: "images/slider 1.PNG" - }, - { - name: "wanda vision", - des: - "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", - image: "images/slider 3.PNG" - }, - { - name: "raya and the last dragon", - des: - "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", - image: "images/slider 4.PNG" - }, - { - name: "luca", - des: - "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", - image: "images/slider 5.PNG" - } - ]; - - const carousel = document.querySelector(".carousel"); - let sliders = []; - - let slideIndex = 0; // track the current slide - - const createSlide = () => { - if (slideIndex >= movies.length) { - slideIndex = 0; - } - - // Create DOM Elements - let slide = document.createElement("div"); - var imgElement = document.createElement("img"); - let content = document.createElement("div"); - let h1 = document.createElement("h1"); - let p = document.createElement("p"); - - // attaching all elements - imgElement.appendChild(document.createTextNode("")); - h1.appendChild(document.createTextNode(movies[slideIndex].name)); - p.appendChild(document.createTextNode(movies[slideIndex].des)); - content.appendChild(h1); - content.appendChild(p); - slide.appendChild(content); - slide.appendChild(imgElement); - carousel.appendChild(slide); - - // setting up image - imgElement.src = movies[slideIndex].image; - slideIndex++; - - // setting elements classname - slide.className = "slider"; - content.className = "slide-content"; - h1.className = "movie-title"; - p.className = "movie-des"; - - sliders.push(slide); - - if (sliders.length) { - sliders[0].style.marginLeft = `calc(-${100 * (sliders.length - 2)}% - ${ - 30 * (sliders.length - 2) - }px)`; - } - }; - - for (let i = 0; i < 3; i++) { - createSlide(); - } - setInterval(() => { - createSlide(); - }, 3000); - - //video cards - - const videocards = [...document.querySelectorAll(".video-card")]; - videocards.forEach((item) => { - item.addEventListener("mouseover", () => { - let video = item.children[1]; - video.play(); - }); - item.addEventListener("mouseleave", () => { - let video = item.children[1]; - video.pause(); - }); - }); - - //card sliders - - let cardcontainers = [...document.querySelectorAll(".card-container")]; - let preBtns = [...document.querySelectorAll(".pre-btn")]; - let nxtBtns = [...document.querySelectorAll(".nxt-btn")]; - - cardcontainers.forEach((item, i) => { - let containerDimensions = item.getBoundingClientRect(); - let containerWidth = containerDimensions.width; - nxtBtns[i].addEventListener("click", () => { - item.scrollLeft += containerWidth - 200; - }); - preBtns[i].addEventListener("click", () => { - item.scrollLeft -= containerWidth + 200; - }); +let movies = [ + { + name: "falcon and the winter soldier", + des: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", + image: "images/slider 2.PNG" + }, + { + name: "loki", + des: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", + image: "images/slider 1.PNG" + }, + { + name: "wanda vision", + des: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", + image: "images/slider 3.PNG" + }, + { + name: "raya and the last dragon", + des: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", + image: "images/slider 4.PNG" + }, + { + name: "luca", + des: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Velit porro et veniam excepturi, eaque voluptatem impedit nulla laboriosam facilis ut laboriosam libero!", + image: "images/slider 5.PNG" + } + ]; + + const carousel = document.querySelector(".carousel"); + let sliders = []; + + let slideIndex = 0; // track the current slide + + const createSlide = () => { + if (slideIndex >= movies.length) { + slideIndex = 0; + } + + // Create DOM Elements + let slide = document.createElement("div"); + var imgElement = document.createElement("img"); + let content = document.createElement("div"); + let h1 = document.createElement("h1"); + let p = document.createElement("p"); + + // attaching all elements + imgElement.appendChild(document.createTextNode("")); + h1.appendChild(document.createTextNode(movies[slideIndex].name)); + p.appendChild(document.createTextNode(movies[slideIndex].des)); + content.appendChild(h1); + content.appendChild(p); + slide.appendChild(content); + slide.appendChild(imgElement); + carousel.appendChild(slide); + + // setting up image + imgElement.src = movies[slideIndex].image; + slideIndex++; + + // setting elements classname + slide.className = "slider"; + content.className = "slide-content"; + h1.className = "movie-title"; + p.className = "movie-des"; + + sliders.push(slide); + + if (sliders.length) { + sliders[0].style.marginLeft = `calc(-${100 * (sliders.length - 2)}% - ${ + 30 * (sliders.length - 2) + }px)`; + } + }; + + for (let i = 0; i < 3; i++) { + createSlide(); + } + setInterval(() => { + createSlide(); + }, 3000); + + //video cards + + const videocards = [...document.querySelectorAll(".video-card")]; + videocards.forEach((item) => { + item.addEventListener("mouseover", () => { + let video = item.children[1]; + video.play(); + }); + item.addEventListener("mouseleave", () => { + let video = item.children[1]; + video.pause(); + }); + }); + + //card sliders + + let cardcontainers = [...document.querySelectorAll(".card-container")]; + let preBtns = [...document.querySelectorAll(".pre-btn")]; + let nxtBtns = [...document.querySelectorAll(".nxt-btn")]; + + cardcontainers.forEach((item, i) => { + let containerDimensions = item.getBoundingClientRect(); + let containerWidth = containerDimensions.width; + nxtBtns[i].addEventListener("click", () => { + item.scrollLeft += containerWidth - 200; + }); + preBtns[i].addEventListener("click", () => { + item.scrollLeft -= containerWidth + 200; + }); }); \ No newline at end of file diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/hotstar-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/hotstar-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/styles.css b/src/app/(category)/frontend/(projects)/hotstar-clone/styles.css similarity index 94% rename from Front-end-Projects/Intermediate/Hotstar-Clone/styles.css rename to src/app/(category)/frontend/(projects)/hotstar-clone/styles.css index 914d2be9..bcbc96f0 100644 --- a/Front-end-Projects/Intermediate/Hotstar-Clone/styles.css +++ b/src/app/(category)/frontend/(projects)/hotstar-clone/styles.css @@ -1,333 +1,333 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; - } - body { - width: 100%; - background: #0c111b; - position: relative; - font-family: roboto, sans-serif; - } - - .navbar { - width: 100%; - height: 80px; - position: fixed; - top: 0; - left: 0; - padding: 0 4%; - background: #0c111b; - z-index: 9; - display: flex; - align-items: center; - } - - .brand-logo { - height: 70px; - } - - .nav-links { - margin-top: 10px; - display: flex; - list-style: none; - } - .nav-items a { - text-decoration: none; - margin-left: 20px; - text-transform: capitalize; - color: #fff; - opacity: 0.9; - } - - .right-container { - display: block; - margin-left: auto; - } - - .search-box { - border: none; - border-bottom: 1px solid #aaa; - background: transparent; - outline: none; - height: 30px; - color: #fff; - width: 250px; - text-transform: capitalize; - font-size: 16px; - font-weight: 500; - transition: 0.5s; - } - .search-box:focus { - width: 400px; - border-color: #1f80e0; - } - - .sub-btn { - background: #1f80e0; - height: 30px; - padding: 0 20px; - color: #fff; - border-radius: 5px; - border: none; - outline: none; - text-transform: uppercase; - font-weight: 700; - font-size: 12px; - margin: 0 10px; - } - - .login-link { - color: #fff; - opacity: 0.9; - text-transform: uppercase; - font-size: 15px; - font-weight: 700; - text-decoration: none; - } - - .carousel-container { - position: relative; - width: 100%; - height: 450px; - padding: 20px 0; - overflow-x: hidden; - margin-top: 80px; - } - .carousel { - display: flex; - width: 92%; - height: 100%; - position: relative; - margin: auto; - } - - .slider { - flex: 0 0 auto; - margin-right: 30px; - position: relative; - background: rgba(0, 0, 0, 0.5); - border-radius: 5px; - width: 100%; - height: 100%; - left: 0; - transition: 1s; - overflow: hidden; - } - - .slider img { - width: 70%; - min-height: 100%; - object-fit: cover; - display: block; - margin-left: auto; - } - - .slide-content { - position: absolute; - width: 50%; - height: 100%; - z-index: 2; - background: linear-gradient(to right, #030b17 80%, #0c111b00); - color: #fff; - } - - .movie-title { - padding-left: 50px; - text-transform: capitalize; - margin-top: 80px; - } - - .movie-des { - width: 80%; - line-height: 30px; - padding-left: 50px; - margin-top: 30px; - opacity: 0.8; - } - - .video-card-container { - position: relative; - width: 92%; - margin: auto; - height: 10vw; - display: flex; - margin-bottom: 20px; - justify-content: space-between; - } - - .video-card { - position: relative; - min-width: calc(100% / 5 - 10px); - width: calc(100% / 5 - 10px); - height: 100%; - border-radius: 5px; - overflow: hidden; - background: #030b17; - } - - .video-card-image, - .card-video { - width: 100%; - height: 100%; - object-fit: cover; - } - - .card-video { - position: absolute; - } - - .video-card:hover .video-card-image { - display: none; - } - - .title { - color: #fff; - opacity: 0.9; - padding-left: 4%; - text-transform: capitalize; - font-size: 22px; - font-weight: 500; - margin: 1.5rem 0 0.5rem; - } - - .movies-list { - width: 94%; - height: 220px; - position: relative; - margin: 10px 0 20px; - margin: auto; - box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 2px 6px 2px; - } - .card-container { - position: absolute; - width: 100%; - height: 220px; - display: flex; - margin: 0, auto; - align-items: center; - overflow-x: auto; - overflow-y: visible; - scroll-behavior: smooth; - } - - .card-container::-webkit-scrollbar { - display: none; - } - - .card { - position: relative; - min-width: 150px; - width: 150px; - height: 200px; - border-radius: 5px; - overflow: hidden; - margin-right: 10px; - transition: 0.5s; - /* background: #000; */ - } - .card-img { - width: 100%; - height: 100%; - object-fit: cover; - } - - .card:hover { - transform: scale(1.1); - } - - .card:hover .card-body { - opacity: 1; - } - - .card-body { - opacity: 0; - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 2; - background: linear-gradient(to bottom, rgba(4, 8, 15, 0), #192133 90%); - padding: 10px; - transition: 0.5s; - } - - .name { - color: #fff; - font-size: 15px; - font-weight: 500; - text-transform: capitalize; - margin-top: 60%; - } - .des { - color: #fff; - opacity: 0.8; - margin: 5px 0; - font-weight: 500; - font-size: 12px; - } - - .watchlist-btn { - position: relative; - width: 100%; - text-transform: capitalize; - background: none; - border: none; - font-weight: 500; - text-align: right; - color: rgba(255, 255, 255, 0.5); - margin: 5px 0; - cursor: pointer; - padding: 10px 5px; - border-radius: 5px; - } - - .watchlist-btn::before { - content: ""; - position: absolute; - top: 0; - left: -5px; - height: 35px; - width: 35px; - background-image: url(images/add.png); - background-size: cover; - transform: scale(0.4); - } - .watchlist-btn:hover { - color: #fff; - background: rgba(255, 255, 255, 0.1); - } - - .pre-btn, - .nxt-btn { - position: absolute; - top: 0; - width: 5%; - height: 100%; - z-index: 2; - border: none; - cursor: pointer; - outline: none; - } - - .pre-btn { - left: 0; - background: linear-gradient(to right, #0c111b 0%, #0c111b00); - } - .nxt-btn { - right: 0; - background: linear-gradient(to left, #0c111b 0%, #0c111b00); - } - - .pre-btn img, - .nxt-btn img { - width: 15px; - height: 20px; - opacity: 0; - } - - .pre-btn:hover img, - .nxt-btn:hover img { - opacity: 1; +* { + margin: 0; + padding: 0; + box-sizing: border-box; + } + body { + width: 100%; + background: #0c111b; + position: relative; + font-family: roboto, sans-serif; + } + + .navbar { + width: 100%; + height: 80px; + position: fixed; + top: 0; + left: 0; + padding: 0 4%; + background: #0c111b; + z-index: 9; + display: flex; + align-items: center; + } + + .brand-logo { + height: 70px; + } + + .nav-links { + margin-top: 10px; + display: flex; + list-style: none; + } + .nav-items a { + text-decoration: none; + margin-left: 20px; + text-transform: capitalize; + color: #fff; + opacity: 0.9; + } + + .right-container { + display: block; + margin-left: auto; + } + + .search-box { + border: none; + border-bottom: 1px solid #aaa; + background: transparent; + outline: none; + height: 30px; + color: #fff; + width: 250px; + text-transform: capitalize; + font-size: 16px; + font-weight: 500; + transition: 0.5s; + } + .search-box:focus { + width: 400px; + border-color: #1f80e0; + } + + .sub-btn { + background: #1f80e0; + height: 30px; + padding: 0 20px; + color: #fff; + border-radius: 5px; + border: none; + outline: none; + text-transform: uppercase; + font-weight: 700; + font-size: 12px; + margin: 0 10px; + } + + .login-link { + color: #fff; + opacity: 0.9; + text-transform: uppercase; + font-size: 15px; + font-weight: 700; + text-decoration: none; + } + + .carousel-container { + position: relative; + width: 100%; + height: 450px; + padding: 20px 0; + overflow-x: hidden; + margin-top: 80px; + } + .carousel { + display: flex; + width: 92%; + height: 100%; + position: relative; + margin: auto; + } + + .slider { + flex: 0 0 auto; + margin-right: 30px; + position: relative; + background: rgba(0, 0, 0, 0.5); + border-radius: 5px; + width: 100%; + height: 100%; + left: 0; + transition: 1s; + overflow: hidden; + } + + .slider img { + width: 70%; + min-height: 100%; + object-fit: cover; + display: block; + margin-left: auto; + } + + .slide-content { + position: absolute; + width: 50%; + height: 100%; + z-index: 2; + background: linear-gradient(to right, #030b17 80%, #0c111b00); + color: #fff; + } + + .movie-title { + padding-left: 50px; + text-transform: capitalize; + margin-top: 80px; + } + + .movie-des { + width: 80%; + line-height: 30px; + padding-left: 50px; + margin-top: 30px; + opacity: 0.8; + } + + .video-card-container { + position: relative; + width: 92%; + margin: auto; + height: 10vw; + display: flex; + margin-bottom: 20px; + justify-content: space-between; + } + + .video-card { + position: relative; + min-width: calc(100% / 5 - 10px); + width: calc(100% / 5 - 10px); + height: 100%; + border-radius: 5px; + overflow: hidden; + background: #030b17; + } + + .video-card-image, + .card-video { + width: 100%; + height: 100%; + object-fit: cover; + } + + .card-video { + position: absolute; + } + + .video-card:hover .video-card-image { + display: none; + } + + .title { + color: #fff; + opacity: 0.9; + padding-left: 4%; + text-transform: capitalize; + font-size: 22px; + font-weight: 500; + margin: 1.5rem 0 0.5rem; + } + + .movies-list { + width: 94%; + height: 220px; + position: relative; + margin: 10px 0 20px; + margin: auto; + box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 2px 6px 2px; + } + .card-container { + position: absolute; + width: 100%; + height: 220px; + display: flex; + margin: 0, auto; + align-items: center; + overflow-x: auto; + overflow-y: visible; + scroll-behavior: smooth; + } + + .card-container::-webkit-scrollbar { + display: none; + } + + .card { + position: relative; + min-width: 150px; + width: 150px; + height: 200px; + border-radius: 5px; + overflow: hidden; + margin-right: 10px; + transition: 0.5s; + /* background: #000; */ + } + .card-img { + width: 100%; + height: 100%; + object-fit: cover; + } + + .card:hover { + transform: scale(1.1); + } + + .card:hover .card-body { + opacity: 1; + } + + .card-body { + opacity: 0; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 2; + background: linear-gradient(to bottom, rgba(4, 8, 15, 0), #192133 90%); + padding: 10px; + transition: 0.5s; + } + + .name { + color: #fff; + font-size: 15px; + font-weight: 500; + text-transform: capitalize; + margin-top: 60%; + } + .des { + color: #fff; + opacity: 0.8; + margin: 5px 0; + font-weight: 500; + font-size: 12px; + } + + .watchlist-btn { + position: relative; + width: 100%; + text-transform: capitalize; + background: none; + border: none; + font-weight: 500; + text-align: right; + color: rgba(255, 255, 255, 0.5); + margin: 5px 0; + cursor: pointer; + padding: 10px 5px; + border-radius: 5px; + } + + .watchlist-btn::before { + content: ""; + position: absolute; + top: 0; + left: -5px; + height: 35px; + width: 35px; + background-image: url(images/add.png); + background-size: cover; + transform: scale(0.4); + } + .watchlist-btn:hover { + color: #fff; + background: rgba(255, 255, 255, 0.1); + } + + .pre-btn, + .nxt-btn { + position: absolute; + top: 0; + width: 5%; + height: 100%; + z-index: 2; + border: none; + cursor: pointer; + outline: none; + } + + .pre-btn { + left: 0; + background: linear-gradient(to right, #0c111b 0%, #0c111b00); + } + .nxt-btn { + right: 0; + background: linear-gradient(to left, #0c111b 0%, #0c111b00); + } + + .pre-btn img, + .nxt-btn img { + width: 15px; + height: 20px; + opacity: 0; + } + + .pre-btn:hover img, + .nxt-btn:hover img { + opacity: 1; } \ No newline at end of file diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/videos/disney.mp4 b/src/app/(category)/frontend/(projects)/hotstar-clone/videos/disney.mp4 similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/videos/disney.mp4 rename to src/app/(category)/frontend/(projects)/hotstar-clone/videos/disney.mp4 diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/videos/geographic.mp4 b/src/app/(category)/frontend/(projects)/hotstar-clone/videos/geographic.mp4 similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/videos/geographic.mp4 rename to src/app/(category)/frontend/(projects)/hotstar-clone/videos/geographic.mp4 diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/videos/marvel.mp4 b/src/app/(category)/frontend/(projects)/hotstar-clone/videos/marvel.mp4 similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/videos/marvel.mp4 rename to src/app/(category)/frontend/(projects)/hotstar-clone/videos/marvel.mp4 diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/videos/pixar.mp4 b/src/app/(category)/frontend/(projects)/hotstar-clone/videos/pixar.mp4 similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/videos/pixar.mp4 rename to src/app/(category)/frontend/(projects)/hotstar-clone/videos/pixar.mp4 diff --git a/Front-end-Projects/Intermediate/Hotstar-Clone/videos/star-war.mp4 b/src/app/(category)/frontend/(projects)/hotstar-clone/videos/star-war.mp4 similarity index 100% rename from Front-end-Projects/Intermediate/Hotstar-Clone/videos/star-war.mp4 rename to src/app/(category)/frontend/(projects)/hotstar-clone/videos/star-war.mp4 diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/5GSpeaker.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/5GSpeaker.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/5GSpeaker.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/5GSpeaker.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/A15.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/A15.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/A15.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/A15.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/A16.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/A16.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/A16.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/A16.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Apple-iPhone-14-Pro-iPhone-14-Pro-Max-Dynamic-Island-demo-3up.gif b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Apple-iPhone-14-Pro-iPhone-14-Pro-Max-Dynamic-Island-demo-3up.gif similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Apple-iPhone-14-Pro-iPhone-14-Pro-Max-Dynamic-Island-demo-3up.gif rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Apple-iPhone-14-Pro-iPhone-14-Pro-Max-Dynamic-Island-demo-3up.gif diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/BAG.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/BAG.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/BAG.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/BAG.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Deep Purple.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Deep Purple.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Deep Purple.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Deep Purple.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/EMI.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/EMI.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/EMI.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/EMI.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/FaceID.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/FaceID.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/FaceID.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/FaceID.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/HELP.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/HELP.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/HELP.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/HELP.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/IMG_2022 2.JPG b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/IMG_2022 2.JPG similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/IMG_2022 2.JPG rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/IMG_2022 2.JPG diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/IMG_2023.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/IMG_2023.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/IMG_2023.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/IMG_2023.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/IPhone-rid-1.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/IPhone-rid-1.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/IPhone-rid-1.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/IPhone-rid-1.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Image-film.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Image-film.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Image-film.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Image-film.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Phone2.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Phone2.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Phone2.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Phone2.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/ProBeyond.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/ProBeyond.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/ProBeyond.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/ProBeyond.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/SOS.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/SOS.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/SOS.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/SOS.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Screenshot 2022-11-27 191738.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Screenshot 2022-11-27 191738.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Screenshot 2022-11-27 191738.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Screenshot 2022-11-27 191738.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Screenshot 2022-12-04 000232.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Screenshot 2022-12-04 000232.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/Screenshot 2022-12-04 000232.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/Screenshot 2022-12-04 000232.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/TouchID.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/TouchID.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/TouchID.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/TouchID.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/apple-a16-bionic.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/apple-a16-bionic.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/apple-a16-bionic.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/apple-a16-bionic.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/battery.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/battery.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/battery.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/battery.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/big_lenses.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/big_lenses.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/big_lenses.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/big_lenses.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/cameera3.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/cameera3.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/cameera3.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/cameera3.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/camera1.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/camera1.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/camera1.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/camera1.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/camera2.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/camera2.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/camera2.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/camera2.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/cart.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/cart.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/cart.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/cart.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/chipapple.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/chipapple.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/chipapple.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/chipapple.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/choices.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/choices.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/choices.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/choices.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/crash detection.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/crash detection.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/crash detection.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/crash detection.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/delivery.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/delivery.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/delivery.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/delivery.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/dyanmic_island.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/dyanmic_island.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/dyanmic_island.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/dyanmic_island.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/dynamic island.jpeg.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/dynamic island.jpeg.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/dynamic island.jpeg.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/dynamic island.jpeg.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/dynamic_island_1.gif b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/dynamic_island_1.gif similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/dynamic_island_1.gif rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/dynamic_island_1.gif diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/glance2.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/glance2.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/glance2.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/glance2.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/gradient-via-site.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/gradient-via-site.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/gradient-via-site.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/gradient-via-site.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/greenapple.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/greenapple.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/greenapple.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/greenapple.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/handpic.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/handpic.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/handpic.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/handpic.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_airpods.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_airpods.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_airpods.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_airpods.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_airtag.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_airtag.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_airtag.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_airtag.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_app_store.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_app_store.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_app_store.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_app_store.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_apple_one.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_apple_one.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_apple_one.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_apple_one.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_apple_watch.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_apple_watch.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_apple_watch.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_apple_watch.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_magsafe.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_magsafe.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_magsafe.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_magsafe.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_usbc_adapter.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_usbc_adapter.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/icon_usbc_adapter.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/icon_usbc_adapter.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/ilock.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/ilock.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/ilock.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/ilock.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(1).jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(1).jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(1).jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(1).jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(2).jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(2).jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(2).jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(2).jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(3).jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(3).jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(3).jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(3).jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(4).jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(4).jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(4).jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(4).jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(5).jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(5).jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/image(5).jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/image(5).jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/iphone 14 pro camera module.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/iphone 14 pro camera module.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/iphone 14 pro camera module.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/iphone 14 pro camera module.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/iphone 14 pro.gif b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/iphone 14 pro.gif similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/iphone 14 pro.gif rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/iphone 14 pro.gif diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/iphone 14 pro.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/iphone 14 pro.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/iphone 14 pro.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/iphone 14 pro.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/lighning.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/lighning.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/lighning.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/lighning.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/logo1.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/logo1.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/logo1.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/logo1.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/logo_favicon.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/logo_favicon.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/logo_favicon.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/logo_favicon.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/low_light_main__e65vdj1r1066_large.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/low_light_main__e65vdj1r1066_large.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/low_light_main__e65vdj1r1066_large.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/low_light_main__e65vdj1r1066_large.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/low_light_telephoto__gly9r0k8kwqe_large.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/low_light_telephoto__gly9r0k8kwqe_large.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/low_light_telephoto__gly9r0k8kwqe_large.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/low_light_telephoto__gly9r0k8kwqe_large.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/low_light_wide__mwcscsmlln6a_large.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/low_light_wide__mwcscsmlln6a_large.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/low_light_wide__mwcscsmlln6a_large.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/low_light_wide__mwcscsmlln6a_large.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/purple_strip.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/purple_strip.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/purple_strip.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/purple_strip.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/stable video.gif b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/stable video.gif similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/stable video.gif rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/stable video.gif diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_accessibility_icon__e4hvkwzc80cy_large.png b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_accessibility_icon__e4hvkwzc80cy_large.png similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_accessibility_icon__e4hvkwzc80cy_large.png rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_accessibility_icon__e4hvkwzc80cy_large.png diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_environment__fsgwat7q51ym_large.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_environment__fsgwat7q51ym_large.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_environment__fsgwat7q51ym_large.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_environment__fsgwat7q51ym_large.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_ios_16__b9bmysz4cu9y_large.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_ios_16__b9bmysz4cu9y_large.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_ios_16__b9bmysz4cu9y_large.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_ios_16__b9bmysz4cu9y_large.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_ios_16_icon__cb4i6x3e95xy_large.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_ios_16_icon__cb4i6x3e95xy_large.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_ios_16_icon__cb4i6x3e95xy_large.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_ios_16_icon__cb4i6x3e95xy_large.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_privacy__es3b0gogvcwi_large.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_privacy__es3b0gogvcwi_large.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/tile_privacy__es3b0gogvcwi_large.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/tile_privacy__es3b0gogvcwi_large.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/true_depth_autofocus__cglq963k0oaa_large.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/true_depth_autofocus__cglq963k0oaa_large.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CONTENT/true_depth_autofocus__cglq963k0oaa_large.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CONTENT/true_depth_autofocus__cglq963k0oaa_large.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CSS1.css b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CSS1.css similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CSS1.css rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CSS1.css diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CSS2.css b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CSS2.css similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/CSS2.css rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/CSS2.css diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/README.md b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/README.md rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/README.md diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/footer.css b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/footer.css similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/footer.css rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/footer.css diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/index.html b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/index.html rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/index.html diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/logo.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/logo.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/logo.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/logo.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/purple_strip_2.jpg b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/purple_strip_2.jpg similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/purple_strip_2.jpg rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/purple_strip_2.jpg diff --git a/Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/iphone-14-pro-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/IPHONE-14-Pro-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/iphone-14-pro-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Linktree-Clone/README.md b/src/app/(category)/frontend/(projects)/linktree-clone/README.md similarity index 97% rename from Front-end-Projects/Intermediate/Linktree-Clone/README.md rename to src/app/(category)/frontend/(projects)/linktree-clone/README.md index 690b7552..e6debe99 100644 --- a/Front-end-Projects/Intermediate/Linktree-Clone/README.md +++ b/src/app/(category)/frontend/(projects)/linktree-clone/README.md @@ -1,56 +1,56 @@ -

💥 LINKTREE CLONE 💥

- - - -

Tech Stack Used 🎮

- -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - - -
- -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
-

A Linktree clone project is a simple web app that allows users to create a personalized page with multiple links to their social media profiles, websites, or other resources, all accessible via a single URL.

-
- - - - -## :zap: How to run it? 🕹️ - -- Clone the repository to your local machine. -- Open the `index.html` file in your web browser to start using the application. - - - - -## :zap: Screenshots 📸 - -![Screenshot](screenshot.webp) - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Ananya Gupta

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- +

💥 LINKTREE CLONE 💥

+ + + +

Tech Stack Used 🎮

+ +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + + +
+ +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+

A Linktree clone project is a simple web app that allows users to create a personalized page with multiple links to their social media profiles, websites, or other resources, all accessible via a single URL.

+
+ + + + +## :zap: How to run it? 🕹️ + +- Clone the repository to your local machine. +- Open the `index.html` file in your web browser to start using the application. + + + + +## :zap: Screenshots 📸 + +![Screenshot](screenshot.webp) + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Ananya Gupta

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+

Show some  ❤️  by  🌟  this repository!

\ No newline at end of file diff --git a/Front-end-Projects/Intermediate/Linktree-Clone/display-picture.webp b/src/app/(category)/frontend/(projects)/linktree-clone/display-picture.webp similarity index 100% rename from Front-end-Projects/Intermediate/Linktree-Clone/display-picture.webp rename to src/app/(category)/frontend/(projects)/linktree-clone/display-picture.webp diff --git a/Front-end-Projects/Intermediate/Linktree-Clone/index.html b/src/app/(category)/frontend/(projects)/linktree-clone/index.html similarity index 96% rename from Front-end-Projects/Intermediate/Linktree-Clone/index.html rename to src/app/(category)/frontend/(projects)/linktree-clone/index.html index 9167f8e0..0da0cc3d 100644 --- a/Front-end-Projects/Intermediate/Linktree-Clone/index.html +++ b/src/app/(category)/frontend/(projects)/linktree-clone/index.html @@ -1,58 +1,58 @@ - - - - - - - - - Linktree Page Clone - - -
- -
- Profile Picture -

Kai Hiwatari

-

Aspiring Software Engineer and UI/UX designer

-
- - -
- + + + + + + + + + Linktree Page Clone + + +
+ +
+ Profile Picture +

Kai Hiwatari

+

Aspiring Software Engineer and UI/UX designer

+
+ + +
+ \ No newline at end of file diff --git a/Front-end-Projects/Intermediate/Linktree-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/linktree-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Linktree-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/linktree-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Linktree-Clone/style.css b/src/app/(category)/frontend/(projects)/linktree-clone/style.css similarity index 94% rename from Front-end-Projects/Intermediate/Linktree-Clone/style.css rename to src/app/(category)/frontend/(projects)/linktree-clone/style.css index ef05ae8f..1a3d6ede 100644 --- a/Front-end-Projects/Intermediate/Linktree-Clone/style.css +++ b/src/app/(category)/frontend/(projects)/linktree-clone/style.css @@ -1,67 +1,67 @@ -@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;600&display=swap"); -* { - margin: 0; - padding: 0; - box-sizing: border-box; - font-family: "Manrope", sans-serif; -} -a { - color: black; - text-decoration: none; -} -body { - background-color: #333533; -} -.flex-container { - display: flex; -} -.share-btn { - background-color: white; - padding: 0.65rem 0.8rem; - border-radius: 50%; -} -#share-link { - justify-content: flex-end; - align-items: center; - margin: 1rem; -} -#profile-picture { - display: block; - width: 100px; - margin: 1rem auto; - border-radius: 50%; -} -.profile > h1, -.profile > h2 { - text-align: center; - color: white; -} -.profile > h1 { - font-size: 1.25rem; -} -.profile > h2 { - font-weight: 400; - font-size: 1rem; -} -.links-container { - padding: 1rem 0.75rem; - list-style-type: none; -} -.links-container li { - text-align: center; - margin: 1rem 0; -} -.nav-link { - display: block; - border-radius: 10px; - background-color: white; - padding: 1rem 0; - box-shadow: 10px 10px black; - font-weight: 600; -} -@media (min-width: 768px) { - main { - max-width: 750px; - margin: 0 auto; - } +@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;600&display=swap"); +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: "Manrope", sans-serif; +} +a { + color: black; + text-decoration: none; +} +body { + background-color: #333533; +} +.flex-container { + display: flex; +} +.share-btn { + background-color: white; + padding: 0.65rem 0.8rem; + border-radius: 50%; +} +#share-link { + justify-content: flex-end; + align-items: center; + margin: 1rem; +} +#profile-picture { + display: block; + width: 100px; + margin: 1rem auto; + border-radius: 50%; +} +.profile > h1, +.profile > h2 { + text-align: center; + color: white; +} +.profile > h1 { + font-size: 1.25rem; +} +.profile > h2 { + font-weight: 400; + font-size: 1rem; +} +.links-container { + padding: 1rem 0.75rem; + list-style-type: none; +} +.links-container li { + text-align: center; + margin: 1rem 0; +} +.nav-link { + display: block; + border-radius: 10px; + background-color: white; + padding: 1rem 0; + box-shadow: 10px 10px black; + font-weight: 600; +} +@media (min-width: 768px) { + main { + max-width: 750px; + margin: 0 auto; + } } \ No newline at end of file diff --git a/Front-end-Projects/Basic/Login-Signup-Form/README.md b/src/app/(category)/frontend/(projects)/login-signup-form/README.md similarity index 100% rename from Front-end-Projects/Basic/Login-Signup-Form/README.md rename to src/app/(category)/frontend/(projects)/login-signup-form/README.md diff --git a/Front-end-Projects/Basic/Login-Signup-Form/background.jpg b/src/app/(category)/frontend/(projects)/login-signup-form/background.jpg similarity index 100% rename from Front-end-Projects/Basic/Login-Signup-Form/background.jpg rename to src/app/(category)/frontend/(projects)/login-signup-form/background.jpg diff --git a/Front-end-Projects/Basic/Login-Signup-Form/index.html b/src/app/(category)/frontend/(projects)/login-signup-form/index.html similarity index 100% rename from Front-end-Projects/Basic/Login-Signup-Form/index.html rename to src/app/(category)/frontend/(projects)/login-signup-form/index.html diff --git a/Front-end-Projects/Basic/Login-Signup-Form/screenshot.webp b/src/app/(category)/frontend/(projects)/login-signup-form/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Login-Signup-Form/screenshot.webp rename to src/app/(category)/frontend/(projects)/login-signup-form/screenshot.webp diff --git a/Front-end-Projects/Basic/Login-Signup-Form/script.js b/src/app/(category)/frontend/(projects)/login-signup-form/script.js similarity index 100% rename from Front-end-Projects/Basic/Login-Signup-Form/script.js rename to src/app/(category)/frontend/(projects)/login-signup-form/script.js diff --git a/Front-end-Projects/Basic/Login-Signup-Form/styles.css b/src/app/(category)/frontend/(projects)/login-signup-form/styles.css similarity index 100% rename from Front-end-Projects/Basic/Login-Signup-Form/styles.css rename to src/app/(category)/frontend/(projects)/login-signup-form/styles.css diff --git a/Front-end-Projects/Intermediate/MakeMyTrip-Clone/Images/background.jpg b/src/app/(category)/frontend/(projects)/makemytrip-clone/Images/background.jpg similarity index 100% rename from Front-end-Projects/Intermediate/MakeMyTrip-Clone/Images/background.jpg rename to src/app/(category)/frontend/(projects)/makemytrip-clone/Images/background.jpg diff --git a/Front-end-Projects/Intermediate/MakeMyTrip-Clone/README.md b/src/app/(category)/frontend/(projects)/makemytrip-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/MakeMyTrip-Clone/README.md rename to src/app/(category)/frontend/(projects)/makemytrip-clone/README.md diff --git a/Front-end-Projects/Intermediate/MakeMyTrip-Clone/index.html b/src/app/(category)/frontend/(projects)/makemytrip-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/MakeMyTrip-Clone/index.html rename to src/app/(category)/frontend/(projects)/makemytrip-clone/index.html diff --git a/Front-end-Projects/Intermediate/MakeMyTrip-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/makemytrip-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/MakeMyTrip-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/makemytrip-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/MakeMyTrip-Clone/style.css b/src/app/(category)/frontend/(projects)/makemytrip-clone/style.css similarity index 100% rename from Front-end-Projects/Intermediate/MakeMyTrip-Clone/style.css rename to src/app/(category)/frontend/(projects)/makemytrip-clone/style.css diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/README.md b/src/app/(category)/frontend/(projects)/microsoft-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/README.md rename to src/app/(category)/frontend/(projects)/microsoft-clone/README.md diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/explore.svg b/src/app/(category)/frontend/(projects)/microsoft-clone/images/explore.svg similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/explore.svg rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/explore.svg diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/flexmic1.webp b/src/app/(category)/frontend/(projects)/microsoft-clone/images/flexmic1.webp similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/flexmic1.webp rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/flexmic1.webp diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/flexmic2.webp b/src/app/(category)/frontend/(projects)/microsoft-clone/images/flexmic2.webp similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/flexmic2.webp rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/flexmic2.webp diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/flexmic3.webp b/src/app/(category)/frontend/(projects)/microsoft-clone/images/flexmic3.webp similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/flexmic3.webp rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/flexmic3.webp diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/flexmic4.webp b/src/app/(category)/frontend/(projects)/microsoft-clone/images/flexmic4.webp similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/flexmic4.webp rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/flexmic4.webp diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/imic1.webp b/src/app/(category)/frontend/(projects)/microsoft-clone/images/imic1.webp similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/imic1.webp rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/imic1.webp diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/imic2.png b/src/app/(category)/frontend/(projects)/microsoft-clone/images/imic2.png similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/imic2.png rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/imic2.png diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/logoofmic.png b/src/app/(category)/frontend/(projects)/microsoft-clone/images/logoofmic.png similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/logoofmic.png rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/logoofmic.png diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/mic1.svg b/src/app/(category)/frontend/(projects)/microsoft-clone/images/mic1.svg similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/mic1.svg rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/mic1.svg diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/mic2.svg b/src/app/(category)/frontend/(projects)/microsoft-clone/images/mic2.svg similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/mic2.svg rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/mic2.svg diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/mic3.svg b/src/app/(category)/frontend/(projects)/microsoft-clone/images/mic3.svg similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/mic3.svg rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/mic3.svg diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/mic4.svg b/src/app/(category)/frontend/(projects)/microsoft-clone/images/mic4.svg similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/mic4.svg rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/mic4.svg diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/micfav.ico b/src/app/(category)/frontend/(projects)/microsoft-clone/images/micfav.ico similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/micfav.ico rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/micfav.ico diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/mostpre.jpeg b/src/app/(category)/frontend/(projects)/microsoft-clone/images/mostpre.jpeg similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/mostpre.jpeg rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/mostpre.jpeg diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/pormo1.svg b/src/app/(category)/frontend/(projects)/microsoft-clone/images/pormo1.svg similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/pormo1.svg rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/pormo1.svg diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/images/shopx.svg b/src/app/(category)/frontend/(projects)/microsoft-clone/images/shopx.svg similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/images/shopx.svg rename to src/app/(category)/frontend/(projects)/microsoft-clone/images/shopx.svg diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/index.html b/src/app/(category)/frontend/(projects)/microsoft-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/index.html rename to src/app/(category)/frontend/(projects)/microsoft-clone/index.html diff --git a/Front-end-Projects/Intermediate/Microsoft-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/microsoft-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Microsoft-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/microsoft-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/README.md b/src/app/(category)/frontend/(projects)/netflix-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/README.md rename to src/app/(category)/frontend/(projects)/netflix-clone/README.md diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/images/bg.jpg b/src/app/(category)/frontend/(projects)/netflix-clone/assets/images/bg.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/images/bg.jpg rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/images/bg.jpg diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/images/favicon.ico b/src/app/(category)/frontend/(projects)/netflix-clone/assets/images/favicon.ico similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/images/favicon.ico rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/images/favicon.ico diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img1.png b/src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img1.png similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img1.png rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img1.png diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img2.png b/src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img2.png similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img2.png rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img2.png diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img3.png b/src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img3.png similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img3.png rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img3.png diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img4.png b/src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img4.png similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img4.png rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img4.png diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img5.png b/src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img5.png similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/images/img5.png rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/images/img5.png diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/images/logo.png b/src/app/(category)/frontend/(projects)/netflix-clone/assets/images/logo.png similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/images/logo.png rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/images/logo.png diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/videos/video-devices-in.m4v b/src/app/(category)/frontend/(projects)/netflix-clone/assets/videos/video-devices-in.m4v similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/videos/video-devices-in.m4v rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/videos/video-devices-in.m4v diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/assets/videos/video2.m4v b/src/app/(category)/frontend/(projects)/netflix-clone/assets/videos/video2.m4v similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/assets/videos/video2.m4v rename to src/app/(category)/frontend/(projects)/netflix-clone/assets/videos/video2.m4v diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/index.html b/src/app/(category)/frontend/(projects)/netflix-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/index.html rename to src/app/(category)/frontend/(projects)/netflix-clone/index.html diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/netflix-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/netflix-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Netflix-Clone/style.css b/src/app/(category)/frontend/(projects)/netflix-clone/style.css similarity index 100% rename from Front-end-Projects/Intermediate/Netflix-Clone/style.css rename to src/app/(category)/frontend/(projects)/netflix-clone/style.css diff --git a/Front-end-Projects/Basic/PhonePe/README.MD b/src/app/(category)/frontend/(projects)/phonepe/README.MD similarity index 100% rename from Front-end-Projects/Basic/PhonePe/README.MD rename to src/app/(category)/frontend/(projects)/phonepe/README.MD diff --git a/Front-end-Projects/Basic/PhonePe/assests/appstore.jpg b/src/app/(category)/frontend/(projects)/phonepe/assests/appstore.jpg similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/appstore.jpg rename to src/app/(category)/frontend/(projects)/phonepe/assests/appstore.jpg diff --git a/Front-end-Projects/Basic/PhonePe/assests/bg.png b/src/app/(category)/frontend/(projects)/phonepe/assests/bg.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/bg.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/bg.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/free.jpg b/src/app/(category)/frontend/(projects)/phonepe/assests/free.jpg similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/free.jpg rename to src/app/(category)/frontend/(projects)/phonepe/assests/free.jpg diff --git a/Front-end-Projects/Basic/PhonePe/assests/get.png b/src/app/(category)/frontend/(projects)/phonepe/assests/get.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/get.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/get.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/image.png b/src/app/(category)/frontend/(projects)/phonepe/assests/image.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/image.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/image.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/ins.png b/src/app/(category)/frontend/(projects)/phonepe/assests/ins.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/ins.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/ins.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/logo.jpg b/src/app/(category)/frontend/(projects)/phonepe/assests/logo.jpg similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/logo.jpg rename to src/app/(category)/frontend/(projects)/phonepe/assests/logo.jpg diff --git a/Front-end-Projects/Basic/PhonePe/assests/logo.png b/src/app/(category)/frontend/(projects)/phonepe/assests/logo.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/logo.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/logo.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/manage.jpg b/src/app/(category)/frontend/(projects)/phonepe/assests/manage.jpg similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/manage.jpg rename to src/app/(category)/frontend/(projects)/phonepe/assests/manage.jpg diff --git a/Front-end-Projects/Basic/PhonePe/assests/market.jpg b/src/app/(category)/frontend/(projects)/phonepe/assests/market.jpg similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/market.jpg rename to src/app/(category)/frontend/(projects)/phonepe/assests/market.jpg diff --git a/Front-end-Projects/Basic/PhonePe/assests/money.png b/src/app/(category)/frontend/(projects)/phonepe/assests/money.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/money.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/money.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/phn.png b/src/app/(category)/frontend/(projects)/phonepe/assests/phn.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/phn.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/phn.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/pluse.jpg b/src/app/(category)/frontend/(projects)/phonepe/assests/pluse.jpg similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/pluse.jpg rename to src/app/(category)/frontend/(projects)/phonepe/assests/pluse.jpg diff --git a/Front-end-Projects/Basic/PhonePe/assests/pos.jpg b/src/app/(category)/frontend/(projects)/phonepe/assests/pos.jpg similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/pos.jpg rename to src/app/(category)/frontend/(projects)/phonepe/assests/pos.jpg diff --git a/Front-end-Projects/Basic/PhonePe/assests/pyment.mp4 b/src/app/(category)/frontend/(projects)/phonepe/assests/pyment.mp4 similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/pyment.mp4 rename to src/app/(category)/frontend/(projects)/phonepe/assests/pyment.mp4 diff --git a/Front-end-Projects/Basic/PhonePe/assests/secure.png b/src/app/(category)/frontend/(projects)/phonepe/assests/secure.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/secure.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/secure.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/sisa.png b/src/app/(category)/frontend/(projects)/phonepe/assests/sisa.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/sisa.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/sisa.png diff --git a/Front-end-Projects/Basic/PhonePe/assests/sut.png b/src/app/(category)/frontend/(projects)/phonepe/assests/sut.png similarity index 100% rename from Front-end-Projects/Basic/PhonePe/assests/sut.png rename to src/app/(category)/frontend/(projects)/phonepe/assests/sut.png diff --git a/Front-end-Projects/Basic/PhonePe/index.html b/src/app/(category)/frontend/(projects)/phonepe/index.html similarity index 100% rename from Front-end-Projects/Basic/PhonePe/index.html rename to src/app/(category)/frontend/(projects)/phonepe/index.html diff --git a/Front-end-Projects/Basic/PhonePe/screenshot.webp b/src/app/(category)/frontend/(projects)/phonepe/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/PhonePe/screenshot.webp rename to src/app/(category)/frontend/(projects)/phonepe/screenshot.webp diff --git a/Front-end-Projects/Basic/PhonePe/style.css b/src/app/(category)/frontend/(projects)/phonepe/style.css similarity index 100% rename from Front-end-Projects/Basic/PhonePe/style.css rename to src/app/(category)/frontend/(projects)/phonepe/style.css diff --git a/Front-end-Projects/Basic/Pokemon-Card/README.md b/src/app/(category)/frontend/(projects)/pokemon-card/README.md similarity index 100% rename from Front-end-Projects/Basic/Pokemon-Card/README.md rename to src/app/(category)/frontend/(projects)/pokemon-card/README.md diff --git a/Front-end-Projects/Basic/Pokemon-Card/images/background.jpg b/src/app/(category)/frontend/(projects)/pokemon-card/images/background.jpg similarity index 100% rename from Front-end-Projects/Basic/Pokemon-Card/images/background.jpg rename to src/app/(category)/frontend/(projects)/pokemon-card/images/background.jpg diff --git a/Front-end-Projects/Basic/Pokemon-Card/images/charizard_profile.png b/src/app/(category)/frontend/(projects)/pokemon-card/images/charizard_profile.png similarity index 100% rename from Front-end-Projects/Basic/Pokemon-Card/images/charizard_profile.png rename to src/app/(category)/frontend/(projects)/pokemon-card/images/charizard_profile.png diff --git a/Front-end-Projects/Basic/Pokemon-Card/index.html b/src/app/(category)/frontend/(projects)/pokemon-card/index.html similarity index 100% rename from Front-end-Projects/Basic/Pokemon-Card/index.html rename to src/app/(category)/frontend/(projects)/pokemon-card/index.html diff --git a/Front-end-Projects/Basic/Pokemon-Card/screenshot.webp b/src/app/(category)/frontend/(projects)/pokemon-card/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Pokemon-Card/screenshot.webp rename to src/app/(category)/frontend/(projects)/pokemon-card/screenshot.webp diff --git a/Front-end-Projects/Basic/Pokemon-Card/styles.css b/src/app/(category)/frontend/(projects)/pokemon-card/styles.css similarity index 100% rename from Front-end-Projects/Basic/Pokemon-Card/styles.css rename to src/app/(category)/frontend/(projects)/pokemon-card/styles.css diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/README.md b/src/app/(category)/frontend/(projects)/product-landing-page/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/README.md rename to src/app/(category)/frontend/(projects)/product-landing-page/README.md diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/bg.jpg b/src/app/(category)/frontend/(projects)/product-landing-page/assests/bg.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/bg.jpg rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/bg.jpg diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/contact.jpg b/src/app/(category)/frontend/(projects)/product-landing-page/assests/contact.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/contact.jpg rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/contact.jpg diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/facebook.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/facebook.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/facebook.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/facebook.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/freeshipping.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/freeshipping.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/freeshipping.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/freeshipping.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/gift.jpg b/src/app/(category)/frontend/(projects)/product-landing-page/assests/gift.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/gift.jpg rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/gift.jpg diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/image.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/image.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/image.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/image.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/instagram.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/instagram.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/instagram.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/instagram.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/people.jpg b/src/app/(category)/frontend/(projects)/product-landing-page/assests/people.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/people.jpg rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/people.jpg diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/people2.jpg b/src/app/(category)/frontend/(projects)/product-landing-page/assests/people2.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/people2.jpg rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/people2.jpg diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/people3.jpg b/src/app/(category)/frontend/(projects)/product-landing-page/assests/people3.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/people3.jpg rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/people3.jpg diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/search.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/search.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/search.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/search.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe2.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe2.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe2.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe2.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe3.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe3.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe3.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe3.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe4.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe4.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe4.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe4.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe5.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe5.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe5.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe5.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe6.jpg b/src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe6.jpg similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe6.jpg rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe6.jpg diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe7.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe7.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/shoe7.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/shoe7.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/sneakers.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/sneakers.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/sneakers.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/sneakers.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/twitter.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/twitter.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/twitter.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/twitter.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/assests/whatsapp.png b/src/app/(category)/frontend/(projects)/product-landing-page/assests/whatsapp.png similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/assests/whatsapp.png rename to src/app/(category)/frontend/(projects)/product-landing-page/assests/whatsapp.png diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/index.html b/src/app/(category)/frontend/(projects)/product-landing-page/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/index.html rename to src/app/(category)/frontend/(projects)/product-landing-page/index.html diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/screenshot.webp b/src/app/(category)/frontend/(projects)/product-landing-page/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/screenshot.webp rename to src/app/(category)/frontend/(projects)/product-landing-page/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/screenshot2.webp b/src/app/(category)/frontend/(projects)/product-landing-page/screenshot2.webp similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/screenshot2.webp rename to src/app/(category)/frontend/(projects)/product-landing-page/screenshot2.webp diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/screenshot3.webp b/src/app/(category)/frontend/(projects)/product-landing-page/screenshot3.webp similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/screenshot3.webp rename to src/app/(category)/frontend/(projects)/product-landing-page/screenshot3.webp diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/script.js b/src/app/(category)/frontend/(projects)/product-landing-page/script.js similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/script.js rename to src/app/(category)/frontend/(projects)/product-landing-page/script.js diff --git a/Front-end-Projects/Intermediate/Product-Landing-Page/styles.css b/src/app/(category)/frontend/(projects)/product-landing-page/styles.css similarity index 100% rename from Front-end-Projects/Intermediate/Product-Landing-Page/styles.css rename to src/app/(category)/frontend/(projects)/product-landing-page/styles.css diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/README.md b/src/app/(category)/frontend/(projects)/reddit-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/README.md rename to src/app/(category)/frontend/(projects)/reddit-clone/README.md diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/abouticon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/abouticon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/abouticon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/abouticon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/advertiseicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/advertiseicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/advertiseicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/advertiseicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/aesthetic.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/aesthetic.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/aesthetic.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/aesthetic.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/aestheticpaper.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/aestheticpaper.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/aestheticpaper.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/aestheticpaper.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/aestheticpost.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/aestheticpost.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/aestheticpost.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/aestheticpost.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/arrow.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/arrow.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/arrow.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/arrow.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/aurora.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/aurora.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/aurora.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/aurora.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/avengers.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/avengers.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/avengers.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/avengers.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/blogicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/blogicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/blogicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/blogicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/car.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/car.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/car.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/car.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/careersicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/careersicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/careersicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/careersicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/chaticon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/chaticon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/chaticon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/chaticon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/climate.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/climate.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/climate.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/climate.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/elon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/elon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/elon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/elon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/elonmusk.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/elonmusk.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/elonmusk.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/elonmusk.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/gameicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/gameicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/gameicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/gameicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/helpicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/helpicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/helpicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/helpicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/home.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/home.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/home.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/home.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/icon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/icon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/icon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/icon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/internetcultureicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/internetcultureicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/internetcultureicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/internetcultureicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/ipl-navbar-icon.svg b/src/app/(category)/frontend/(projects)/reddit-clone/assets/ipl-navbar-icon.svg similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/ipl-navbar-icon.svg rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/ipl-navbar-icon.svg diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/ironman.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/ironman.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/ironman.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/ironman.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/kang.mp4 b/src/app/(category)/frontend/(projects)/reddit-clone/assets/kang.mp4 similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/kang.mp4 rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/kang.mp4 diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/kang.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/kang.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/kang.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/kang.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/landscape.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/landscape.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/landscape.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/landscape.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/likeicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/likeicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/likeicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/likeicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/marvellogo.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/marvellogo.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/marvellogo.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/marvellogo.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/mikeicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/mikeicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/mikeicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/mikeicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/mov.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/mov.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/mov.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/mov.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/moviesicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/moviesicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/moviesicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/moviesicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/nasa.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/nasa.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/nasa.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/nasa.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/nasa2.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/nasa2.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/nasa2.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/nasa2.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/nav-icon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/nav-icon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/nav-icon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/nav-icon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/popculture.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/popculture.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/popculture.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/popculture.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/popular.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/popular.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/popular.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/popular.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/qnaicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/qnaicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/qnaicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/qnaicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/qrcode-icon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/qrcode-icon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/qrcode-icon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/qrcode-icon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/searchicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/searchicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/searchicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/searchicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/share.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/share.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/share.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/share.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/space.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/space.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/space.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/space.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/spaceship.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/spaceship.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/spaceship.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/spaceship.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/supercar.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/supercar.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/supercar.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/supercar.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/assets/technologyicon.png b/src/app/(category)/frontend/(projects)/reddit-clone/assets/technologyicon.png similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/assets/technologyicon.png rename to src/app/(category)/frontend/(projects)/reddit-clone/assets/technologyicon.png diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/index.html b/src/app/(category)/frontend/(projects)/reddit-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/index.html rename to src/app/(category)/frontend/(projects)/reddit-clone/index.html diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/reddit-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/reddit-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/script.js b/src/app/(category)/frontend/(projects)/reddit-clone/script.js similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/script.js rename to src/app/(category)/frontend/(projects)/reddit-clone/script.js diff --git a/Front-end-Projects/Intermediate/Reddit-Clone/style.css b/src/app/(category)/frontend/(projects)/reddit-clone/style.css similarity index 100% rename from Front-end-Projects/Intermediate/Reddit-Clone/style.css rename to src/app/(category)/frontend/(projects)/reddit-clone/style.css diff --git a/Front-end-Projects/Basic/Sidebar-Menu/README.md b/src/app/(category)/frontend/(projects)/sidebar-menu/README.md similarity index 100% rename from Front-end-Projects/Basic/Sidebar-Menu/README.md rename to src/app/(category)/frontend/(projects)/sidebar-menu/README.md diff --git a/Front-end-Projects/Basic/Sidebar-Menu/bg.jpg b/src/app/(category)/frontend/(projects)/sidebar-menu/bg.jpg similarity index 100% rename from Front-end-Projects/Basic/Sidebar-Menu/bg.jpg rename to src/app/(category)/frontend/(projects)/sidebar-menu/bg.jpg diff --git a/Front-end-Projects/Basic/Sidebar-Menu/screenshot.webp b/src/app/(category)/frontend/(projects)/sidebar-menu/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Sidebar-Menu/screenshot.webp rename to src/app/(category)/frontend/(projects)/sidebar-menu/screenshot.webp diff --git a/Front-end-Projects/Basic/Sidebar-Menu/sidebarMenu.css b/src/app/(category)/frontend/(projects)/sidebar-menu/sidebarMenu.css similarity index 94% rename from Front-end-Projects/Basic/Sidebar-Menu/sidebarMenu.css rename to src/app/(category)/frontend/(projects)/sidebar-menu/sidebarMenu.css index bda1a5d1..f02ae651 100644 --- a/Front-end-Projects/Basic/Sidebar-Menu/sidebarMenu.css +++ b/src/app/(category)/frontend/(projects)/sidebar-menu/sidebarMenu.css @@ -1,133 +1,133 @@ -*{ - padding: 0; - margin: 0; - font-family: "Poppins", sans-serif; - border: border-box; -} - -.main-box{ - background-image: url(bg.jpg); - background-size: cover; - height: 100vh; -} - -.btn-one i{ - color: white; - font-size: 30px; - position: absolute; - left: 50px; - line-height: 100px; - cursor: pointer; - transition: all 0.3s ease; -} - -.btn-one i:hover{ - font-size: 35px; -} - -.sidebar-menu{ - position: fixed; - left: -400px; - height: 100vh; - width: 270px; - background-color: rgba(255, 255, 255, 0.1); - box-shadow: 0 0 8px rgba(255, 255, 255, 0.5); - transition: all 0.5s ease-in-out; -} - -.sidebar-menu .logo{ - position: absolute; - width: 100%; - line-height: 60px; - box-shadow: -3px 0 6px rgba(255, 255, 255, 0.3); - height: 70px; -} - -.sidebar-menu .logo a{ - position: absolute; - text-decoration: none; - color: wheat; - font-size: 35px; - font-weight: 600; - left: 20px; - margin-top: 5px; -} - -.btn-two i{ - font-size: 20px; - color: gray; - line-height: 70px; - position: absolute; - left: 245px; - transition: all 0.3s ease; - cursor: pointer; -} - -.btn-two i:hover{ - font-size: 23px; -} - -.sidebar-menu .menu{ - color: white; - position: absolute; - width: 100%; - top: 70px; -} - -.sidebar-menu .menu li{ - margin-top: 4px; - padding: 13px 20px; -} - -.sidebar-menu .menu ul .first{ - margin-top: 0; -} - -.sidebar-menu .menu li:hover{ - box-shadow: 0 0 6px rgba(255, 255, 255, 0.3); -} - -.sidebar-menu .menu a{ - text-decoration: none; - color: white; - position: absolute; - margin-left: 10px; - font-size: 20px; -} - -.sidebar-menu .menu i{ - font-size: 20px; -} - -.sidebar-menu .social-media{ - position: absolute; - left: 18%; - bottom: 20px; -} - -.sidebar-menu .social-media i{ - color: wheat; - opacity: 0.3; - font-size: 20px; - padding: 0 5px; - transition: all 0.2s ease-in; - cursor: pointer; -} - -.sidebar-menu .social-media i:hover{ - opacity: 0.7; - transform: scale(1.2); -} - -#check{ - display: none; -} - -#check:checked ~ .sidebar-menu{ - left: 0; -} - -#check:checked ~ .btn-one{ - display: none; -} - +*{ + padding: 0; + margin: 0; + font-family: "Poppins", sans-serif; + border: border-box; +} + +.main-box{ + background-image: url(bg.jpg); + background-size: cover; + height: 100vh; +} + +.btn-one i{ + color: white; + font-size: 30px; + position: absolute; + left: 50px; + line-height: 100px; + cursor: pointer; + transition: all 0.3s ease; +} + +.btn-one i:hover{ + font-size: 35px; +} + +.sidebar-menu{ + position: fixed; + left: -400px; + height: 100vh; + width: 270px; + background-color: rgba(255, 255, 255, 0.1); + box-shadow: 0 0 8px rgba(255, 255, 255, 0.5); + transition: all 0.5s ease-in-out; +} + +.sidebar-menu .logo{ + position: absolute; + width: 100%; + line-height: 60px; + box-shadow: -3px 0 6px rgba(255, 255, 255, 0.3); + height: 70px; +} + +.sidebar-menu .logo a{ + position: absolute; + text-decoration: none; + color: wheat; + font-size: 35px; + font-weight: 600; + left: 20px; + margin-top: 5px; +} + +.btn-two i{ + font-size: 20px; + color: gray; + line-height: 70px; + position: absolute; + left: 245px; + transition: all 0.3s ease; + cursor: pointer; +} + +.btn-two i:hover{ + font-size: 23px; +} + +.sidebar-menu .menu{ + color: white; + position: absolute; + width: 100%; + top: 70px; +} + +.sidebar-menu .menu li{ + margin-top: 4px; + padding: 13px 20px; +} + +.sidebar-menu .menu ul .first{ + margin-top: 0; +} + +.sidebar-menu .menu li:hover{ + box-shadow: 0 0 6px rgba(255, 255, 255, 0.3); +} + +.sidebar-menu .menu a{ + text-decoration: none; + color: white; + position: absolute; + margin-left: 10px; + font-size: 20px; +} + +.sidebar-menu .menu i{ + font-size: 20px; +} + +.sidebar-menu .social-media{ + position: absolute; + left: 18%; + bottom: 20px; +} + +.sidebar-menu .social-media i{ + color: wheat; + opacity: 0.3; + font-size: 20px; + padding: 0 5px; + transition: all 0.2s ease-in; + cursor: pointer; +} + +.sidebar-menu .social-media i:hover{ + opacity: 0.7; + transform: scale(1.2); +} + +#check{ + display: none; +} + +#check:checked ~ .sidebar-menu{ + left: 0; +} + +#check:checked ~ .btn-one{ + display: none; +} + diff --git a/Front-end-Projects/Basic/Sidebar-Menu/sidebarMenu.html b/src/app/(category)/frontend/(projects)/sidebar-menu/sidebarMenu.html similarity index 97% rename from Front-end-Projects/Basic/Sidebar-Menu/sidebarMenu.html rename to src/app/(category)/frontend/(projects)/sidebar-menu/sidebarMenu.html index b8ea6e97..79a12cbf 100644 --- a/Front-end-Projects/Basic/Sidebar-Menu/sidebarMenu.html +++ b/src/app/(category)/frontend/(projects)/sidebar-menu/sidebarMenu.html @@ -1,92 +1,92 @@ - - - - - - - Sidebar Menu - - - - - - - - - -
- -
- -
- - -
- - + + + + + + + Sidebar Menu + + + + + + + + + +
+ +
+ +
+ + +
+ + \ No newline at end of file diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/README.md b/src/app/(category)/frontend/(projects)/spacex-website-clone/README.md similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/README.md rename to src/app/(category)/frontend/(projects)/spacex-website-clone/README.md diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/img/logo.png b/src/app/(category)/frontend/(projects)/spacex-website-clone/img/logo.png similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/img/logo.png rename to src/app/(category)/frontend/(projects)/spacex-website-clone/img/logo.png diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-a.webp b/src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-a.webp similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-a.webp rename to src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-a.webp diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-b.webp b/src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-b.webp similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-b.webp rename to src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-b.webp diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-c.webp b/src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-c.webp similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-c.webp rename to src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-c.webp diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-d.webp b/src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-d.webp similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-d.webp rename to src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-d.webp diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-e.webp b/src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-e.webp similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-e.webp rename to src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-e.webp diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-f.webp b/src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-f.webp similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/img/section-f.webp rename to src/app/(category)/frontend/(projects)/spacex-website-clone/img/section-f.webp diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/index.html b/src/app/(category)/frontend/(projects)/spacex-website-clone/index.html similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/index.html rename to src/app/(category)/frontend/(projects)/spacex-website-clone/index.html diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/spacex-website-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/spacex-website-clone/screenshot.webp diff --git a/Front-end-Projects/Basic/SpaceX-Website-Clone/style.css b/src/app/(category)/frontend/(projects)/spacex-website-clone/style.css similarity index 100% rename from Front-end-Projects/Basic/SpaceX-Website-Clone/style.css rename to src/app/(category)/frontend/(projects)/spacex-website-clone/style.css diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/README.md b/src/app/(category)/frontend/(projects)/spotify-clone/README.md similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/README.md rename to src/app/(category)/frontend/(projects)/spotify-clone/README.md diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/alpha.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/alpha.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/alpha.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/alpha.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/cover-image.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/cover-image.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/cover-image.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/cover-image.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/disc.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/disc.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/disc.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/disc.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/for-you.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/for-you.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/for-you.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/for-you.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/gutar-gu.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/gutar-gu.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/gutar-gu.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/gutar-gu.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/indigo.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/indigo.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/indigo.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/indigo.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/interstellar.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/interstellar.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/interstellar.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/interstellar.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/like.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/like.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/like.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/like.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/memories.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/memories.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/memories.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/memories.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/naina.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/naina.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/naina.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/naina.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/on-repeat.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/on-repeat.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/on-repeat.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/on-repeat.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/pain.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/pain.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/pain.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/pain.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/play-hover-icon.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/play-hover-icon.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/play-hover-icon.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/play-hover-icon.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/poker-face.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/poker-face.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/poker-face.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/poker-face.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/project-baby.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/project-baby.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/project-baby.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/project-baby.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/she-said-disco.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/she-said-disco.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/she-said-disco.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/she-said-disco.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/song-name.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/song-name.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/song-name.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/song-name.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/star-boy.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/star-boy.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/star-boy.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/star-boy.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/the-escape.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/the-escape.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/the-escape.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/the-escape.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/true-love.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/true-love.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/true-love.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/true-love.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/assets/xxx.png b/src/app/(category)/frontend/(projects)/spotify-clone/assets/xxx.png similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/assets/xxx.png rename to src/app/(category)/frontend/(projects)/spotify-clone/assets/xxx.png diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/index.html b/src/app/(category)/frontend/(projects)/spotify-clone/index.html similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/index.html rename to src/app/(category)/frontend/(projects)/spotify-clone/index.html diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/screenshot.webp b/src/app/(category)/frontend/(projects)/spotify-clone/screenshot.webp similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/screenshot.webp rename to src/app/(category)/frontend/(projects)/spotify-clone/screenshot.webp diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/screenshot2.webp b/src/app/(category)/frontend/(projects)/spotify-clone/screenshot2.webp similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/screenshot2.webp rename to src/app/(category)/frontend/(projects)/spotify-clone/screenshot2.webp diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/screenshot3.webp b/src/app/(category)/frontend/(projects)/spotify-clone/screenshot3.webp similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/screenshot3.webp rename to src/app/(category)/frontend/(projects)/spotify-clone/screenshot3.webp diff --git a/Front-end-Projects/Intermediate/Spotify-Clone/style.css b/src/app/(category)/frontend/(projects)/spotify-clone/style.css similarity index 100% rename from Front-end-Projects/Intermediate/Spotify-Clone/style.css rename to src/app/(category)/frontend/(projects)/spotify-clone/style.css diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/README.md b/src/app/(category)/frontend/(projects)/starbucks-landing-page/README.md similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/README.md rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/README.md diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/Starbucks.png b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/Starbucks.png similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/Starbucks.png rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/Starbucks.png diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/facebook.png b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/facebook.png similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/facebook.png rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/facebook.png diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/image1.webp b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image1.webp similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/image1.webp rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image1.webp diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/image2.jpg b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image2.jpg similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/image2.jpg rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image2.jpg diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/image3.webp b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image3.webp similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/image3.webp rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image3.webp diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/image4.webp b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image4.webp similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/image4.webp rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image4.webp diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/image5.webp b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image5.webp similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/image5.webp rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/image5.webp diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/instagram.webp b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/instagram.webp similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/instagram.webp rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/instagram.webp diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/location.jpg b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/location.jpg similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/location.jpg rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/location.jpg diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/pin.png b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/pin.png similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/pin.png rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/pin.png diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/spotify.png b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/spotify.png similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/spotify.png rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/spotify.png diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/stbpist.jpg b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/stbpist.jpg similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/stbpist.jpg rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/stbpist.jpg diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/twitter.png b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/twitter.png similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/twitter.png rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/twitter.png diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/images/youtube.webp b/src/app/(category)/frontend/(projects)/starbucks-landing-page/images/youtube.webp similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/images/youtube.webp rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/images/youtube.webp diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/index.html b/src/app/(category)/frontend/(projects)/starbucks-landing-page/index.html similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/index.html rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/index.html diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/screenshot.webp b/src/app/(category)/frontend/(projects)/starbucks-landing-page/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/screenshot.webp rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/screenshot.webp diff --git a/Front-end-Projects/Basic/Starbucks-Landing-page/style.css b/src/app/(category)/frontend/(projects)/starbucks-landing-page/style.css similarity index 100% rename from Front-end-Projects/Basic/Starbucks-Landing-page/style.css rename to src/app/(category)/frontend/(projects)/starbucks-landing-page/style.css diff --git a/Front-end-Projects/Basic/Survey-Form/README.md b/src/app/(category)/frontend/(projects)/survey-form/README.md similarity index 100% rename from Front-end-Projects/Basic/Survey-Form/README.md rename to src/app/(category)/frontend/(projects)/survey-form/README.md diff --git a/Front-end-Projects/Basic/Survey-Form/index.html b/src/app/(category)/frontend/(projects)/survey-form/index.html similarity index 100% rename from Front-end-Projects/Basic/Survey-Form/index.html rename to src/app/(category)/frontend/(projects)/survey-form/index.html diff --git a/Front-end-Projects/Basic/Survey-Form/screenshot.webp b/src/app/(category)/frontend/(projects)/survey-form/screenshot.webp similarity index 100% rename from Front-end-Projects/Basic/Survey-Form/screenshot.webp rename to src/app/(category)/frontend/(projects)/survey-form/screenshot.webp diff --git a/Front-end-Projects/Basic/Survey-Form/styles.css b/src/app/(category)/frontend/(projects)/survey-form/styles.css similarity index 100% rename from Front-end-Projects/Basic/Survey-Form/styles.css rename to src/app/(category)/frontend/(projects)/survey-form/styles.css diff --git a/src/app/(category)/frontend/page.tsx b/src/app/(category)/frontend/page.tsx new file mode 100644 index 00000000..836d054f --- /dev/null +++ b/src/app/(category)/frontend/page.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import data from '../../../database/data.json'; +import { ProjectsData } from '../../../types'; +import ProjectCard from '../../../components/shared/ProjectCard'; + +const levels = ['beginner', 'intermediate', 'advanced'] as const; + +const page = () => { + const projects = data.frontend as ProjectsData; + + return ( +
+ {levels.map((level) => ( +
+ {projects[level].map((project, index) => ( + + ))} +
+ ))} +
+ ) +} + +export default page; \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/3D-Solar-System/README.md b/src/app/(category)/javascript/(projects)/3d-solar-system/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/3D-Solar-System/README.md rename to src/app/(category)/javascript/(projects)/3d-solar-system/README.md diff --git a/Vanilla-JS-Projects/Basic/3D-Solar-System/index.html b/src/app/(category)/javascript/(projects)/3d-solar-system/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/3D-Solar-System/index.html rename to src/app/(category)/javascript/(projects)/3d-solar-system/index.html diff --git a/Vanilla-JS-Projects/Basic/3D-Solar-System/screenshot.webp b/src/app/(category)/javascript/(projects)/3d-solar-system/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/3D-Solar-System/screenshot.webp rename to src/app/(category)/javascript/(projects)/3d-solar-system/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/3D-Solar-System/script.js b/src/app/(category)/javascript/(projects)/3d-solar-system/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/3D-Solar-System/script.js rename to src/app/(category)/javascript/(projects)/3d-solar-system/script.js diff --git a/Vanilla-JS-Projects/Basic/3D-Solar-System/style.css b/src/app/(category)/javascript/(projects)/3d-solar-system/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/3D-Solar-System/style.css rename to src/app/(category)/javascript/(projects)/3d-solar-system/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/README.md b/src/app/(category)/javascript/(projects)/amazon-clone/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/README.md rename to src/app/(category)/javascript/(projects)/amazon-clone/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/amazon.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/amazon.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/amazon.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/amazon.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/carousel1.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/carousel1.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/carousel1.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/carousel1.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/carousel2.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/carousel2.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/carousel2.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/carousel2.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/carousel3.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/carousel3.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/carousel3.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/carousel3.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/carousel4.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/carousel4.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/carousel4.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/carousel4.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/favicon.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/favicon.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/favicon.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/favicon.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/flag.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/flag.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/flag.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/flag.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/item1.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/item1.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/item1.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/item1.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/item2.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/item2.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/item2.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/item2.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/item3.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/item3.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/item3.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/item3.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/item4.png b/src/app/(category)/javascript/(projects)/amazon-clone/images/item4.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/images/item4.png rename to src/app/(category)/javascript/(projects)/amazon-clone/images/item4.png diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/index.html b/src/app/(category)/javascript/(projects)/amazon-clone/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/index.html rename to src/app/(category)/javascript/(projects)/amazon-clone/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/screenshot.webp b/src/app/(category)/javascript/(projects)/amazon-clone/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/screenshot.webp rename to src/app/(category)/javascript/(projects)/amazon-clone/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/script.js b/src/app/(category)/javascript/(projects)/amazon-clone/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/script.js rename to src/app/(category)/javascript/(projects)/amazon-clone/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Amazon-Clone/styles.css b/src/app/(category)/javascript/(projects)/amazon-clone/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Amazon-Clone/styles.css rename to src/app/(category)/javascript/(projects)/amazon-clone/styles.css diff --git a/Vanilla-JS-Projects/Basic/Anagram-Checker/README.md b/src/app/(category)/javascript/(projects)/anagram-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Anagram-Checker/README.md rename to src/app/(category)/javascript/(projects)/anagram-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Anagram-Checker/index.html b/src/app/(category)/javascript/(projects)/anagram-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Anagram-Checker/index.html rename to src/app/(category)/javascript/(projects)/anagram-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Anagram-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/anagram-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Anagram-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/anagram-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Anagram-Checker/script.js b/src/app/(category)/javascript/(projects)/anagram-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Anagram-Checker/script.js rename to src/app/(category)/javascript/(projects)/anagram-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Anagram-Checker/style.css b/src/app/(category)/javascript/(projects)/anagram-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Anagram-Checker/style.css rename to src/app/(category)/javascript/(projects)/anagram-checker/style.css diff --git a/Vanilla-JS-Projects/Basic/Analog-Clock/README.md b/src/app/(category)/javascript/(projects)/analog-clock/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Analog-Clock/README.md rename to src/app/(category)/javascript/(projects)/analog-clock/README.md diff --git a/Vanilla-JS-Projects/Basic/Analog-Clock/index.html b/src/app/(category)/javascript/(projects)/analog-clock/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Analog-Clock/index.html rename to src/app/(category)/javascript/(projects)/analog-clock/index.html diff --git a/Vanilla-JS-Projects/Basic/Analog-Clock/index.js b/src/app/(category)/javascript/(projects)/analog-clock/index.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Analog-Clock/index.js rename to src/app/(category)/javascript/(projects)/analog-clock/index.js diff --git a/Vanilla-JS-Projects/Basic/Analog-Clock/screenshot.webp b/src/app/(category)/javascript/(projects)/analog-clock/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Analog-Clock/screenshot.webp rename to src/app/(category)/javascript/(projects)/analog-clock/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Analog-Clock/styles.css b/src/app/(category)/javascript/(projects)/analog-clock/styles.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Analog-Clock/styles.css rename to src/app/(category)/javascript/(projects)/analog-clock/styles.css diff --git a/Vanilla-JS-Projects/Basic/Apna-College-Clone/README.md b/src/app/(category)/javascript/(projects)/apna-college-clone/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Apna-College-Clone/README.md rename to src/app/(category)/javascript/(projects)/apna-college-clone/README.md diff --git a/Vanilla-JS-Projects/Basic/Apna-College-Clone/img/logo.png b/src/app/(category)/javascript/(projects)/apna-college-clone/img/logo.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Apna-College-Clone/img/logo.png rename to src/app/(category)/javascript/(projects)/apna-college-clone/img/logo.png diff --git a/Vanilla-JS-Projects/Basic/Apna-College-Clone/img/sradha.jpg b/src/app/(category)/javascript/(projects)/apna-college-clone/img/sradha.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Apna-College-Clone/img/sradha.jpg rename to src/app/(category)/javascript/(projects)/apna-college-clone/img/sradha.jpg diff --git a/Vanilla-JS-Projects/Basic/Apna-College-Clone/index.html b/src/app/(category)/javascript/(projects)/apna-college-clone/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Apna-College-Clone/index.html rename to src/app/(category)/javascript/(projects)/apna-college-clone/index.html diff --git a/Vanilla-JS-Projects/Basic/Apna-College-Clone/screenshot.webp b/src/app/(category)/javascript/(projects)/apna-college-clone/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Apna-College-Clone/screenshot.webp rename to src/app/(category)/javascript/(projects)/apna-college-clone/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Apna-College-Clone/script.js b/src/app/(category)/javascript/(projects)/apna-college-clone/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Apna-College-Clone/script.js rename to src/app/(category)/javascript/(projects)/apna-college-clone/script.js diff --git a/Vanilla-JS-Projects/Basic/Apna-College-Clone/style.css b/src/app/(category)/javascript/(projects)/apna-college-clone/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Apna-College-Clone/style.css rename to src/app/(category)/javascript/(projects)/apna-college-clone/style.css diff --git a/Vanilla-JS-Projects/Advanced/Audio-Analyzer/README.md b/src/app/(category)/javascript/(projects)/audio-analyzer/README.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/Audio-Analyzer/README.md rename to src/app/(category)/javascript/(projects)/audio-analyzer/README.md diff --git a/Vanilla-JS-Projects/Advanced/Audio-Analyzer/index.html b/src/app/(category)/javascript/(projects)/audio-analyzer/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/Audio-Analyzer/index.html rename to src/app/(category)/javascript/(projects)/audio-analyzer/index.html diff --git a/Vanilla-JS-Projects/Advanced/Audio-Analyzer/screenshot.webp b/src/app/(category)/javascript/(projects)/audio-analyzer/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Audio-Analyzer/screenshot.webp rename to src/app/(category)/javascript/(projects)/audio-analyzer/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Audio-Analyzer/script.js b/src/app/(category)/javascript/(projects)/audio-analyzer/script.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/Audio-Analyzer/script.js rename to src/app/(category)/javascript/(projects)/audio-analyzer/script.js diff --git a/Vanilla-JS-Projects/Advanced/Audio-Analyzer/style.css b/src/app/(category)/javascript/(projects)/audio-analyzer/style.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/Audio-Analyzer/style.css rename to src/app/(category)/javascript/(projects)/audio-analyzer/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/README.md b/src/app/(category)/javascript/(projects)/battery-status-tracker/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/README.md rename to src/app/(category)/javascript/(projects)/battery-status-tracker/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/assets/img/favicon.png b/src/app/(category)/javascript/(projects)/battery-status-tracker/assets/img/favicon.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/assets/img/favicon.png rename to src/app/(category)/javascript/(projects)/battery-status-tracker/assets/img/favicon.png diff --git a/Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/index.html b/src/app/(category)/javascript/(projects)/battery-status-tracker/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/index.html rename to src/app/(category)/javascript/(projects)/battery-status-tracker/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/main.js b/src/app/(category)/javascript/(projects)/battery-status-tracker/main.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/main.js rename to src/app/(category)/javascript/(projects)/battery-status-tracker/main.js diff --git a/Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/screenshot.webp b/src/app/(category)/javascript/(projects)/battery-status-tracker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/screenshot.webp rename to src/app/(category)/javascript/(projects)/battery-status-tracker/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/styles.css b/src/app/(category)/javascript/(projects)/battery-status-tracker/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Battery-Status-Tracker/styles.css rename to src/app/(category)/javascript/(projects)/battery-status-tracker/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Book-Review-Website/README.md b/src/app/(category)/javascript/(projects)/book-review-website/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Book-Review-Website/README.md rename to src/app/(category)/javascript/(projects)/book-review-website/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Book-Review-Website/index.html b/src/app/(category)/javascript/(projects)/book-review-website/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Book-Review-Website/index.html rename to src/app/(category)/javascript/(projects)/book-review-website/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Book-Review-Website/screenshot.webp b/src/app/(category)/javascript/(projects)/book-review-website/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Book-Review-Website/screenshot.webp rename to src/app/(category)/javascript/(projects)/book-review-website/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Book-Review-Website/script.js b/src/app/(category)/javascript/(projects)/book-review-website/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Book-Review-Website/script.js rename to src/app/(category)/javascript/(projects)/book-review-website/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Book-Review-Website/styles.css b/src/app/(category)/javascript/(projects)/book-review-website/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Book-Review-Website/styles.css rename to src/app/(category)/javascript/(projects)/book-review-website/styles.css diff --git a/Vanilla-JS-Projects/Basic/Bulb-On-Off/README.md b/src/app/(category)/javascript/(projects)/bulb-on-off/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Bulb-On-Off/README.md rename to src/app/(category)/javascript/(projects)/bulb-on-off/README.md diff --git a/Vanilla-JS-Projects/Basic/Bulb-On-Off/index.html b/src/app/(category)/javascript/(projects)/bulb-on-off/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Bulb-On-Off/index.html rename to src/app/(category)/javascript/(projects)/bulb-on-off/index.html diff --git a/Vanilla-JS-Projects/Basic/Bulb-On-Off/screenshot.webp b/src/app/(category)/javascript/(projects)/bulb-on-off/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Bulb-On-Off/screenshot.webp rename to src/app/(category)/javascript/(projects)/bulb-on-off/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Bulb-On-Off/script.js b/src/app/(category)/javascript/(projects)/bulb-on-off/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Bulb-On-Off/script.js rename to src/app/(category)/javascript/(projects)/bulb-on-off/script.js diff --git a/Vanilla-JS-Projects/Basic/Bulb-On-Off/style.css b/src/app/(category)/javascript/(projects)/bulb-on-off/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Bulb-On-Off/style.css rename to src/app/(category)/javascript/(projects)/bulb-on-off/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/IMG/down-arrow.svg b/src/app/(category)/javascript/(projects)/calendar-app/IMG/down-arrow.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/IMG/down-arrow.svg rename to src/app/(category)/javascript/(projects)/calendar-app/IMG/down-arrow.svg diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/IMG/left.svg b/src/app/(category)/javascript/(projects)/calendar-app/IMG/left.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/IMG/left.svg rename to src/app/(category)/javascript/(projects)/calendar-app/IMG/left.svg diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/IMG/right.svg b/src/app/(category)/javascript/(projects)/calendar-app/IMG/right.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/IMG/right.svg rename to src/app/(category)/javascript/(projects)/calendar-app/IMG/right.svg diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/README.md b/src/app/(category)/javascript/(projects)/calendar-app/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/README.md rename to src/app/(category)/javascript/(projects)/calendar-app/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/app.js b/src/app/(category)/javascript/(projects)/calendar-app/app.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/app.js rename to src/app/(category)/javascript/(projects)/calendar-app/app.js diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/index.html b/src/app/(category)/javascript/(projects)/calendar-app/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/index.html rename to src/app/(category)/javascript/(projects)/calendar-app/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/screenshot.webp b/src/app/(category)/javascript/(projects)/calendar-app/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/screenshot.webp rename to src/app/(category)/javascript/(projects)/calendar-app/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/style.css b/src/app/(category)/javascript/(projects)/calendar-app/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/style.css rename to src/app/(category)/javascript/(projects)/calendar-app/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Calendar-App/utility.css b/src/app/(category)/javascript/(projects)/calendar-app/utility.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Calendar-App/utility.css rename to src/app/(category)/javascript/(projects)/calendar-app/utility.css diff --git a/Vanilla-JS-Projects/Basic/Captcha-Generator/README.md b/src/app/(category)/javascript/(projects)/captcha-generator/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Captcha-Generator/README.md rename to src/app/(category)/javascript/(projects)/captcha-generator/README.md diff --git a/Vanilla-JS-Projects/Basic/Captcha-Generator/index.html b/src/app/(category)/javascript/(projects)/captcha-generator/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Captcha-Generator/index.html rename to src/app/(category)/javascript/(projects)/captcha-generator/index.html diff --git a/Vanilla-JS-Projects/Basic/Captcha-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/captcha-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Captcha-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/captcha-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Captcha-Generator/script.js b/src/app/(category)/javascript/(projects)/captcha-generator/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Captcha-Generator/script.js rename to src/app/(category)/javascript/(projects)/captcha-generator/script.js diff --git a/Vanilla-JS-Projects/Basic/Captcha-Generator/styles.css b/src/app/(category)/javascript/(projects)/captcha-generator/styles.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Captcha-Generator/styles.css rename to src/app/(category)/javascript/(projects)/captcha-generator/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/README.md b/src/app/(category)/javascript/(projects)/ceaser-cipher/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/README.md rename to src/app/(category)/javascript/(projects)/ceaser-cipher/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/cipher.css b/src/app/(category)/javascript/(projects)/ceaser-cipher/cipher.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/cipher.css rename to src/app/(category)/javascript/(projects)/ceaser-cipher/cipher.css diff --git a/Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/index.html b/src/app/(category)/javascript/(projects)/ceaser-cipher/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/index.html rename to src/app/(category)/javascript/(projects)/ceaser-cipher/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/main.js b/src/app/(category)/javascript/(projects)/ceaser-cipher/main.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/main.js rename to src/app/(category)/javascript/(projects)/ceaser-cipher/main.js diff --git a/Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/screenshot.webp b/src/app/(category)/javascript/(projects)/ceaser-cipher/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/screenshot.webp rename to src/app/(category)/javascript/(projects)/ceaser-cipher/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/style.css b/src/app/(category)/javascript/(projects)/ceaser-cipher/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Ceaser-Cipher/style.css rename to src/app/(category)/javascript/(projects)/ceaser-cipher/style.css diff --git a/Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/README.md b/src/app/(category)/javascript/(projects)/co-prime-number-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/README.md rename to src/app/(category)/javascript/(projects)/co-prime-number-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/index.html b/src/app/(category)/javascript/(projects)/co-prime-number-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/index.html rename to src/app/(category)/javascript/(projects)/co-prime-number-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/co-prime-number-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/co-prime-number-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/script.js b/src/app/(category)/javascript/(projects)/co-prime-number-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/script.js rename to src/app/(category)/javascript/(projects)/co-prime-number-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/style.css b/src/app/(category)/javascript/(projects)/co-prime-number-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Co-Prime-Number-Checker/style.css rename to src/app/(category)/javascript/(projects)/co-prime-number-checker/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Code-Editor/README.md b/src/app/(category)/javascript/(projects)/code-editor/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Code-Editor/README.md rename to src/app/(category)/javascript/(projects)/code-editor/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Code-Editor/index.html b/src/app/(category)/javascript/(projects)/code-editor/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Code-Editor/index.html rename to src/app/(category)/javascript/(projects)/code-editor/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Code-Editor/screenshot.webp b/src/app/(category)/javascript/(projects)/code-editor/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Code-Editor/screenshot.webp rename to src/app/(category)/javascript/(projects)/code-editor/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Code-Editor/style.css b/src/app/(category)/javascript/(projects)/code-editor/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Code-Editor/style.css rename to src/app/(category)/javascript/(projects)/code-editor/style.css diff --git a/Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/app.js b/src/app/(category)/javascript/(projects)/cosmoxplore-apod/app.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/app.js rename to src/app/(category)/javascript/(projects)/cosmoxplore-apod/app.js diff --git a/Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/index.html b/src/app/(category)/javascript/(projects)/cosmoxplore-apod/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/index.html rename to src/app/(category)/javascript/(projects)/cosmoxplore-apod/index.html diff --git a/Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/readme.md b/src/app/(category)/javascript/(projects)/cosmoxplore-apod/readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/readme.md rename to src/app/(category)/javascript/(projects)/cosmoxplore-apod/readme.md diff --git a/Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/screenshot.webp b/src/app/(category)/javascript/(projects)/cosmoxplore-apod/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/screenshot.webp rename to src/app/(category)/javascript/(projects)/cosmoxplore-apod/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/style.css b/src/app/(category)/javascript/(projects)/cosmoxplore-apod/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/CosmoXplore-APoD/style.css rename to src/app/(category)/javascript/(projects)/cosmoxplore-apod/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Countdown-Timer/README.md b/src/app/(category)/javascript/(projects)/countdown-timer/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Countdown-Timer/README.md rename to src/app/(category)/javascript/(projects)/countdown-timer/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Countdown-Timer/index.html b/src/app/(category)/javascript/(projects)/countdown-timer/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Countdown-Timer/index.html rename to src/app/(category)/javascript/(projects)/countdown-timer/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Countdown-Timer/screenshot.webp b/src/app/(category)/javascript/(projects)/countdown-timer/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Countdown-Timer/screenshot.webp rename to src/app/(category)/javascript/(projects)/countdown-timer/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Countdown-Timer/script.js b/src/app/(category)/javascript/(projects)/countdown-timer/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Countdown-Timer/script.js rename to src/app/(category)/javascript/(projects)/countdown-timer/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Countdown-Timer/style.css b/src/app/(category)/javascript/(projects)/countdown-timer/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Countdown-Timer/style.css rename to src/app/(category)/javascript/(projects)/countdown-timer/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/README.md b/src/app/(category)/javascript/(projects)/countries-over-the-world/README.md similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/README.md rename to src/app/(category)/javascript/(projects)/countries-over-the-world/README.md index d83de730..cae27787 100644 --- a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/README.md +++ b/src/app/(category)/javascript/(projects)/countries-over-the-world/README.md @@ -1,77 +1,77 @@ -

💥 Countries of the World 💥

- - - -

Tech Stack Used 🎮

- -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - ![REST API](https://img.shields.io/badge/rest%20api-FF5733.svg?style=for-the-badge&logo=api&logoColor=white) - -
- -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
-

A single-page application that displays information about all countries by integrating with a REST API. Users can search for countries, filter by region, and view detailed information about each country.

-
- - - -## :zap: Features 🔥 - -- **Search Countries**: Find countries by name using the search bar. -- **Filter by Region**: Narrow down the list of countries by selecting a region. -- **Country Details**: View detailed information about each country, including population, area, and more. -- **Responsive Design**: User-friendly interface optimized for various screen sizes. - - - -## :zap: How to run it? 🕹️ - -- Clone the repository to your local machine. -- Open the `index.html` file in your web browser to start using the application. - - - -## :zap: How to use 👨‍🏫 - -- **Searching for Countries**: - - Enter the name of a country in the search bar to filter the list of countries. - -- **Filtering by Region**: - - Use the dropdown menu to select a region and filter the list of countries accordingly. - -- **Viewing Country Details**: - - Click on a country name to view detailed information about that country. - - - -## :zap: Screenshots 📸 - -![Screenshot](screenshot.webp) - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Ananya Gupta

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 Countries of the World 💥

+ + + +

Tech Stack Used 🎮

+ +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + ![REST API](https://img.shields.io/badge/rest%20api-FF5733.svg?style=for-the-badge&logo=api&logoColor=white) + +
+ +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+

A single-page application that displays information about all countries by integrating with a REST API. Users can search for countries, filter by region, and view detailed information about each country.

+
+ + + +## :zap: Features 🔥 + +- **Search Countries**: Find countries by name using the search bar. +- **Filter by Region**: Narrow down the list of countries by selecting a region. +- **Country Details**: View detailed information about each country, including population, area, and more. +- **Responsive Design**: User-friendly interface optimized for various screen sizes. + + + +## :zap: How to run it? 🕹️ + +- Clone the repository to your local machine. +- Open the `index.html` file in your web browser to start using the application. + + + +## :zap: How to use 👨‍🏫 + +- **Searching for Countries**: + - Enter the name of a country in the search bar to filter the list of countries. + +- **Filtering by Region**: + - Use the dropdown menu to select a region and filter the list of countries accordingly. + +- **Viewing Country Details**: + - Click on a country name to view detailed information about that country. + + + +## :zap: Screenshots 📸 + +![Screenshot](screenshot.webp) + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Ananya Gupta

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/index.html b/src/app/(category)/javascript/(projects)/countries-over-the-world/index.html similarity index 96% rename from Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/index.html rename to src/app/(category)/javascript/(projects)/countries-over-the-world/index.html index 8ecc8273..d7147f3f 100644 --- a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/index.html +++ b/src/app/(category)/javascript/(projects)/countries-over-the-world/index.html @@ -1,31 +1,31 @@ - - - - - - Countries over the World - - - -
-
-

Countries over the World

-
-
-
- - -
-
-
-
- - - + + + + + + Countries over the World + + + +
+
+

Countries over the World

+
+
+
+ + +
+
+
+
+ + + diff --git a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/screenshot.webp b/src/app/(category)/javascript/(projects)/countries-over-the-world/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/screenshot.webp rename to src/app/(category)/javascript/(projects)/countries-over-the-world/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/script.js b/src/app/(category)/javascript/(projects)/countries-over-the-world/script.js similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/script.js rename to src/app/(category)/javascript/(projects)/countries-over-the-world/script.js index c3819815..e32bc67e 100644 --- a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/script.js +++ b/src/app/(category)/javascript/(projects)/countries-over-the-world/script.js @@ -1,60 +1,60 @@ -document.addEventListener('DOMContentLoaded', () => { - const searchInput = document.getElementById('search'); - const regionFilter = document.getElementById('regionFilter'); - const countriesList = document.getElementById('countries-list'); - let allCountries = []; - - // Fetch countries data from REST API - const fetchCountries = async () => { - const res = await fetch('https://restcountries.com/v3.1/all'); - const countries = await res.json(); - - // Sort countries alphabetically - countries.sort((a, b) => { - if (a.name.common < b.name.common) return -1; - if (a.name.common > b.name.common) return 1; - return 0; - }); - - allCountries = countries; - displayCountries(countries); - }; - - // Display countries in the DOM - const displayCountries = (countries) => { - countriesList.innerHTML = ''; - countries.forEach(country => { - const countryCard = document.createElement('div'); - countryCard.classList.add('card'); - countryCard.innerHTML = ` - ${country.name.common} -
-

${country.name.common}

-

Capital: ${country.capital ? country.capital[0] : 'N/A'}

-

Region: ${country.region}

-

Population: ${country.population.toLocaleString()}

- Learn More -
- `; - countriesList.appendChild(countryCard); - }); - }; - - // Filter countries based on search input and region filter - const filterCountries = () => { - const searchValue = searchInput.value.toLowerCase(); - const regionValue = regionFilter.value; - const filteredCountries = allCountries.filter(country => { - const matchesSearch = country.name.common.toLowerCase().includes(searchValue); - const matchesRegion = regionValue === 'all' || country.region === regionValue; - return matchesSearch && matchesRegion; - }); - displayCountries(filteredCountries); - }; - - searchInput.addEventListener('input', filterCountries); - regionFilter.addEventListener('change', filterCountries); - - fetchCountries(); - }); +document.addEventListener('DOMContentLoaded', () => { + const searchInput = document.getElementById('search'); + const regionFilter = document.getElementById('regionFilter'); + const countriesList = document.getElementById('countries-list'); + let allCountries = []; + + // Fetch countries data from REST API + const fetchCountries = async () => { + const res = await fetch('https://restcountries.com/v3.1/all'); + const countries = await res.json(); + + // Sort countries alphabetically + countries.sort((a, b) => { + if (a.name.common < b.name.common) return -1; + if (a.name.common > b.name.common) return 1; + return 0; + }); + + allCountries = countries; + displayCountries(countries); + }; + + // Display countries in the DOM + const displayCountries = (countries) => { + countriesList.innerHTML = ''; + countries.forEach(country => { + const countryCard = document.createElement('div'); + countryCard.classList.add('card'); + countryCard.innerHTML = ` + ${country.name.common} +
+

${country.name.common}

+

Capital: ${country.capital ? country.capital[0] : 'N/A'}

+

Region: ${country.region}

+

Population: ${country.population.toLocaleString()}

+ Learn More +
+ `; + countriesList.appendChild(countryCard); + }); + }; + + // Filter countries based on search input and region filter + const filterCountries = () => { + const searchValue = searchInput.value.toLowerCase(); + const regionValue = regionFilter.value; + const filteredCountries = allCountries.filter(country => { + const matchesSearch = country.name.common.toLowerCase().includes(searchValue); + const matchesRegion = regionValue === 'all' || country.region === regionValue; + return matchesSearch && matchesRegion; + }); + displayCountries(filteredCountries); + }; + + searchInput.addEventListener('input', filterCountries); + regionFilter.addEventListener('change', filterCountries); + + fetchCountries(); + }); \ No newline at end of file diff --git a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/style.css b/src/app/(category)/javascript/(projects)/countries-over-the-world/style.css similarity index 94% rename from Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/style.css rename to src/app/(category)/javascript/(projects)/countries-over-the-world/style.css index 401345a6..b1aa8192 100644 --- a/Vanilla-JS-Projects/Intermediate/Countries-Over-The-World/style.css +++ b/src/app/(category)/javascript/(projects)/countries-over-the-world/style.css @@ -1,102 +1,102 @@ -/* Global Styles */ -body { - font-family: 'Arial', sans-serif; - background: #f0f0f0; - margin: 0; - padding: 0; - } - - .container { - max-width: 1200px; - margin: 0 auto; - padding: 20px; - } - - header { - text-align: center; - margin-bottom: 20px; - } - - h1 { - font-size: 2em; - color: #333; - } - - /* Controls (Search Input and Region Filter) */ - .controls { - display: flex; - justify-content: space-between; - margin-bottom: 20px; - } - - #search, #regionFilter { - flex: 1; - padding: 10px; - font-size: 1em; - border: 2px solid #ccc; - border-radius: 5px; - margin-right: 10px; - } - - #regionFilter { - max-width: 200px; - margin-right: 0; - } - - /* Grid Layout */ - .grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); - gap: 20px; - } - - .card { - background: #fff; - border: 1px solid #ccc; - border-radius: 10px; - overflow: hidden; - box-shadow: 0 2px 5px rgba(0,0,0,0.1); - transition: transform 0.2s; - } - - .card:hover { - transform: translateY(-10px); - } - - .card img { - width: 100%; - height: 120px; - object-fit: cover; - } - - .card-content { - padding: 10px; - } - - .card-title { - font-size: 1.2em; - margin: 0; - color: #333; - } - - .card-text { - font-size: 0.9em; - color: #666; - margin: 5px 0; - } - - .card .button { - display: block; - text-align: center; - padding: 10px 0; - background: #007BFF; - color: white; - text-decoration: none; - border-radius: 5px; - transition: background 0.2s; - } - - .card .button:hover { - background: #0056b3; - } +/* Global Styles */ +body { + font-family: 'Arial', sans-serif; + background: #f0f0f0; + margin: 0; + padding: 0; + } + + .container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; + } + + header { + text-align: center; + margin-bottom: 20px; + } + + h1 { + font-size: 2em; + color: #333; + } + + /* Controls (Search Input and Region Filter) */ + .controls { + display: flex; + justify-content: space-between; + margin-bottom: 20px; + } + + #search, #regionFilter { + flex: 1; + padding: 10px; + font-size: 1em; + border: 2px solid #ccc; + border-radius: 5px; + margin-right: 10px; + } + + #regionFilter { + max-width: 200px; + margin-right: 0; + } + + /* Grid Layout */ + .grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: 20px; + } + + .card { + background: #fff; + border: 1px solid #ccc; + border-radius: 10px; + overflow: hidden; + box-shadow: 0 2px 5px rgba(0,0,0,0.1); + transition: transform 0.2s; + } + + .card:hover { + transform: translateY(-10px); + } + + .card img { + width: 100%; + height: 120px; + object-fit: cover; + } + + .card-content { + padding: 10px; + } + + .card-title { + font-size: 1.2em; + margin: 0; + color: #333; + } + + .card-text { + font-size: 0.9em; + color: #666; + margin: 5px 0; + } + + .card .button { + display: block; + text-align: center; + padding: 10px 0; + background: #007BFF; + color: white; + text-decoration: none; + border-radius: 5px; + transition: background 0.2s; + } + + .card .button:hover { + background: #0056b3; + } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/README.md b/src/app/(category)/javascript/(projects)/css-art-gallery/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/CSS-Art-Gallery/README.md rename to src/app/(category)/javascript/(projects)/css-art-gallery/README.md diff --git a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/data.json b/src/app/(category)/javascript/(projects)/css-art-gallery/data.json similarity index 98% rename from Vanilla-JS-Projects/Basic/CSS-Art-Gallery/data.json rename to src/app/(category)/javascript/(projects)/css-art-gallery/data.json index bacc9ecf..2d243f1d 100644 --- a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/data.json +++ b/src/app/(category)/javascript/(projects)/css-art-gallery/data.json @@ -1,44 +1,44 @@ -[ - { - "imageUrl": "https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba9987b896a6899009b7b2_XG3kxY9J1GXrUMFU-GGbN0IR2Pc9iInd35jxWRgZ2xphXud999AUJppRs7U3mo5IU9dI_Y9C-EktXYP4FSzGei9Ezh10-dcAO_FIBNw7G2qaXGXfqgjNOUc87ueg3VKugQTnyPSF68K0Nh9HOC1rAlo.png", - "title": "SmartPhone", - "artist" : "Grzegorz Witczak", - "link": "https://codepen.io/Wujek_Greg/pen/LmrweG" - }, - { - "imageUrl": "https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba99851fb2a7c98065da88_WCMPS27hjcUJk4vyaoBFs7y4Eh2K2inGraJQ2yCaF3uH1G3S5o6_TAoYLimcZGyofUknrdyFsjvR4WiNOnpGOhxbLYGuwxXtBLdtAIXDRxveaiVMiXqqMrUn8ALRhL1wfsVnjr5OnI2sZJ4UnnrH_2o.png", - "title" : "Cassette tape", - "artist": "Kassandra Sanch", - "link": "https://css-art.com/single-div-cassette-tape/source.html" - }, - { - "imageUrl":"https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba99867d50dd847d3e6ca8_4Phyy4UKQoD-vDWV_H8oFerb1HJtDPEssKW7wrMNSaEShc2RzdjTTc1zAYw9u2wFdJvC7ayNOqFOjJ8RIglRlpaIMYM80KaYvZnXXV_pIKs5deimOq4fUQ6AERP1BA_ntCTSePlAC-ZJracwDB76CHs.png", - "title" : "The Mona Lisa", - "artist" :"Jay Salvat", - "link" : "https://css-art.com/mona-lisa/source.html" - }, - { - "imageUrl": "https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba998792f12cc4a8da4e38_JwqQ2-ikzKgV5o544IVNv9yGtRoLr_0LOs15kiKNlXi-KCTW-B8YYVca0PlduuCtrYs3d0Xnj4ZN0fElTOMS0uVqFrgFDb9vndSAiKg_pUtKC_TgAADC8JaD8p7C1Wb72hXvQoqWO7aqEIvxu_nyzMM.png", - "title" : "Southwold landscape", - "artist" : "Ben Evans", - "link" : "https://codepen.io/ivorjetski/pen/xxGYWQG" - }, - { - "imageUrl" : "https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba9986b896a6899009b79c_vgDvZfnTxt-w0wZ6oRl8OAhTnrFWeMtEHYniZobio1KZBgN08W_amLGdSS_cNCBZ8R3xLK2HnbmZQapk8kugNSi0Yf5OzUjz9CKXlFtn0hMuoVAlFm2QsGBGYJuelEE2l_S_DbiAJucXfW0KT_8y-Y0.png", - "title" : "Baroque portrait", - "artist" : "Diana Smith", - "link" : "https://css-art.com/pure-css-lace/source.html" - }, - { - "imageUrl":"https://css-art.com/artwork/scssuper-mario-face/i/100.jpg", - "title" : "Super Mario Face", - "artist" : "Louise Flanagan", - "link": "https://css-art.com/scssuper-mario-face/source.html" - }, - { - "imageUrl":"https://css-art.com/artwork/css-collector-s-cabinet/i/100.jpg", - "title" : "CSS Collectors Cabinet", - "artist": "Lynn Fisher", - "link": "https://css-art.com/css-collector-s-cabinet/source.html" - } -] +[ + { + "imageUrl": "https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba9987b896a6899009b7b2_XG3kxY9J1GXrUMFU-GGbN0IR2Pc9iInd35jxWRgZ2xphXud999AUJppRs7U3mo5IU9dI_Y9C-EktXYP4FSzGei9Ezh10-dcAO_FIBNw7G2qaXGXfqgjNOUc87ueg3VKugQTnyPSF68K0Nh9HOC1rAlo.png", + "title": "SmartPhone", + "artist" : "Grzegorz Witczak", + "link": "https://codepen.io/Wujek_Greg/pen/LmrweG" + }, + { + "imageUrl": "https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba99851fb2a7c98065da88_WCMPS27hjcUJk4vyaoBFs7y4Eh2K2inGraJQ2yCaF3uH1G3S5o6_TAoYLimcZGyofUknrdyFsjvR4WiNOnpGOhxbLYGuwxXtBLdtAIXDRxveaiVMiXqqMrUn8ALRhL1wfsVnjr5OnI2sZJ4UnnrH_2o.png", + "title" : "Cassette tape", + "artist": "Kassandra Sanch", + "link": "https://css-art.com/single-div-cassette-tape/source.html" + }, + { + "imageUrl":"https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba99867d50dd847d3e6ca8_4Phyy4UKQoD-vDWV_H8oFerb1HJtDPEssKW7wrMNSaEShc2RzdjTTc1zAYw9u2wFdJvC7ayNOqFOjJ8RIglRlpaIMYM80KaYvZnXXV_pIKs5deimOq4fUQ6AERP1BA_ntCTSePlAC-ZJracwDB76CHs.png", + "title" : "The Mona Lisa", + "artist" :"Jay Salvat", + "link" : "https://css-art.com/mona-lisa/source.html" + }, + { + "imageUrl": "https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba998792f12cc4a8da4e38_JwqQ2-ikzKgV5o544IVNv9yGtRoLr_0LOs15kiKNlXi-KCTW-B8YYVca0PlduuCtrYs3d0Xnj4ZN0fElTOMS0uVqFrgFDb9vndSAiKg_pUtKC_TgAADC8JaD8p7C1Wb72hXvQoqWO7aqEIvxu_nyzMM.png", + "title" : "Southwold landscape", + "artist" : "Ben Evans", + "link" : "https://codepen.io/ivorjetski/pen/xxGYWQG" + }, + { + "imageUrl" : "https://cdn.prod.website-files.com/6053a5b7250a50f89c543266/64ba9986b896a6899009b79c_vgDvZfnTxt-w0wZ6oRl8OAhTnrFWeMtEHYniZobio1KZBgN08W_amLGdSS_cNCBZ8R3xLK2HnbmZQapk8kugNSi0Yf5OzUjz9CKXlFtn0hMuoVAlFm2QsGBGYJuelEE2l_S_DbiAJucXfW0KT_8y-Y0.png", + "title" : "Baroque portrait", + "artist" : "Diana Smith", + "link" : "https://css-art.com/pure-css-lace/source.html" + }, + { + "imageUrl":"https://css-art.com/artwork/scssuper-mario-face/i/100.jpg", + "title" : "Super Mario Face", + "artist" : "Louise Flanagan", + "link": "https://css-art.com/scssuper-mario-face/source.html" + }, + { + "imageUrl":"https://css-art.com/artwork/css-collector-s-cabinet/i/100.jpg", + "title" : "CSS Collectors Cabinet", + "artist": "Lynn Fisher", + "link": "https://css-art.com/css-collector-s-cabinet/source.html" + } +] diff --git a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/index.html b/src/app/(category)/javascript/(projects)/css-art-gallery/index.html similarity index 98% rename from Vanilla-JS-Projects/Basic/CSS-Art-Gallery/index.html rename to src/app/(category)/javascript/(projects)/css-art-gallery/index.html index 9abe9e87..80bba403 100644 --- a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/index.html +++ b/src/app/(category)/javascript/(projects)/css-art-gallery/index.html @@ -1,79 +1,79 @@ - - - - - - - - - - CSS Art Gallery - - -
-
-
-
CSS Art Gallery
-
Beholding beauty with the eye of the mind, he will be enabled to bring forth, not images of beauty, but reality, and bringing forth and nourishing true virtue to become the friend of God.
- -
-
-
-
- -
- -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-

Overlay Title

-

This is the overlay content.

- Source Code - -
-
- -
- - - + + + + + + + + + + CSS Art Gallery + + +
+
+
+
CSS Art Gallery
+
Beholding beauty with the eye of the mind, he will be enabled to bring forth, not images of beauty, but reality, and bringing forth and nourishing true virtue to become the friend of God.
+ +
+
+
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+

Overlay Title

+

This is the overlay content.

+ Source Code + +
+
+ +
+ + + diff --git a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/screenshot.webp b/src/app/(category)/javascript/(projects)/css-art-gallery/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/CSS-Art-Gallery/screenshot.webp rename to src/app/(category)/javascript/(projects)/css-art-gallery/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/script.js b/src/app/(category)/javascript/(projects)/css-art-gallery/script.js similarity index 97% rename from Vanilla-JS-Projects/Basic/CSS-Art-Gallery/script.js rename to src/app/(category)/javascript/(projects)/css-art-gallery/script.js index 453d1f6b..92c08484 100644 --- a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/script.js +++ b/src/app/(category)/javascript/(projects)/css-art-gallery/script.js @@ -1,24 +1,24 @@ -fetch('data.json') - .then(response => response.json()) - .then(data => { - const dataButtons = document.querySelectorAll('.data-btn'); - dataButtons.forEach(button => { - button.addEventListener('click', () => { - const image = button.previousElementSibling; - const imageUrl = image.src; - const imageData = data.find(item => item.imageUrl === imageUrl); - - if (imageData) { - document.getElementById('overlay-title').textContent = imageData.title; - document.getElementById('overlay-description').textContent = imageData.artist; - document.getElementById('overlay-link').href = imageData.link; - document.getElementById('overlay').style.display = 'flex'; - } - }); - }); - - document.getElementById('close-overlay').addEventListener('click', function() { - document.getElementById('overlay').style.display = 'none'; - }); - }) - .catch(error => console.error('Error loading JSON:', error)); +fetch('data.json') + .then(response => response.json()) + .then(data => { + const dataButtons = document.querySelectorAll('.data-btn'); + dataButtons.forEach(button => { + button.addEventListener('click', () => { + const image = button.previousElementSibling; + const imageUrl = image.src; + const imageData = data.find(item => item.imageUrl === imageUrl); + + if (imageData) { + document.getElementById('overlay-title').textContent = imageData.title; + document.getElementById('overlay-description').textContent = imageData.artist; + document.getElementById('overlay-link').href = imageData.link; + document.getElementById('overlay').style.display = 'flex'; + } + }); + }); + + document.getElementById('close-overlay').addEventListener('click', function() { + document.getElementById('overlay').style.display = 'none'; + }); + }) + .catch(error => console.error('Error loading JSON:', error)); diff --git a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/style.css b/src/app/(category)/javascript/(projects)/css-art-gallery/style.css similarity index 94% rename from Vanilla-JS-Projects/Basic/CSS-Art-Gallery/style.css rename to src/app/(category)/javascript/(projects)/css-art-gallery/style.css index bb15f077..fc97112c 100644 --- a/Vanilla-JS-Projects/Basic/CSS-Art-Gallery/style.css +++ b/src/app/(category)/javascript/(projects)/css-art-gallery/style.css @@ -1,58 +1,58 @@ -body { - font-family: 'Roboto', sans-serif; - background-color: #f0c4f7; -} -.jumbotron { - background-color: #f8f9fa; - padding: 20px; -} -.brand { - font-family: 'Playfair Display', serif; - font-size: 2rem; - text-align: center; - opacity: 0; - animation: fadeIn 1s ease forwards; - color:purple ; -} -#A { - text-align: center; - margin-bottom: 20px; -} -.gallery-item { - margin-bottom: 20px; -} - -@keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -.overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.8); - display: none; - justify-content: center; - align-items: center; -} - -.overlay-content { - background: white; - padding: 20px; - border-radius: 5px; - text-align: center; -} -.close-icon { - position: absolute; - top: 10px; - right: 10px; - cursor: pointer; - font-size: 20px; - color: black; +body { + font-family: 'Roboto', sans-serif; + background-color: #f0c4f7; +} +.jumbotron { + background-color: #f8f9fa; + padding: 20px; +} +.brand { + font-family: 'Playfair Display', serif; + font-size: 2rem; + text-align: center; + opacity: 0; + animation: fadeIn 1s ease forwards; + color:purple ; +} +#A { + text-align: center; + margin-bottom: 20px; +} +.gallery-item { + margin-bottom: 20px; +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +.overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.8); + display: none; + justify-content: center; + align-items: center; +} + +.overlay-content { + background: white; + padding: 20px; + border-radius: 5px; + text-align: center; +} +.close-icon { + position: absolute; + top: 10px; + right: 10px; + cursor: pointer; + font-size: 20px; + color: black; } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Custom-Video-Player/README.md b/src/app/(category)/javascript/(projects)/custom-video-player/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Custom-Video-Player/README.md rename to src/app/(category)/javascript/(projects)/custom-video-player/README.md diff --git a/Vanilla-JS-Projects/Basic/Custom-Video-Player/css/progress.css b/src/app/(category)/javascript/(projects)/custom-video-player/css/progress.css similarity index 96% rename from Vanilla-JS-Projects/Basic/Custom-Video-Player/css/progress.css rename to src/app/(category)/javascript/(projects)/custom-video-player/css/progress.css index 8c3c6b0e..f9232c93 100644 --- a/Vanilla-JS-Projects/Basic/Custom-Video-Player/css/progress.css +++ b/src/app/(category)/javascript/(projects)/custom-video-player/css/progress.css @@ -1,112 +1,112 @@ -/* SOURCE: https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ */ - -input[type='range'] { - -webkit-appearance: none; /* Hides the slider so that custom slider can be made */ - width: 100%; /* Specific width is required for Firefox. */ - background: transparent; /* Otherwise white in Chrome */ -} - -input[type='range']::-webkit-slider-thumb { - -webkit-appearance: none; -} - -input[type='range']:focus { - outline: none; /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */ -} - -input[type='range']::-ms-track { - width: 100%; - cursor: pointer; - - /* Hides the slider so custom styles can be added */ - background: transparent; - border-color: transparent; - color: transparent; -} - -/* Special styling for WebKit/Blink */ -input[type='range']::-webkit-slider-thumb { - -webkit-appearance: none; - border: 1px solid #000000; - height: 36px; - width: 16px; - border-radius: 3px; - background: #ffffff; - cursor: pointer; - margin-top: -14px; /* You need to specify a margin in Chrome, but in Firefox and IE it is automatic */ - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; /* Add cool effects to your sliders! */ -} - -/* All the same stuff for Firefox */ -input[type='range']::-moz-range-thumb { - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; - border: 1px solid #000000; - height: 36px; - width: 16px; - border-radius: 3px; - background: #ffffff; - cursor: pointer; -} - -/* All the same stuff for IE */ -input[type='range']::-ms-thumb { - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; - border: 1px solid #000000; - height: 36px; - width: 16px; - border-radius: 3px; - background: #ffffff; - cursor: pointer; -} - -input[type='range']::-webkit-slider-runnable-track { - width: 100%; - height: 8.4px; - cursor: pointer; - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; - background: #3071a9; - border-radius: 1.3px; - border: 0.2px solid #010101; -} - -input[type='range']:focus::-webkit-slider-runnable-track { - background: #367ebd; -} - -input[type='range']::-moz-range-track { - width: 100%; - height: 8.4px; - cursor: pointer; - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; - background: #3071a9; - border-radius: 1.3px; - border: 0.2px solid #010101; -} - -input[type='range']::-ms-track { - width: 100%; - height: 8.4px; - cursor: pointer; - background: transparent; - border-color: transparent; - border-width: 16px 0; - color: transparent; -} -input[type='range']::-ms-fill-lower { - background: #2a6495; - border: 0.2px solid #010101; - border-radius: 2.6px; - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; -} -input[type='range']:focus::-ms-fill-lower { - background: #3071a9; -} -input[type='range']::-ms-fill-upper { - background: #3071a9; - border: 0.2px solid #010101; - border-radius: 2.6px; - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; -} -input[type='range']:focus::-ms-fill-upper { - background: #367ebd; -} +/* SOURCE: https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ */ + +input[type='range'] { + -webkit-appearance: none; /* Hides the slider so that custom slider can be made */ + width: 100%; /* Specific width is required for Firefox. */ + background: transparent; /* Otherwise white in Chrome */ +} + +input[type='range']::-webkit-slider-thumb { + -webkit-appearance: none; +} + +input[type='range']:focus { + outline: none; /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */ +} + +input[type='range']::-ms-track { + width: 100%; + cursor: pointer; + + /* Hides the slider so custom styles can be added */ + background: transparent; + border-color: transparent; + color: transparent; +} + +/* Special styling for WebKit/Blink */ +input[type='range']::-webkit-slider-thumb { + -webkit-appearance: none; + border: 1px solid #000000; + height: 36px; + width: 16px; + border-radius: 3px; + background: #ffffff; + cursor: pointer; + margin-top: -14px; /* You need to specify a margin in Chrome, but in Firefox and IE it is automatic */ + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; /* Add cool effects to your sliders! */ +} + +/* All the same stuff for Firefox */ +input[type='range']::-moz-range-thumb { + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; + border: 1px solid #000000; + height: 36px; + width: 16px; + border-radius: 3px; + background: #ffffff; + cursor: pointer; +} + +/* All the same stuff for IE */ +input[type='range']::-ms-thumb { + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; + border: 1px solid #000000; + height: 36px; + width: 16px; + border-radius: 3px; + background: #ffffff; + cursor: pointer; +} + +input[type='range']::-webkit-slider-runnable-track { + width: 100%; + height: 8.4px; + cursor: pointer; + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; + background: #3071a9; + border-radius: 1.3px; + border: 0.2px solid #010101; +} + +input[type='range']:focus::-webkit-slider-runnable-track { + background: #367ebd; +} + +input[type='range']::-moz-range-track { + width: 100%; + height: 8.4px; + cursor: pointer; + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; + background: #3071a9; + border-radius: 1.3px; + border: 0.2px solid #010101; +} + +input[type='range']::-ms-track { + width: 100%; + height: 8.4px; + cursor: pointer; + background: transparent; + border-color: transparent; + border-width: 16px 0; + color: transparent; +} +input[type='range']::-ms-fill-lower { + background: #2a6495; + border: 0.2px solid #010101; + border-radius: 2.6px; + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; +} +input[type='range']:focus::-ms-fill-lower { + background: #3071a9; +} +input[type='range']::-ms-fill-upper { + background: #3071a9; + border: 0.2px solid #010101; + border-radius: 2.6px; + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; +} +input[type='range']:focus::-ms-fill-upper { + background: #367ebd; +} diff --git a/Vanilla-JS-Projects/Basic/Custom-Video-Player/css/style.css b/src/app/(category)/javascript/(projects)/custom-video-player/css/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Custom-Video-Player/css/style.css rename to src/app/(category)/javascript/(projects)/custom-video-player/css/style.css diff --git a/Vanilla-JS-Projects/Basic/Custom-Video-Player/img/poster.png b/src/app/(category)/javascript/(projects)/custom-video-player/img/poster.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Custom-Video-Player/img/poster.png rename to src/app/(category)/javascript/(projects)/custom-video-player/img/poster.png diff --git a/Vanilla-JS-Projects/Basic/Custom-Video-Player/index.html b/src/app/(category)/javascript/(projects)/custom-video-player/index.html similarity index 96% rename from Vanilla-JS-Projects/Basic/Custom-Video-Player/index.html rename to src/app/(category)/javascript/(projects)/custom-video-player/index.html index 41befca9..aa726374 100644 --- a/Vanilla-JS-Projects/Basic/Custom-Video-Player/index.html +++ b/src/app/(category)/javascript/(projects)/custom-video-player/index.html @@ -1,47 +1,47 @@ - - - - - - - Custom Video Player - - - - - -

Custom Video Player

- -
- - - - 00:00 -
- - - - - + + + + + + + Custom Video Player + + + + + +

Custom Video Player

+ +
+ + + + 00:00 +
+ + + + + diff --git a/Vanilla-JS-Projects/Basic/Custom-Video-Player/screenshot.webp b/src/app/(category)/javascript/(projects)/custom-video-player/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Custom-Video-Player/screenshot.webp rename to src/app/(category)/javascript/(projects)/custom-video-player/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Custom-Video-Player/script.js b/src/app/(category)/javascript/(projects)/custom-video-player/script.js similarity index 96% rename from Vanilla-JS-Projects/Basic/Custom-Video-Player/script.js rename to src/app/(category)/javascript/(projects)/custom-video-player/script.js index 67b8d61d..a1b85116 100644 --- a/Vanilla-JS-Projects/Basic/Custom-Video-Player/script.js +++ b/src/app/(category)/javascript/(projects)/custom-video-player/script.js @@ -1,65 +1,65 @@ -const video = document.getElementById('video'); -const play = document.getElementById('play'); -const stop = document.getElementById('stop'); -const progress = document.getElementById('progress'); -const timestamp = document.getElementById('timestamp'); - -// Play & pause video -function toggleVideoStatus() { - if (video.paused) { - video.play(); - } else { - video.pause(); - } -} - -// update play/pause icon -function updatePlayIcon() { - if (video.paused) { - play.innerHTML = ''; - } else { - play.innerHTML = ''; - } -} - -// Update progress & timestamp -function updateProgress() { - progress.value = (video.currentTime / video.duration) * 100; - - // Get the minutes - let mins = Math.floor(video.currentTime / 60); - if(mins < video.duration){ - mins = '0' + String(mins); - } - - // Get Seconds - let secs = Math.floor(video.currentTime % 60); - if(secs < video.duration){ - secs = '0' + String(secs); - } - - timestamp.innerHTML = `${mins}:${secs}`; -} - -// Set video time to progress -function setVideoProgress() { - video.currentTime = (+progress.value * video.duration) / 100; -} - -// Stop video -function stopVideo() { - video.currentTime = 0; - video.pause(); -} - -// Event listeners -video.addEventListener('click', toggleVideoStatus); -video.addEventListener('pause', updatePlayIcon); -video.addEventListener('play', updatePlayIcon); -video.addEventListener('timeupdate', updateProgress); - -play.addEventListener('click', toggleVideoStatus); - -stop.addEventListener('click', stopVideo); - +const video = document.getElementById('video'); +const play = document.getElementById('play'); +const stop = document.getElementById('stop'); +const progress = document.getElementById('progress'); +const timestamp = document.getElementById('timestamp'); + +// Play & pause video +function toggleVideoStatus() { + if (video.paused) { + video.play(); + } else { + video.pause(); + } +} + +// update play/pause icon +function updatePlayIcon() { + if (video.paused) { + play.innerHTML = ''; + } else { + play.innerHTML = ''; + } +} + +// Update progress & timestamp +function updateProgress() { + progress.value = (video.currentTime / video.duration) * 100; + + // Get the minutes + let mins = Math.floor(video.currentTime / 60); + if(mins < video.duration){ + mins = '0' + String(mins); + } + + // Get Seconds + let secs = Math.floor(video.currentTime % 60); + if(secs < video.duration){ + secs = '0' + String(secs); + } + + timestamp.innerHTML = `${mins}:${secs}`; +} + +// Set video time to progress +function setVideoProgress() { + video.currentTime = (+progress.value * video.duration) / 100; +} + +// Stop video +function stopVideo() { + video.currentTime = 0; + video.pause(); +} + +// Event listeners +video.addEventListener('click', toggleVideoStatus); +video.addEventListener('pause', updatePlayIcon); +video.addEventListener('play', updatePlayIcon); +video.addEventListener('timeupdate', updateProgress); + +play.addEventListener('click', toggleVideoStatus); + +stop.addEventListener('click', stopVideo); + progress.addEventListener('change', setVideoProgress); \ No newline at end of file diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/README.md b/src/app/(category)/javascript/(projects)/daily-journal-website/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/README.md rename to src/app/(category)/javascript/(projects)/daily-journal-website/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/add.html b/src/app/(category)/javascript/(projects)/daily-journal-website/add.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/add.html rename to src/app/(category)/javascript/(projects)/daily-journal-website/add.html diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/entries.html b/src/app/(category)/javascript/(projects)/daily-journal-website/entries.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/entries.html rename to src/app/(category)/javascript/(projects)/daily-journal-website/entries.html diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/entry.html b/src/app/(category)/javascript/(projects)/daily-journal-website/entry.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/entry.html rename to src/app/(category)/javascript/(projects)/daily-journal-website/entry.html diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/image.png b/src/app/(category)/javascript/(projects)/daily-journal-website/image.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/image.png rename to src/app/(category)/javascript/(projects)/daily-journal-website/image.png diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/index.html b/src/app/(category)/javascript/(projects)/daily-journal-website/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/index.html rename to src/app/(category)/javascript/(projects)/daily-journal-website/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/screenshot.webp b/src/app/(category)/javascript/(projects)/daily-journal-website/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/screenshot.webp rename to src/app/(category)/javascript/(projects)/daily-journal-website/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/script.js b/src/app/(category)/javascript/(projects)/daily-journal-website/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/script.js rename to src/app/(category)/javascript/(projects)/daily-journal-website/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/styles.css b/src/app/(category)/javascript/(projects)/daily-journal-website/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Daily-Journal-Website/styles.css rename to src/app/(category)/javascript/(projects)/daily-journal-website/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Day-Calculator/README.md b/src/app/(category)/javascript/(projects)/day-calculator/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Day-Calculator/README.md rename to src/app/(category)/javascript/(projects)/day-calculator/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Day-Calculator/index.html b/src/app/(category)/javascript/(projects)/day-calculator/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Day-Calculator/index.html rename to src/app/(category)/javascript/(projects)/day-calculator/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Day-Calculator/screenshot.webp b/src/app/(category)/javascript/(projects)/day-calculator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Day-Calculator/screenshot.webp rename to src/app/(category)/javascript/(projects)/day-calculator/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Day-Calculator/script.js b/src/app/(category)/javascript/(projects)/day-calculator/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Day-Calculator/script.js rename to src/app/(category)/javascript/(projects)/day-calculator/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Day-Calculator/style.css b/src/app/(category)/javascript/(projects)/day-calculator/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Day-Calculator/style.css rename to src/app/(category)/javascript/(projects)/day-calculator/style.css diff --git a/Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/README.md b/src/app/(category)/javascript/(projects)/days-between-two-dates/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/README.md rename to src/app/(category)/javascript/(projects)/days-between-two-dates/README.md diff --git a/Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/index.html b/src/app/(category)/javascript/(projects)/days-between-two-dates/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/index.html rename to src/app/(category)/javascript/(projects)/days-between-two-dates/index.html diff --git a/Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/screenshot.webp b/src/app/(category)/javascript/(projects)/days-between-two-dates/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/screenshot.webp rename to src/app/(category)/javascript/(projects)/days-between-two-dates/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/script.js b/src/app/(category)/javascript/(projects)/days-between-two-dates/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/script.js rename to src/app/(category)/javascript/(projects)/days-between-two-dates/script.js diff --git a/Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/style.css b/src/app/(category)/javascript/(projects)/days-between-two-dates/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Days-Between-Two-Dates/style.css rename to src/app/(category)/javascript/(projects)/days-between-two-dates/style.css diff --git a/Vanilla-JS-Projects/Basic/Dictionary-App/README.md b/src/app/(category)/javascript/(projects)/dictionary-app/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictionary-App/README.md rename to src/app/(category)/javascript/(projects)/dictionary-app/README.md diff --git a/Vanilla-JS-Projects/Basic/Dictionary-App/index.html b/src/app/(category)/javascript/(projects)/dictionary-app/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictionary-App/index.html rename to src/app/(category)/javascript/(projects)/dictionary-app/index.html diff --git a/Vanilla-JS-Projects/Basic/Dictionary-App/screenshot.webp b/src/app/(category)/javascript/(projects)/dictionary-app/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictionary-App/screenshot.webp rename to src/app/(category)/javascript/(projects)/dictionary-app/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Dictionary-App/script.js b/src/app/(category)/javascript/(projects)/dictionary-app/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictionary-App/script.js rename to src/app/(category)/javascript/(projects)/dictionary-app/script.js diff --git a/Vanilla-JS-Projects/Basic/Dictionary-App/style.css b/src/app/(category)/javascript/(projects)/dictionary-app/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictionary-App/style.css rename to src/app/(category)/javascript/(projects)/dictionary-app/style.css diff --git a/Vanilla-JS-Projects/Basic/Dictonary-App/README.md b/src/app/(category)/javascript/(projects)/dictonary-app/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictonary-App/README.md rename to src/app/(category)/javascript/(projects)/dictonary-app/README.md diff --git a/Vanilla-JS-Projects/Basic/Dictonary-App/bg.jpg b/src/app/(category)/javascript/(projects)/dictonary-app/bg.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictonary-App/bg.jpg rename to src/app/(category)/javascript/(projects)/dictonary-app/bg.jpg diff --git a/Vanilla-JS-Projects/Basic/Dictonary-App/index.html b/src/app/(category)/javascript/(projects)/dictonary-app/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictonary-App/index.html rename to src/app/(category)/javascript/(projects)/dictonary-app/index.html diff --git a/Vanilla-JS-Projects/Basic/Dictonary-App/screenshot.webp b/src/app/(category)/javascript/(projects)/dictonary-app/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictonary-App/screenshot.webp rename to src/app/(category)/javascript/(projects)/dictonary-app/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Dictonary-App/script.js b/src/app/(category)/javascript/(projects)/dictonary-app/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictonary-App/script.js rename to src/app/(category)/javascript/(projects)/dictonary-app/script.js diff --git a/Vanilla-JS-Projects/Basic/Dictonary-App/style.css b/src/app/(category)/javascript/(projects)/dictonary-app/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Dictonary-App/style.css rename to src/app/(category)/javascript/(projects)/dictonary-app/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Drag-and-Drop/README.md b/src/app/(category)/javascript/(projects)/drag-and-drop/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Drag-and-Drop/README.md rename to src/app/(category)/javascript/(projects)/drag-and-drop/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Drag-and-Drop/images/grid-outline.svg b/src/app/(category)/javascript/(projects)/drag-and-drop/images/grid-outline.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Drag-and-Drop/images/grid-outline.svg rename to src/app/(category)/javascript/(projects)/drag-and-drop/images/grid-outline.svg diff --git a/Vanilla-JS-Projects/Intermediate/Drag-and-Drop/index.html b/src/app/(category)/javascript/(projects)/drag-and-drop/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Drag-and-Drop/index.html rename to src/app/(category)/javascript/(projects)/drag-and-drop/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Drag-and-Drop/screenshot.webp b/src/app/(category)/javascript/(projects)/drag-and-drop/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Drag-and-Drop/screenshot.webp rename to src/app/(category)/javascript/(projects)/drag-and-drop/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Drag-and-Drop/script.js b/src/app/(category)/javascript/(projects)/drag-and-drop/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Drag-and-Drop/script.js rename to src/app/(category)/javascript/(projects)/drag-and-drop/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Drag-and-Drop/style.css b/src/app/(category)/javascript/(projects)/drag-and-drop/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Drag-and-Drop/style.css rename to src/app/(category)/javascript/(projects)/drag-and-drop/style.css diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/Drum.jpg b/src/app/(category)/javascript/(projects)/electronic-drum-kit/Drum.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/Drum.jpg rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/Drum.jpg diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/README.md b/src/app/(category)/javascript/(projects)/electronic-drum-kit/README.md similarity index 98% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/README.md rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/README.md index 0673510c..1208fd86 100644 --- a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/README.md +++ b/src/app/(category)/javascript/(projects)/electronic-drum-kit/README.md @@ -1,87 +1,87 @@ -

💥 Electronic Drum Kit 💥

- - - -

Tech Stack Used 🎮

- -
- -![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) -![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - -![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
-

Step into the rhythm of creativity with our Electronic Drum Kit! This immersive web application invites users to explore a vibrant array of sounds, allowing you to unleash your inner musician. With a user-friendly interface, simply tap the colorful keys or press the corresponding keyboard keys to create captivating beats. Whether you're a seasoned drummer or a curious beginner, this project offers an engaging way to experiment with sound and rhythm. Perfect for music enthusiasts, this electronic drum kit not only provides a fun and interactive experience but also serves as a foundation for further musical exploration. Get ready to jam and let your creativity flow!

-
- - - - -## :zap: How to run it? 🕹️ - -1. **Fork** the repository [WebMasterLog](https://github.com/Avdhesh-Varshney/WebMasterLog) to your own GitHub account. -2. **Clone** the forked repository to your local machine using the command: - ```bash - git clone https://github.com/your-username/WebMasterLog.git - ``` -3. Navigate to the **vanilla-js** folder: - ```bash - cd WebMasterLog/vanilla-js/Electronic-Drum-Kit - ``` -4. Open the **index.html** file with a live server. - -Make sure to replace `your-username` with your actual GitHub username! - - - - -## :zap: Screenshots 📸 -![image](https://github.com/user-attachments/assets/8ce1fd24-55c8-45d4-86e9-54e1e23a76bf) - - - -## :zap: Working Video 📹 - -https://github.com/user-attachments/assets/84080732-837d-4e2e-aff7-ac4d4990427d - - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Jomana Tantawy 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 Electronic Drum Kit 💥

+ + + +

Tech Stack Used 🎮

+ +
+ +![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) +![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + +![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+

Step into the rhythm of creativity with our Electronic Drum Kit! This immersive web application invites users to explore a vibrant array of sounds, allowing you to unleash your inner musician. With a user-friendly interface, simply tap the colorful keys or press the corresponding keyboard keys to create captivating beats. Whether you're a seasoned drummer or a curious beginner, this project offers an engaging way to experiment with sound and rhythm. Perfect for music enthusiasts, this electronic drum kit not only provides a fun and interactive experience but also serves as a foundation for further musical exploration. Get ready to jam and let your creativity flow!

+
+ + + + +## :zap: How to run it? 🕹️ + +1. **Fork** the repository [WebMasterLog](https://github.com/Avdhesh-Varshney/WebMasterLog) to your own GitHub account. +2. **Clone** the forked repository to your local machine using the command: + ```bash + git clone https://github.com/your-username/WebMasterLog.git + ``` +3. Navigate to the **vanilla-js** folder: + ```bash + cd WebMasterLog/vanilla-js/Electronic-Drum-Kit + ``` +4. Open the **index.html** file with a live server. + +Make sure to replace `your-username` with your actual GitHub username! + + + + +## :zap: Screenshots 📸 +![image](https://github.com/user-attachments/assets/8ce1fd24-55c8-45d4-86e9-54e1e23a76bf) + + + +## :zap: Working Video 📹 + +https://github.com/user-attachments/assets/84080732-837d-4e2e-aff7-ac4d4990427d + + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Jomana Tantawy 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/boom.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/boom.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/boom.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/boom.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/clap.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/clap.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/clap.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/clap.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/hihat.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/hihat.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/hihat.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/hihat.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/kick.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/kick.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/kick.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/kick.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/openhat.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/openhat.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/openhat.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/openhat.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/ride.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/ride.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/ride.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/ride.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/snare.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/snare.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/snare.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/snare.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/tink.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/tink.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/tink.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/tink.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/tom.wav b/src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/tom.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/assets/tom.wav rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/assets/tom.wav diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/index.html b/src/app/(category)/javascript/(projects)/electronic-drum-kit/index.html similarity index 97% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/index.html rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/index.html index 95b03b6f..f119b072 100644 --- a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/index.html +++ b/src/app/(category)/javascript/(projects)/electronic-drum-kit/index.html @@ -1,44 +1,44 @@ - - - - - - Electronic Drum Kit - - - - - -
- - -
-

Electronic Drum Kit

- -
- - - - - - - - - -
- -
-

Developed by Jomana Tantawy

-
- - + + + + + + Electronic Drum Kit + + + + + +
+ + +
+

Electronic Drum Kit

+ +
+ + + + + + + + + +
+ +
+

Developed by Jomana Tantawy

+
+ + diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/screenshot.webp b/src/app/(category)/javascript/(projects)/electronic-drum-kit/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/screenshot.webp rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/script.js b/src/app/(category)/javascript/(projects)/electronic-drum-kit/script.js similarity index 96% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/script.js rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/script.js index ccbde67c..13134dde 100644 --- a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/script.js +++ b/src/app/(category)/javascript/(projects)/electronic-drum-kit/script.js @@ -1,45 +1,45 @@ -let keys = document.getElementsByClassName("key"); - -for (let i = 0; i < keys.length; i++) { - keys[i].onclick = function() { - playSound(keys[i]); - }; -} - -document.addEventListener('keydown', function(event) { - let keyPressed = event.key.toUpperCase(); - console.log("Key pressed: " + keyPressed); - - for (let i = 0; i < keys.length; i++) { - - if (keys[i].innerText === keyPressed) { - playSound(keys[i]); - } - } -}); - - -function playSound(key) { - let soundFile = key.getAttribute("data-sound"); - console.log("Playing sound for key: " + key.innerText); - - if (soundFile) { - let sound = new Audio(soundFile); - sound.play(); - key.classList.add('pressed'); - - - setTimeout(() => { - key.classList.remove('pressed'); - }, 100); - } else { - console.log("Sound file not found for this key"); - } -} - -document.getElementById("menuButton").addEventListener("click", function() { - const menu = document.getElementById("menu"); - menu.classList.toggle("hidden"); - menu.style.display = menu.style.display === 'none' ? 'block' : 'none'; -}); - +let keys = document.getElementsByClassName("key"); + +for (let i = 0; i < keys.length; i++) { + keys[i].onclick = function() { + playSound(keys[i]); + }; +} + +document.addEventListener('keydown', function(event) { + let keyPressed = event.key.toUpperCase(); + console.log("Key pressed: " + keyPressed); + + for (let i = 0; i < keys.length; i++) { + + if (keys[i].innerText === keyPressed) { + playSound(keys[i]); + } + } +}); + + +function playSound(key) { + let soundFile = key.getAttribute("data-sound"); + console.log("Playing sound for key: " + key.innerText); + + if (soundFile) { + let sound = new Audio(soundFile); + sound.play(); + key.classList.add('pressed'); + + + setTimeout(() => { + key.classList.remove('pressed'); + }, 100); + } else { + console.log("Sound file not found for this key"); + } +} + +document.getElementById("menuButton").addEventListener("click", function() { + const menu = document.getElementById("menu"); + menu.classList.toggle("hidden"); + menu.style.display = menu.style.display === 'none' ? 'block' : 'none'; +}); + diff --git a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/style.css b/src/app/(category)/javascript/(projects)/electronic-drum-kit/style.css similarity index 94% rename from Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/style.css rename to src/app/(category)/javascript/(projects)/electronic-drum-kit/style.css index 2a7806a1..0769fadf 100644 --- a/Vanilla-JS-Projects/Basic/Electronic-Drum-Kit/style.css +++ b/src/app/(category)/javascript/(projects)/electronic-drum-kit/style.css @@ -1,99 +1,99 @@ -*{ - margin: 0; - padding: 0; - box-sizing: border-box; -} - -#menu { - border: 1px solid #ccc; - background-color: #f9f9f9; - padding: 10px; - position: absolute; - top: 50px; - right: 10px; - width: 200px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); -} -body{ - background-color: #ffe9ec; - text-align: center; - margin: 0px; -} -body h2{ - padding-top: 0px; - font-size: 40px; - font-family:cursive; - -} -.boxs{ - position: relative; - margin: 0px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: center; -} -.key { - background-color: white; - width: 70px; - height: 70px; - font-size: 35px; - font-family: monospace; - margin: 15px; - display: flex; - justify-content: center; - align-items: center; - border-radius: 10px; - border-color: black; - border-width: 2px; - border-style: solid; - cursor: pointer; -} -.key:hover{ -transform: scale(1.1); -} -.key.pressed{ - transform: scale(1.1); -} - -footer { - display: flex; - justify-content: center; - align-items: center; - position: absolute; - bottom: 2px; - width: 100%; -} -.hidden { - display: none; -} -header { - position: relative; - display:flex; - justify-content:end; - margin-right: 10px; - margin-top: 10px; - align-items:center; - margin-bottom: 0px; -} - -#menuButton{ - background-color: white; - width: 150px; - height: 30px; - font-size: 20px; - font-family: monospace; - display: flex; - justify-content: center; - align-items: center; - border-radius: 10px; - border-color: black; - border-width: 2px; - border-style: solid; - cursor: pointer; -} - -#menu p{ - font-size: 20px; - font-family: monospace; +*{ + margin: 0; + padding: 0; + box-sizing: border-box; +} + +#menu { + border: 1px solid #ccc; + background-color: #f9f9f9; + padding: 10px; + position: absolute; + top: 50px; + right: 10px; + width: 200px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); +} +body{ + background-color: #ffe9ec; + text-align: center; + margin: 0px; +} +body h2{ + padding-top: 0px; + font-size: 40px; + font-family:cursive; + +} +.boxs{ + position: relative; + margin: 0px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; +} +.key { + background-color: white; + width: 70px; + height: 70px; + font-size: 35px; + font-family: monospace; + margin: 15px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 10px; + border-color: black; + border-width: 2px; + border-style: solid; + cursor: pointer; +} +.key:hover{ +transform: scale(1.1); +} +.key.pressed{ + transform: scale(1.1); +} + +footer { + display: flex; + justify-content: center; + align-items: center; + position: absolute; + bottom: 2px; + width: 100%; +} +.hidden { + display: none; +} +header { + position: relative; + display:flex; + justify-content:end; + margin-right: 10px; + margin-top: 10px; + align-items:center; + margin-bottom: 0px; +} + +#menuButton{ + background-color: white; + width: 150px; + height: 30px; + font-size: 20px; + font-family: monospace; + display: flex; + justify-content: center; + align-items: center; + border-radius: 10px; + border-color: black; + border-width: 2px; + border-style: solid; + cursor: pointer; +} + +#menu p{ + font-size: 20px; + font-family: monospace; } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/README.md b/src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/README.md rename to src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/bg.jpeg b/src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/bg.jpeg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/bg.jpeg rename to src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/bg.jpeg diff --git a/Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/icon.png b/src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/icon.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/icon.png rename to src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/icon.png diff --git a/Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/index.html b/src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/index.html rename to src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/screenshot.webp b/src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/screenshot.webp rename to src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/script.js b/src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/script.js rename to src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/style.css b/src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Email-Subscription-form-with-google-sheet/style.css rename to src/app/(category)/javascript/(projects)/email-subscription-form-with-google-sheet/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-0.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-0.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-0.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-0.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-1.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-1.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-1.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-1.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-2.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-2.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-2.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-2.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-3.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-3.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-3.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-3.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-4.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-4.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eye-4.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eye-4.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eyebrow-0.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eyebrow-0.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eyebrow-0.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eyebrow-0.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eyebrow-1.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eyebrow-1.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eyebrow-1.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eyebrow-1.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eyebrow-2.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eyebrow-2.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eyebrow-2.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eyebrow-2.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eyebrow-3.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/eyebrow-3.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/eyebrow-3.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/eyebrow-3.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-0.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-0.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-0.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-0.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-1.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-1.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-1.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-1.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-2.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-2.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-2.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-2.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-3.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-3.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-3.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-3.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-4.svg b/src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-4.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Images/mouth-4.svg rename to src/app/(category)/javascript/(projects)/emoji-maker/Images/mouth-4.svg diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/Readme.md b/src/app/(category)/javascript/(projects)/emoji-maker/Readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/Readme.md rename to src/app/(category)/javascript/(projects)/emoji-maker/Readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/index.html b/src/app/(category)/javascript/(projects)/emoji-maker/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/index.html rename to src/app/(category)/javascript/(projects)/emoji-maker/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/screenshot.webp b/src/app/(category)/javascript/(projects)/emoji-maker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/screenshot.webp rename to src/app/(category)/javascript/(projects)/emoji-maker/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/script.js b/src/app/(category)/javascript/(projects)/emoji-maker/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/script.js rename to src/app/(category)/javascript/(projects)/emoji-maker/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Emoji-Maker/style.css b/src/app/(category)/javascript/(projects)/emoji-maker/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Emoji-Maker/style.css rename to src/app/(category)/javascript/(projects)/emoji-maker/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/README.md b/src/app/(category)/javascript/(projects)/expense-splitter-website/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/README.md rename to src/app/(category)/javascript/(projects)/expense-splitter-website/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/index.html b/src/app/(category)/javascript/(projects)/expense-splitter-website/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/index.html rename to src/app/(category)/javascript/(projects)/expense-splitter-website/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/screenshot.webp b/src/app/(category)/javascript/(projects)/expense-splitter-website/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/screenshot.webp rename to src/app/(category)/javascript/(projects)/expense-splitter-website/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/script.js b/src/app/(category)/javascript/(projects)/expense-splitter-website/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/script.js rename to src/app/(category)/javascript/(projects)/expense-splitter-website/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/styles.css b/src/app/(category)/javascript/(projects)/expense-splitter-website/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Expense-Splitter-Website/styles.css rename to src/app/(category)/javascript/(projects)/expense-splitter-website/styles.css diff --git a/Vanilla-JS-Projects/Basic/Expense-Tracker/README.md b/src/app/(category)/javascript/(projects)/expense-tracker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Expense-Tracker/README.md rename to src/app/(category)/javascript/(projects)/expense-tracker/README.md diff --git a/Vanilla-JS-Projects/Basic/Expense-Tracker/index.html b/src/app/(category)/javascript/(projects)/expense-tracker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Expense-Tracker/index.html rename to src/app/(category)/javascript/(projects)/expense-tracker/index.html diff --git a/Vanilla-JS-Projects/Basic/Expense-Tracker/screenshot.webp b/src/app/(category)/javascript/(projects)/expense-tracker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Expense-Tracker/screenshot.webp rename to src/app/(category)/javascript/(projects)/expense-tracker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Expense-Tracker/script.js b/src/app/(category)/javascript/(projects)/expense-tracker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Expense-Tracker/script.js rename to src/app/(category)/javascript/(projects)/expense-tracker/script.js diff --git a/Vanilla-JS-Projects/Basic/Expense-Tracker/style.css b/src/app/(category)/javascript/(projects)/expense-tracker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Expense-Tracker/style.css rename to src/app/(category)/javascript/(projects)/expense-tracker/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/README.md b/src/app/(category)/javascript/(projects)/fitness-website/README.md similarity index 98% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/README.md rename to src/app/(category)/javascript/(projects)/fitness-website/README.md index 06ecb39b..311bb4c4 100644 --- a/Vanilla-JS-Projects/Intermediate/Fitness-Website/README.md +++ b/src/app/(category)/javascript/(projects)/fitness-website/README.md @@ -1,82 +1,82 @@ -

💥 TRAVEL WEBSITE 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
- -

A fitness website provides users with resources and tools for improving their physical health, including workout plans, exercise tutorials, nutrition advice, and tracking features to help users achieve their fitness goals.

-
- - - - -## :zap: How to run it? 🕹️ - - -Steps to run this website on your local machine: - -Download the code: Click on the "Code" button and select "Download ZIP". Extract the downloaded ZIP file to a folder on your computer. - -Open the project folder: Navigate to the folder where you extracted the ZIP file. - -Open index.html: Double-click on the index.html file. This will open the website in your default web browser. - -View and interact with the website: You can now explore the different pages and functionalities of the fitness website directly in your browser. - - - - -## :zap: Screenshots 📸 - - -![image](https://github.com/aditya-bhaumik/WebMasterLog/assets/92214013/82096e6d-0daf-4cfd-a732-a28e0f686c2d) - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Aditya Bhaumik 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 TRAVEL WEBSITE 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+ +

A fitness website provides users with resources and tools for improving their physical health, including workout plans, exercise tutorials, nutrition advice, and tracking features to help users achieve their fitness goals.

+
+ + + + +## :zap: How to run it? 🕹️ + + +Steps to run this website on your local machine: + +Download the code: Click on the "Code" button and select "Download ZIP". Extract the downloaded ZIP file to a folder on your computer. + +Open the project folder: Navigate to the folder where you extracted the ZIP file. + +Open index.html: Double-click on the index.html file. This will open the website in your default web browser. + +View and interact with the website: You can now explore the different pages and functionalities of the fitness website directly in your browser. + + + + +## :zap: Screenshots 📸 + + +![image](https://github.com/aditya-bhaumik/WebMasterLog/assets/92214013/82096e6d-0daf-4cfd-a732-a28e0f686c2d) + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Aditya Bhaumik 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/contact.css b/src/app/(category)/javascript/(projects)/fitness-website/contact.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/contact.css rename to src/app/(category)/javascript/(projects)/fitness-website/contact.css diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/contact.html b/src/app/(category)/javascript/(projects)/fitness-website/contact.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/contact.html rename to src/app/(category)/javascript/(projects)/fitness-website/contact.html diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises.html b/src/app/(category)/javascript/(projects)/fitness-website/exercises.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises.html rename to src/app/(category)/javascript/(projects)/fitness-website/exercises.html diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises/arm-exercises.html b/src/app/(category)/javascript/(projects)/fitness-website/exercises/arm-exercises.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises/arm-exercises.html rename to src/app/(category)/javascript/(projects)/fitness-website/exercises/arm-exercises.html diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises/back-exercises.html b/src/app/(category)/javascript/(projects)/fitness-website/exercises/back-exercises.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises/back-exercises.html rename to src/app/(category)/javascript/(projects)/fitness-website/exercises/back-exercises.html diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises/leg-exercises.html b/src/app/(category)/javascript/(projects)/fitness-website/exercises/leg-exercises.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises/leg-exercises.html rename to src/app/(category)/javascript/(projects)/fitness-website/exercises/leg-exercises.html diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises/shoulder-exercises.html b/src/app/(category)/javascript/(projects)/fitness-website/exercises/shoulder-exercises.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/exercises/shoulder-exercises.html rename to src/app/(category)/javascript/(projects)/fitness-website/exercises/shoulder-exercises.html diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/image.png b/src/app/(category)/javascript/(projects)/fitness-website/image.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/image.png rename to src/app/(category)/javascript/(projects)/fitness-website/image.png diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/index.html b/src/app/(category)/javascript/(projects)/fitness-website/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/index.html rename to src/app/(category)/javascript/(projects)/fitness-website/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/plans.html b/src/app/(category)/javascript/(projects)/fitness-website/plans.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/plans.html rename to src/app/(category)/javascript/(projects)/fitness-website/plans.html diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/screenshot.webp b/src/app/(category)/javascript/(projects)/fitness-website/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/screenshot.webp rename to src/app/(category)/javascript/(projects)/fitness-website/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/scripts.js b/src/app/(category)/javascript/(projects)/fitness-website/scripts.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/scripts.js rename to src/app/(category)/javascript/(projects)/fitness-website/scripts.js diff --git a/Vanilla-JS-Projects/Intermediate/Fitness-Website/styles.css b/src/app/(category)/javascript/(projects)/fitness-website/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Fitness-Website/styles.css rename to src/app/(category)/javascript/(projects)/fitness-website/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Food-Recipe-Finder/README.md b/src/app/(category)/javascript/(projects)/food-recipe-finder/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Food-Recipe-Finder/README.md rename to src/app/(category)/javascript/(projects)/food-recipe-finder/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Food-Recipe-Finder/index.html b/src/app/(category)/javascript/(projects)/food-recipe-finder/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Food-Recipe-Finder/index.html rename to src/app/(category)/javascript/(projects)/food-recipe-finder/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Food-Recipe-Finder/screenshot.webp b/src/app/(category)/javascript/(projects)/food-recipe-finder/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Food-Recipe-Finder/screenshot.webp rename to src/app/(category)/javascript/(projects)/food-recipe-finder/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Gallery/README.md b/src/app/(category)/javascript/(projects)/gallery/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Gallery/README.md rename to src/app/(category)/javascript/(projects)/gallery/README.md diff --git a/Vanilla-JS-Projects/Basic/Gallery/data.json b/src/app/(category)/javascript/(projects)/gallery/data.json similarity index 100% rename from Vanilla-JS-Projects/Basic/Gallery/data.json rename to src/app/(category)/javascript/(projects)/gallery/data.json diff --git a/Vanilla-JS-Projects/Basic/Gallery/index.html b/src/app/(category)/javascript/(projects)/gallery/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Gallery/index.html rename to src/app/(category)/javascript/(projects)/gallery/index.html diff --git a/Vanilla-JS-Projects/Basic/Gallery/screenshot.webp b/src/app/(category)/javascript/(projects)/gallery/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Gallery/screenshot.webp rename to src/app/(category)/javascript/(projects)/gallery/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Gallery/script.js b/src/app/(category)/javascript/(projects)/gallery/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Gallery/script.js rename to src/app/(category)/javascript/(projects)/gallery/script.js diff --git a/Vanilla-JS-Projects/Basic/Gallery/style.css b/src/app/(category)/javascript/(projects)/gallery/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Gallery/style.css rename to src/app/(category)/javascript/(projects)/gallery/style.css diff --git a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/README.md b/src/app/(category)/javascript/(projects)/garden-planning-website/README.md similarity index 98% rename from Vanilla-JS-Projects/Advanced/Garden-Planning-Website/README.md rename to src/app/(category)/javascript/(projects)/garden-planning-website/README.md index 27bbf61e..caa01959 100644 --- a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/README.md +++ b/src/app/(category)/javascript/(projects)/garden-planning-website/README.md @@ -1,83 +1,83 @@ -

💥 GARDEN PLANNING WEBSITE💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
- -

The Garden Planner website is an interactive tool designed for users to create and visualize their ideal garden layout. Users can drag and drop various plants into a grid to plan their garden space while tracking the total cost based on the selected plants. The site allows for saving and loading garden layouts, making it easy to manage and modify designs over time. With a user-friendly interface and responsive design, it aims to enhance the gardening experience for both beginners and enthusiasts.

-
- - - - -## :zap: How to run it? 🕹️ - - -Steps to run this website on your local machine: - -Download the code: Click on the "Code" button and select "Download ZIP". Extract the downloaded ZIP file to a folder on your computer. - -Open the project folder: Navigate to the folder where you extracted the ZIP file. - -Open index.html: Double-click on the index.html file. This will open the website in your default web browser. - -View and interact with the website: You can now explore the different pages and functionalities of the fitness website directly in your browser. - - - - -## :zap: Screenshots 📸 - - -![image](https://github.com/user-attachments/assets/2765491d-54e9-4d9a-a5fb-d629767fd00a) - - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Aditya Bhaumik 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 GARDEN PLANNING WEBSITE💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+ +

The Garden Planner website is an interactive tool designed for users to create and visualize their ideal garden layout. Users can drag and drop various plants into a grid to plan their garden space while tracking the total cost based on the selected plants. The site allows for saving and loading garden layouts, making it easy to manage and modify designs over time. With a user-friendly interface and responsive design, it aims to enhance the gardening experience for both beginners and enthusiasts.

+
+ + + + +## :zap: How to run it? 🕹️ + + +Steps to run this website on your local machine: + +Download the code: Click on the "Code" button and select "Download ZIP". Extract the downloaded ZIP file to a folder on your computer. + +Open the project folder: Navigate to the folder where you extracted the ZIP file. + +Open index.html: Double-click on the index.html file. This will open the website in your default web browser. + +View and interact with the website: You can now explore the different pages and functionalities of the fitness website directly in your browser. + + + + +## :zap: Screenshots 📸 + + +![image](https://github.com/user-attachments/assets/2765491d-54e9-4d9a-a5fb-d629767fd00a) + + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Aditya Bhaumik 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/data.json b/src/app/(category)/javascript/(projects)/garden-planning-website/data.json similarity index 98% rename from Vanilla-JS-Projects/Advanced/Garden-Planning-Website/data.json rename to src/app/(category)/javascript/(projects)/garden-planning-website/data.json index f4ab6241..c6ef2489 100644 --- a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/data.json +++ b/src/app/(category)/javascript/(projects)/garden-planning-website/data.json @@ -1,64 +1,64 @@ -{ - "plants": [ - { "name": "Rose", "description": "A beautiful flower", "price": 5 }, - { "name": "Tulip", "description": "A spring-blooming perennial", "price": 3 }, - { "name": "Sunflower", "description": "A large, yellow flower", "price": 4 }, - { "name": "Daisy", "description": "A simple yet charming flower", "price": 2 }, - { "name": "Lavender", "description": "A fragrant purple flower", "price": 6 }, - { "name": "Marigold", "description": "A vibrant orange flower", "price": 2 }, - { "name": "Lily", "description": "A beautiful white flower", "price": 7 }, - { "name": "Orchid", "description": "An exotic and elegant flower", "price": 10 }, - { "name": "Peony", "description": "A large, fragrant flower", "price": 8 }, - { "name": "Chrysanthemum", "description": "A colorful autumn flower", "price": 3 }, - { "name": "Geranium", "description": "A versatile and vibrant flower", "price": 4 }, - { "name": "Hydrangea", "description": "A stunning flower with large blooms", "price": 9 }, - { "name": "Daffodil", "description": "A bright yellow spring flower", "price": 5 }, - { "name": "Aster", "description": "A star-shaped flower", "price": 3 }, - { "name": "Begonia", "description": "A colorful and diverse flower", "price": 4 }, - { "name": "Camellia", "description": "A beautiful evergreen flower", "price": 6 }, - { "name": "Crocus", "description": "A small, early-blooming flower", "price": 2 }, - { "name": "Dahlia", "description": "A stunning and vibrant flower", "price": 8 }, - { "name": "Gardenia", "description": "A fragrant and elegant flower", "price": 7 }, - { "name": "Hibiscus", "description": "A tropical and colorful flower", "price": 5 }, - { "name": "Iris", "description": "A beautiful and tall flower", "price": 6 }, - { "name": "Jasmine", "description": "A fragrant and delicate flower", "price": 5 }, - { "name": "Lilac", "description": "A fragrant spring flower", "price": 4 }, - { "name": "Magnolia", "description": "A large and elegant flower", "price": 10 }, - { "name": "Narcissus", "description": "A bright and cheerful flower", "price": 5 }, - { "name": "Pansy", "description": "A colorful and hardy flower", "price": 3 }, - { "name": "Petunia", "description": "A versatile and vibrant flower", "price": 4 }, - { "name": "Snapdragon", "description": "A tall and colorful flower", "price": 5 }, - { "name": "Zinnia", "description": "A bright and cheerful flower", "price": 3 }, - { "name": "Bluebell", "description": "A beautiful and delicate flower", "price": 4 }, - { "name": "Foxglove", "description": "A tall and elegant flower", "price": 5 }, - { "name": "Gladiolus", "description": "A tall and colorful flower", "price": 6 }, - { "name": "Honeysuckle", "description": "A fragrant and climbing flower", "price": 5 }, - { "name": "Morning Glory", "description": "A beautiful and climbing flower", "price": 4 }, - { "name": "Poppy", "description": "A bright and delicate flower", "price": 3 }, - { "name": "Primrose", "description": "A colorful and early-blooming flower", "price": 4 }, - { "name": "Rhododendron", "description": "A large and vibrant flower", "price": 8 }, - { "name": "Sweet Pea", "description": "A fragrant and climbing flower", "price": 4 }, - { "name": "Verbena", "description": "A colorful and low-growing flower", "price": 3 }, - { "name": "Violet", "description": "A small and delicate flower", "price": 2 }, - { "name": "Wisteria", "description": "A beautiful and climbing flower", "price": 7 }, - { "name": "Yarrow", "description": "A hardy and colorful flower", "price": 3 }, - { "name": "Azalea", "description": "A colorful and evergreen flower", "price": 5 }, - { "name": "Bougainvillea", "description": "A vibrant and climbing flower", "price": 6 }, - { "name": "Canna", "description": "A tall and colorful flower", "price": 7 }, - { "name": "Coreopsis", "description": "A bright and cheerful flower", "price": 3 }, - { "name": "Echinacea", "description": "A hardy and vibrant flower", "price": 4 }, - { "name": "Gaillardia", "description": "A colorful and hardy flower", "price": 3 }, - { "name": "Heliotrope", "description": "A fragrant and colorful flower", "price": 5 }, - { "name": "Hollyhock", "description": "A tall and colorful flower", "price": 6 }, - { "name": "Lantana", "description": "A colorful and hardy flower", "price": 4 }, - { "name": "Lobelia", "description": "A vibrant and low-growing flower", "price": 3 }, - { "name": "Nasturtium", "description": "A bright and edible flower", "price": 2 }, - { "name": "Salvia", "description": "A colorful and hardy flower", "price": 3 }, - { "name": "Scabiosa", "description": "A beautiful and delicate flower", "price": 4 }, - { "name": "Sedum", "description": "A hardy and low-growing flower", "price": 3 }, - { "name": "Statice", "description": "A colorful and hardy flower", "price": 3 }, - { "name": "Tithonia", "description": "A bright and cheerful flower", "price": 4 }, - { "name": "Verbascum", "description": "A tall and elegant flower", "price": 5 }, - { "name": "Yucca", "description": "A hardy and architectural flower", "price": 6 } - ] -} +{ + "plants": [ + { "name": "Rose", "description": "A beautiful flower", "price": 5 }, + { "name": "Tulip", "description": "A spring-blooming perennial", "price": 3 }, + { "name": "Sunflower", "description": "A large, yellow flower", "price": 4 }, + { "name": "Daisy", "description": "A simple yet charming flower", "price": 2 }, + { "name": "Lavender", "description": "A fragrant purple flower", "price": 6 }, + { "name": "Marigold", "description": "A vibrant orange flower", "price": 2 }, + { "name": "Lily", "description": "A beautiful white flower", "price": 7 }, + { "name": "Orchid", "description": "An exotic and elegant flower", "price": 10 }, + { "name": "Peony", "description": "A large, fragrant flower", "price": 8 }, + { "name": "Chrysanthemum", "description": "A colorful autumn flower", "price": 3 }, + { "name": "Geranium", "description": "A versatile and vibrant flower", "price": 4 }, + { "name": "Hydrangea", "description": "A stunning flower with large blooms", "price": 9 }, + { "name": "Daffodil", "description": "A bright yellow spring flower", "price": 5 }, + { "name": "Aster", "description": "A star-shaped flower", "price": 3 }, + { "name": "Begonia", "description": "A colorful and diverse flower", "price": 4 }, + { "name": "Camellia", "description": "A beautiful evergreen flower", "price": 6 }, + { "name": "Crocus", "description": "A small, early-blooming flower", "price": 2 }, + { "name": "Dahlia", "description": "A stunning and vibrant flower", "price": 8 }, + { "name": "Gardenia", "description": "A fragrant and elegant flower", "price": 7 }, + { "name": "Hibiscus", "description": "A tropical and colorful flower", "price": 5 }, + { "name": "Iris", "description": "A beautiful and tall flower", "price": 6 }, + { "name": "Jasmine", "description": "A fragrant and delicate flower", "price": 5 }, + { "name": "Lilac", "description": "A fragrant spring flower", "price": 4 }, + { "name": "Magnolia", "description": "A large and elegant flower", "price": 10 }, + { "name": "Narcissus", "description": "A bright and cheerful flower", "price": 5 }, + { "name": "Pansy", "description": "A colorful and hardy flower", "price": 3 }, + { "name": "Petunia", "description": "A versatile and vibrant flower", "price": 4 }, + { "name": "Snapdragon", "description": "A tall and colorful flower", "price": 5 }, + { "name": "Zinnia", "description": "A bright and cheerful flower", "price": 3 }, + { "name": "Bluebell", "description": "A beautiful and delicate flower", "price": 4 }, + { "name": "Foxglove", "description": "A tall and elegant flower", "price": 5 }, + { "name": "Gladiolus", "description": "A tall and colorful flower", "price": 6 }, + { "name": "Honeysuckle", "description": "A fragrant and climbing flower", "price": 5 }, + { "name": "Morning Glory", "description": "A beautiful and climbing flower", "price": 4 }, + { "name": "Poppy", "description": "A bright and delicate flower", "price": 3 }, + { "name": "Primrose", "description": "A colorful and early-blooming flower", "price": 4 }, + { "name": "Rhododendron", "description": "A large and vibrant flower", "price": 8 }, + { "name": "Sweet Pea", "description": "A fragrant and climbing flower", "price": 4 }, + { "name": "Verbena", "description": "A colorful and low-growing flower", "price": 3 }, + { "name": "Violet", "description": "A small and delicate flower", "price": 2 }, + { "name": "Wisteria", "description": "A beautiful and climbing flower", "price": 7 }, + { "name": "Yarrow", "description": "A hardy and colorful flower", "price": 3 }, + { "name": "Azalea", "description": "A colorful and evergreen flower", "price": 5 }, + { "name": "Bougainvillea", "description": "A vibrant and climbing flower", "price": 6 }, + { "name": "Canna", "description": "A tall and colorful flower", "price": 7 }, + { "name": "Coreopsis", "description": "A bright and cheerful flower", "price": 3 }, + { "name": "Echinacea", "description": "A hardy and vibrant flower", "price": 4 }, + { "name": "Gaillardia", "description": "A colorful and hardy flower", "price": 3 }, + { "name": "Heliotrope", "description": "A fragrant and colorful flower", "price": 5 }, + { "name": "Hollyhock", "description": "A tall and colorful flower", "price": 6 }, + { "name": "Lantana", "description": "A colorful and hardy flower", "price": 4 }, + { "name": "Lobelia", "description": "A vibrant and low-growing flower", "price": 3 }, + { "name": "Nasturtium", "description": "A bright and edible flower", "price": 2 }, + { "name": "Salvia", "description": "A colorful and hardy flower", "price": 3 }, + { "name": "Scabiosa", "description": "A beautiful and delicate flower", "price": 4 }, + { "name": "Sedum", "description": "A hardy and low-growing flower", "price": 3 }, + { "name": "Statice", "description": "A colorful and hardy flower", "price": 3 }, + { "name": "Tithonia", "description": "A bright and cheerful flower", "price": 4 }, + { "name": "Verbascum", "description": "A tall and elegant flower", "price": 5 }, + { "name": "Yucca", "description": "A hardy and architectural flower", "price": 6 } + ] +} diff --git a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/image.png b/src/app/(category)/javascript/(projects)/garden-planning-website/image.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Garden-Planning-Website/image.png rename to src/app/(category)/javascript/(projects)/garden-planning-website/image.png diff --git a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/index.html b/src/app/(category)/javascript/(projects)/garden-planning-website/index.html similarity index 96% rename from Vanilla-JS-Projects/Advanced/Garden-Planning-Website/index.html rename to src/app/(category)/javascript/(projects)/garden-planning-website/index.html index 200e51d8..163de325 100644 --- a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/index.html +++ b/src/app/(category)/javascript/(projects)/garden-planning-website/index.html @@ -1,38 +1,38 @@ - - - - - - Garden Planner - - - -
-

Garden Planner

-
-
- -
- -
-
-

Plant Information

-
-
-
-
-

© 2024 Garden Planner

-
- - - + + + + + + Garden Planner + + + +
+

Garden Planner

+
+
+ +
+ +
+
+

Plant Information

+
+
+
+
+

© 2024 Garden Planner

+
+ + + diff --git a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/screenshot.webp b/src/app/(category)/javascript/(projects)/garden-planning-website/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Garden-Planning-Website/screenshot.webp rename to src/app/(category)/javascript/(projects)/garden-planning-website/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/script.js b/src/app/(category)/javascript/(projects)/garden-planning-website/script.js similarity index 97% rename from Vanilla-JS-Projects/Advanced/Garden-Planning-Website/script.js rename to src/app/(category)/javascript/(projects)/garden-planning-website/script.js index f1651b06..bc810731 100644 --- a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/script.js +++ b/src/app/(category)/javascript/(projects)/garden-planning-website/script.js @@ -1,103 +1,103 @@ -document.addEventListener('DOMContentLoaded', () => { - const plantList = document.getElementById('plantList'); - const gridContainer = document.getElementById('gridContainer'); - const plantInfo = document.getElementById('plantInfo'); - const saveButton = document.getElementById('saveButton'); - const loadButton = document.getElementById('loadButton'); - const totalCostElement = document.getElementById('totalCost'); - let totalCost = 0; - - // Load plant data - fetch('data.json') - .then(response => response.json()) - .then(data => { - data.plants.forEach(plant => { - const div = document.createElement('div'); - div.textContent = plant.name; - div.draggable = true; - div.dataset.plant = JSON.stringify(plant); - div.addEventListener('dragstart', e => { - e.dataTransfer.setData('text/plain', div.dataset.plant); - }); - plantList.appendChild(div); - }); - }); - - // Create grid cells - for (let i = 0; i < 100; i++) { - const cell = document.createElement('div'); - cell.classList.add('grid-cell'); - cell.addEventListener('dragover', e => { - e.preventDefault(); - }); - cell.addEventListener('drop', e => { - e.preventDefault(); - const plant = JSON.parse(e.dataTransfer.getData('text/plain')); - cell.textContent = plant.name; - cell.dataset.plant = JSON.stringify(plant); - updateTotalCost(); - }); - cell.addEventListener('click', () => { - const plant = cell.dataset.plant ? JSON.parse(cell.dataset.plant) : null; - if (plant) { - plantInfo.innerHTML = `Name: ${plant.name}
Description: ${plant.description}
Price: $1`; - } else { - plantInfo.textContent = 'No plant selected'; - } - }); - gridContainer.appendChild(cell); - } - - // Update total cost - function updateTotalCost() { - totalCost = 0; - gridContainer.childNodes.forEach(cell => { - if (cell.dataset.plant) { - totalCost += 1; // Add $1 for each plant - } - }); - totalCostElement.textContent = totalCost.toFixed(2); - } - - // Save layout to PC - saveButton.addEventListener('click', () => { - const layout = []; - gridContainer.childNodes.forEach(cell => { - layout.push(cell.dataset.plant || null); - }); - const blob = new Blob([JSON.stringify(layout)], { type: 'application/json' }); - const url = URL.createObjectURL(blob); - const a = document.createElement('a'); - a.href = url; - a.download = 'gardenLayout.json'; - a.click(); - URL.revokeObjectURL(url); - }); - - // Load layout from PC - loadButton.addEventListener('click', () => { - const input = document.createElement('input'); - input.type = 'file'; - input.accept = 'application/json'; - input.onchange = e => { - const file = e.target.files[0]; - const reader = new FileReader(); - reader.onload = event => { - const layout = JSON.parse(event.target.result); - gridContainer.childNodes.forEach((cell, index) => { - const plant = layout[index]; - if (plant) { - cell.textContent = JSON.parse(plant).name; - cell.dataset.plant = plant; - } else { - cell.textContent = ''; - cell.dataset.plant = null; - } - }); - updateTotalCost(); - }; - reader.readAsText(file); - }; - input.click(); - }); -}); +document.addEventListener('DOMContentLoaded', () => { + const plantList = document.getElementById('plantList'); + const gridContainer = document.getElementById('gridContainer'); + const plantInfo = document.getElementById('plantInfo'); + const saveButton = document.getElementById('saveButton'); + const loadButton = document.getElementById('loadButton'); + const totalCostElement = document.getElementById('totalCost'); + let totalCost = 0; + + // Load plant data + fetch('data.json') + .then(response => response.json()) + .then(data => { + data.plants.forEach(plant => { + const div = document.createElement('div'); + div.textContent = plant.name; + div.draggable = true; + div.dataset.plant = JSON.stringify(plant); + div.addEventListener('dragstart', e => { + e.dataTransfer.setData('text/plain', div.dataset.plant); + }); + plantList.appendChild(div); + }); + }); + + // Create grid cells + for (let i = 0; i < 100; i++) { + const cell = document.createElement('div'); + cell.classList.add('grid-cell'); + cell.addEventListener('dragover', e => { + e.preventDefault(); + }); + cell.addEventListener('drop', e => { + e.preventDefault(); + const plant = JSON.parse(e.dataTransfer.getData('text/plain')); + cell.textContent = plant.name; + cell.dataset.plant = JSON.stringify(plant); + updateTotalCost(); + }); + cell.addEventListener('click', () => { + const plant = cell.dataset.plant ? JSON.parse(cell.dataset.plant) : null; + if (plant) { + plantInfo.innerHTML = `Name: ${plant.name}
Description: ${plant.description}
Price: $1`; + } else { + plantInfo.textContent = 'No plant selected'; + } + }); + gridContainer.appendChild(cell); + } + + // Update total cost + function updateTotalCost() { + totalCost = 0; + gridContainer.childNodes.forEach(cell => { + if (cell.dataset.plant) { + totalCost += 1; // Add $1 for each plant + } + }); + totalCostElement.textContent = totalCost.toFixed(2); + } + + // Save layout to PC + saveButton.addEventListener('click', () => { + const layout = []; + gridContainer.childNodes.forEach(cell => { + layout.push(cell.dataset.plant || null); + }); + const blob = new Blob([JSON.stringify(layout)], { type: 'application/json' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = 'gardenLayout.json'; + a.click(); + URL.revokeObjectURL(url); + }); + + // Load layout from PC + loadButton.addEventListener('click', () => { + const input = document.createElement('input'); + input.type = 'file'; + input.accept = 'application/json'; + input.onchange = e => { + const file = e.target.files[0]; + const reader = new FileReader(); + reader.onload = event => { + const layout = JSON.parse(event.target.result); + gridContainer.childNodes.forEach((cell, index) => { + const plant = layout[index]; + if (plant) { + cell.textContent = JSON.parse(plant).name; + cell.dataset.plant = plant; + } else { + cell.textContent = ''; + cell.dataset.plant = null; + } + }); + updateTotalCost(); + }; + reader.readAsText(file); + }; + input.click(); + }); +}); diff --git a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/style.css b/src/app/(category)/javascript/(projects)/garden-planning-website/style.css similarity index 94% rename from Vanilla-JS-Projects/Advanced/Garden-Planning-Website/style.css rename to src/app/(category)/javascript/(projects)/garden-planning-website/style.css index 81548f7a..ae113c59 100644 --- a/Vanilla-JS-Projects/Advanced/Garden-Planning-Website/style.css +++ b/src/app/(category)/javascript/(projects)/garden-planning-website/style.css @@ -1,137 +1,137 @@ -body { - font-family: Arial, sans-serif; - margin: 0; - padding: 0; - display: flex; - flex-direction: column; - height: 100vh; - background-color: #072747; - color: #ecf0f1; -} - -header { - background-color: #2d6298; - color: #ecf0f1; - text-align: center; - padding: 1em; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); -} - -main { - display: flex; - flex: 1; - overflow: hidden; -} - -.sidebar { - width: 20%; - padding: 1em; - background-color: #031c38; - box-shadow: 2px 0 5px rgba(12, 11, 11, 0.1); - display: flex; - flex-direction: column; - align-items: center; - animation: slideIn 1s ease; - overflow-y: auto; -} - -@keyframes slideIn { - from { transform: translateX(-100%); } - to { transform: translateX(0); } -} - -.grid-container { - width: 60%; - display: grid; - grid-template-columns: repeat(10, 1fr); - grid-gap: 5px; - padding: 1em; - overflow-y: auto; - animation: fadeIn 1s ease; -} - -.grid-container div { - border: 1px solid #33c4ce; - min-height: 50px; - display: flex; - align-items: center; - justify-content: center; - background-color: #022d58; - transition: background-color 0.3s; -} - -.grid-container div:hover { - background-color: #010a15; -} - -.info-panel { - width: 20%; - padding: 1em; - background-color: #144a7d; - box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1); - display: flex; - flex-direction: column; - align-items: center; - animation: slideInRight 1s ease; - overflow-y: auto; -} - -@keyframes slideInRight { - from { transform: translateX(100%); } - to { transform: translateX(0); } -} - -footer { - background-color: #2564a3; - color: #ecf0f1; - text-align: center; - padding: 1em; -} - -.cost { - margin-top: 20px; -} - -#plantList { - max-height: 60vh; - overflow-y: auto; -} - -#plantList div { - cursor: pointer; - padding: 10px; - margin: 5px; - background-color: #34495e; - border: 1px solid #7f8c8d; - transition: background-color 0.3s; -} - -#plantList div:hover { - background-color: #3b4d61; -} - -button { - margin-top: 10px; - padding: 10px; - background-color: #054c86; - border: none; - color: white; - cursor: pointer; - transition: background-color 0.3s; -} - -button:hover { - background-color: #16a085; -} - -@media (max-width: 768px) { - .sidebar, .info-panel { - width: 100%; - order: 2; - padding: 0.5em; - } - .grid-container { - width: 100%; - order: 1; - } -} +body { + font-family: Arial, sans-serif; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + height: 100vh; + background-color: #072747; + color: #ecf0f1; +} + +header { + background-color: #2d6298; + color: #ecf0f1; + text-align: center; + padding: 1em; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +} + +main { + display: flex; + flex: 1; + overflow: hidden; +} + +.sidebar { + width: 20%; + padding: 1em; + background-color: #031c38; + box-shadow: 2px 0 5px rgba(12, 11, 11, 0.1); + display: flex; + flex-direction: column; + align-items: center; + animation: slideIn 1s ease; + overflow-y: auto; +} + +@keyframes slideIn { + from { transform: translateX(-100%); } + to { transform: translateX(0); } +} + +.grid-container { + width: 60%; + display: grid; + grid-template-columns: repeat(10, 1fr); + grid-gap: 5px; + padding: 1em; + overflow-y: auto; + animation: fadeIn 1s ease; +} + +.grid-container div { + border: 1px solid #33c4ce; + min-height: 50px; + display: flex; + align-items: center; + justify-content: center; + background-color: #022d58; + transition: background-color 0.3s; +} + +.grid-container div:hover { + background-color: #010a15; +} + +.info-panel { + width: 20%; + padding: 1em; + background-color: #144a7d; + box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + align-items: center; + animation: slideInRight 1s ease; + overflow-y: auto; +} + +@keyframes slideInRight { + from { transform: translateX(100%); } + to { transform: translateX(0); } +} + +footer { + background-color: #2564a3; + color: #ecf0f1; + text-align: center; + padding: 1em; +} + +.cost { + margin-top: 20px; +} + +#plantList { + max-height: 60vh; + overflow-y: auto; +} + +#plantList div { + cursor: pointer; + padding: 10px; + margin: 5px; + background-color: #34495e; + border: 1px solid #7f8c8d; + transition: background-color 0.3s; +} + +#plantList div:hover { + background-color: #3b4d61; +} + +button { + margin-top: 10px; + padding: 10px; + background-color: #054c86; + border: none; + color: white; + cursor: pointer; + transition: background-color 0.3s; +} + +button:hover { + background-color: #16a085; +} + +@media (max-width: 768px) { + .sidebar, .info-panel { + width: 100%; + order: 2; + padding: 0.5em; + } + .grid-container { + width: 100%; + order: 1; + } +} diff --git a/Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/README.md b/src/app/(category)/javascript/(projects)/gasguys-homepage-clone/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/README.md rename to src/app/(category)/javascript/(projects)/gasguys-homepage-clone/README.md diff --git a/Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/index.html b/src/app/(category)/javascript/(projects)/gasguys-homepage-clone/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/index.html rename to src/app/(category)/javascript/(projects)/gasguys-homepage-clone/index.html diff --git a/Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/screenshot.webp b/src/app/(category)/javascript/(projects)/gasguys-homepage-clone/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/screenshot.webp rename to src/app/(category)/javascript/(projects)/gasguys-homepage-clone/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/script.js b/src/app/(category)/javascript/(projects)/gasguys-homepage-clone/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/script.js rename to src/app/(category)/javascript/(projects)/gasguys-homepage-clone/script.js diff --git a/Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/style.css b/src/app/(category)/javascript/(projects)/gasguys-homepage-clone/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/GasGuys-HomePage-Clone/style.css rename to src/app/(category)/javascript/(projects)/gasguys-homepage-clone/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/README.md b/src/app/(category)/javascript/(projects)/github-profile-viewer/README.md similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/README.md rename to src/app/(category)/javascript/(projects)/github-profile-viewer/README.md index 7ce45732..7aaae181 100644 --- a/Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/README.md +++ b/src/app/(category)/javascript/(projects)/github-profile-viewer/README.md @@ -1,60 +1,60 @@ -

📊 GitHub Profile Viewer 📊

- - - -

Tech Stack Used 💻

- -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - ![GitHub API](https://img.shields.io/badge/github_api-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) - -
- -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
-

The GitHub Profile Viewer is a web application that allows users to search and view GitHub profiles using the GitHub API. The app fetches user data, including repositories, followers, and other GitHub statistics, providing a sleek and professional interface to explore GitHub profiles easily.

-
- - - -## :zap: How to run it? 🕹️ - -1. Clone the repository to your local machine. - ```bash - git clone https://github.com/ananyag309/github-profile-viewer.git - ``` -2. Open the `index.html` file in your browser. -3. Enter a GitHub username in the search box and click "Search". -4. Explore the user's profile information, repositories, and followers. - - - -## :zap: Screenshots 📸 - -![GitHub Profile Viewer Screenshot](screenshot.webp) - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Ananya Gupta 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

📊 GitHub Profile Viewer 📊

+ + + +

Tech Stack Used 💻

+ +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + ![GitHub API](https://img.shields.io/badge/github_api-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) + +
+ +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+

The GitHub Profile Viewer is a web application that allows users to search and view GitHub profiles using the GitHub API. The app fetches user data, including repositories, followers, and other GitHub statistics, providing a sleek and professional interface to explore GitHub profiles easily.

+
+ + + +## :zap: How to run it? 🕹️ + +1. Clone the repository to your local machine. + ```bash + git clone https://github.com/ananyag309/github-profile-viewer.git + ``` +2. Open the `index.html` file in your browser. +3. Enter a GitHub username in the search box and click "Search". +4. Explore the user's profile information, repositories, and followers. + + + +## :zap: Screenshots 📸 + +![GitHub Profile Viewer Screenshot](screenshot.webp) + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Ananya Gupta 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/index.html b/src/app/(category)/javascript/(projects)/github-profile-viewer/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/index.html rename to src/app/(category)/javascript/(projects)/github-profile-viewer/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/screenshot.webp b/src/app/(category)/javascript/(projects)/github-profile-viewer/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/screenshot.webp rename to src/app/(category)/javascript/(projects)/github-profile-viewer/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/script.js b/src/app/(category)/javascript/(projects)/github-profile-viewer/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/script.js rename to src/app/(category)/javascript/(projects)/github-profile-viewer/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/style.css b/src/app/(category)/javascript/(projects)/github-profile-viewer/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Github-Profile-Viewer/style.css rename to src/app/(category)/javascript/(projects)/github-profile-viewer/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Gravity-Drops/README.md b/src/app/(category)/javascript/(projects)/gravity-drops/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Gravity-Drops/README.md rename to src/app/(category)/javascript/(projects)/gravity-drops/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Gravity-Drops/index.html b/src/app/(category)/javascript/(projects)/gravity-drops/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Gravity-Drops/index.html rename to src/app/(category)/javascript/(projects)/gravity-drops/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Gravity-Drops/screenshot.webp b/src/app/(category)/javascript/(projects)/gravity-drops/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Gravity-Drops/screenshot.webp rename to src/app/(category)/javascript/(projects)/gravity-drops/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Gravity-Drops/script.js b/src/app/(category)/javascript/(projects)/gravity-drops/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Gravity-Drops/script.js rename to src/app/(category)/javascript/(projects)/gravity-drops/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Gravity-Drops/style.css b/src/app/(category)/javascript/(projects)/gravity-drops/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Gravity-Drops/style.css rename to src/app/(category)/javascript/(projects)/gravity-drops/style.css diff --git a/Vanilla-JS-Projects/Advanced/Hackathon-Tracker/README.md b/src/app/(category)/javascript/(projects)/hackathon-tracker/README.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/Hackathon-Tracker/README.md rename to src/app/(category)/javascript/(projects)/hackathon-tracker/README.md diff --git a/Vanilla-JS-Projects/Advanced/Hackathon-Tracker/index.html b/src/app/(category)/javascript/(projects)/hackathon-tracker/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/Hackathon-Tracker/index.html rename to src/app/(category)/javascript/(projects)/hackathon-tracker/index.html diff --git a/Vanilla-JS-Projects/Advanced/Hackathon-Tracker/screenshot.webp b/src/app/(category)/javascript/(projects)/hackathon-tracker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Hackathon-Tracker/screenshot.webp rename to src/app/(category)/javascript/(projects)/hackathon-tracker/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Hackathon-Tracker/script.js b/src/app/(category)/javascript/(projects)/hackathon-tracker/script.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/Hackathon-Tracker/script.js rename to src/app/(category)/javascript/(projects)/hackathon-tracker/script.js diff --git a/Vanilla-JS-Projects/Advanced/Hackathon-Tracker/style.css b/src/app/(category)/javascript/(projects)/hackathon-tracker/style.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/Hackathon-Tracker/style.css rename to src/app/(category)/javascript/(projects)/hackathon-tracker/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/README.md b/src/app/(category)/javascript/(projects)/hex-color-code-generator/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/README.md rename to src/app/(category)/javascript/(projects)/hex-color-code-generator/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/index.html b/src/app/(category)/javascript/(projects)/hex-color-code-generator/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/index.html rename to src/app/(category)/javascript/(projects)/hex-color-code-generator/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/hex-color-code-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/hex-color-code-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/script.js b/src/app/(category)/javascript/(projects)/hex-color-code-generator/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/script.js rename to src/app/(category)/javascript/(projects)/hex-color-code-generator/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/style.css b/src/app/(category)/javascript/(projects)/hex-color-code-generator/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Hex-Color-Code-Generator/style.css rename to src/app/(category)/javascript/(projects)/hex-color-code-generator/style.css diff --git a/Vanilla-JS-Projects/Basic/Image-Search-Engine/README.md b/src/app/(category)/javascript/(projects)/image-search-engine/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Image-Search-Engine/README.md rename to src/app/(category)/javascript/(projects)/image-search-engine/README.md diff --git a/Vanilla-JS-Projects/Basic/Image-Search-Engine/index.html b/src/app/(category)/javascript/(projects)/image-search-engine/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Image-Search-Engine/index.html rename to src/app/(category)/javascript/(projects)/image-search-engine/index.html diff --git a/Vanilla-JS-Projects/Basic/Image-Search-Engine/screenshot.webp b/src/app/(category)/javascript/(projects)/image-search-engine/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Image-Search-Engine/screenshot.webp rename to src/app/(category)/javascript/(projects)/image-search-engine/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Image-Search-Engine/script.js b/src/app/(category)/javascript/(projects)/image-search-engine/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Image-Search-Engine/script.js rename to src/app/(category)/javascript/(projects)/image-search-engine/script.js diff --git a/Vanilla-JS-Projects/Basic/Image-Search-Engine/style.css b/src/app/(category)/javascript/(projects)/image-search-engine/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Image-Search-Engine/style.css rename to src/app/(category)/javascript/(projects)/image-search-engine/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/README.md b/src/app/(category)/javascript/(projects)/interactive-drawing-website/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/README.md rename to src/app/(category)/javascript/(projects)/interactive-drawing-website/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/image.png b/src/app/(category)/javascript/(projects)/interactive-drawing-website/image.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/image.png rename to src/app/(category)/javascript/(projects)/interactive-drawing-website/image.png diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/index.html b/src/app/(category)/javascript/(projects)/interactive-drawing-website/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/index.html rename to src/app/(category)/javascript/(projects)/interactive-drawing-website/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/screenshot.webp b/src/app/(category)/javascript/(projects)/interactive-drawing-website/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/screenshot.webp rename to src/app/(category)/javascript/(projects)/interactive-drawing-website/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/script.js b/src/app/(category)/javascript/(projects)/interactive-drawing-website/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/script.js rename to src/app/(category)/javascript/(projects)/interactive-drawing-website/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/styles.css b/src/app/(category)/javascript/(projects)/interactive-drawing-website/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Drawing-Website/styles.css rename to src/app/(category)/javascript/(projects)/interactive-drawing-website/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/data.json b/src/app/(category)/javascript/(projects)/interactive-periodic-table/data.json similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/data.json rename to src/app/(category)/javascript/(projects)/interactive-periodic-table/data.json diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/index.html b/src/app/(category)/javascript/(projects)/interactive-periodic-table/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/index.html rename to src/app/(category)/javascript/(projects)/interactive-periodic-table/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/readme.md b/src/app/(category)/javascript/(projects)/interactive-periodic-table/readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/readme.md rename to src/app/(category)/javascript/(projects)/interactive-periodic-table/readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/screenshot.webp b/src/app/(category)/javascript/(projects)/interactive-periodic-table/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/screenshot.webp rename to src/app/(category)/javascript/(projects)/interactive-periodic-table/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/script.js b/src/app/(category)/javascript/(projects)/interactive-periodic-table/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/script.js rename to src/app/(category)/javascript/(projects)/interactive-periodic-table/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/styles.css b/src/app/(category)/javascript/(projects)/interactive-periodic-table/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interactive-Periodic-Table/styles.css rename to src/app/(category)/javascript/(projects)/interactive-periodic-table/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/README.md b/src/app/(category)/javascript/(projects)/interval-timer/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/README.md rename to src/app/(category)/javascript/(projects)/interval-timer/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/css/style.min.css b/src/app/(category)/javascript/(projects)/interval-timer/css/style.min.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/css/style.min.css rename to src/app/(category)/javascript/(projects)/interval-timer/css/style.min.css diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/index.html b/src/app/(category)/javascript/(projects)/interval-timer/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/index.html rename to src/app/(category)/javascript/(projects)/interval-timer/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/js/main.js b/src/app/(category)/javascript/(projects)/interval-timer/js/main.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/js/main.js rename to src/app/(category)/javascript/(projects)/interval-timer/js/main.js diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/js/main.min.js b/src/app/(category)/javascript/(projects)/interval-timer/js/main.min.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/js/main.min.js rename to src/app/(category)/javascript/(projects)/interval-timer/js/main.min.js diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/screenshot.webp b/src/app/(category)/javascript/(projects)/interval-timer/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/screenshot.webp rename to src/app/(category)/javascript/(projects)/interval-timer/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_app.scss b/src/app/(category)/javascript/(projects)/interval-timer/scss/_app.scss similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_app.scss rename to src/app/(category)/javascript/(projects)/interval-timer/scss/_app.scss diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_buttons.scss b/src/app/(category)/javascript/(projects)/interval-timer/scss/_buttons.scss similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_buttons.scss rename to src/app/(category)/javascript/(projects)/interval-timer/scss/_buttons.scss diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_header.scss b/src/app/(category)/javascript/(projects)/interval-timer/scss/_header.scss similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_header.scss rename to src/app/(category)/javascript/(projects)/interval-timer/scss/_header.scss diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_media.scss b/src/app/(category)/javascript/(projects)/interval-timer/scss/_media.scss similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_media.scss rename to src/app/(category)/javascript/(projects)/interval-timer/scss/_media.scss diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_ready.scss b/src/app/(category)/javascript/(projects)/interval-timer/scss/_ready.scss similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_ready.scss rename to src/app/(category)/javascript/(projects)/interval-timer/scss/_ready.scss diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_reset.scss b/src/app/(category)/javascript/(projects)/interval-timer/scss/_reset.scss similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_reset.scss rename to src/app/(category)/javascript/(projects)/interval-timer/scss/_reset.scss diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_vars.scss b/src/app/(category)/javascript/(projects)/interval-timer/scss/_vars.scss similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/_vars.scss rename to src/app/(category)/javascript/(projects)/interval-timer/scss/_vars.scss diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/style.scss b/src/app/(category)/javascript/(projects)/interval-timer/scss/style.scss similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/scss/style.scss rename to src/app/(category)/javascript/(projects)/interval-timer/scss/style.scss diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/sounds/finish.mp3 b/src/app/(category)/javascript/(projects)/interval-timer/sounds/finish.mp3 similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/sounds/finish.mp3 rename to src/app/(category)/javascript/(projects)/interval-timer/sounds/finish.mp3 diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/sounds/pick.mp3 b/src/app/(category)/javascript/(projects)/interval-timer/sounds/pick.mp3 similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/sounds/pick.mp3 rename to src/app/(category)/javascript/(projects)/interval-timer/sounds/pick.mp3 diff --git a/Vanilla-JS-Projects/Intermediate/Interval-Timer/sounds/start.mp3 b/src/app/(category)/javascript/(projects)/interval-timer/sounds/start.mp3 similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Interval-Timer/sounds/start.mp3 rename to src/app/(category)/javascript/(projects)/interval-timer/sounds/start.mp3 diff --git a/Vanilla-JS-Projects/Basic/Isogram-Checker/README.md b/src/app/(category)/javascript/(projects)/isogram-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Isogram-Checker/README.md rename to src/app/(category)/javascript/(projects)/isogram-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Isogram-Checker/index.html b/src/app/(category)/javascript/(projects)/isogram-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Isogram-Checker/index.html rename to src/app/(category)/javascript/(projects)/isogram-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Isogram-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/isogram-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Isogram-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/isogram-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Isogram-Checker/script.js b/src/app/(category)/javascript/(projects)/isogram-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Isogram-Checker/script.js rename to src/app/(category)/javascript/(projects)/isogram-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Isogram-Checker/style.css b/src/app/(category)/javascript/(projects)/isogram-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Isogram-Checker/style.css rename to src/app/(category)/javascript/(projects)/isogram-checker/style.css diff --git a/Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/README.md b/src/app/(category)/javascript/(projects)/isomorphic-strings-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/README.md rename to src/app/(category)/javascript/(projects)/isomorphic-strings-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/index.html b/src/app/(category)/javascript/(projects)/isomorphic-strings-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/index.html rename to src/app/(category)/javascript/(projects)/isomorphic-strings-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/isomorphic-strings-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/isomorphic-strings-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/script.js b/src/app/(category)/javascript/(projects)/isomorphic-strings-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/script.js rename to src/app/(category)/javascript/(projects)/isomorphic-strings-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/style.css b/src/app/(category)/javascript/(projects)/isomorphic-strings-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Isomorphic-Strings-Checker/style.css rename to src/app/(category)/javascript/(projects)/isomorphic-strings-checker/style.css diff --git a/Vanilla-JS-Projects/Basic/Joke-Telling-Website/README.md b/src/app/(category)/javascript/(projects)/joke-telling-website/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Joke-Telling-Website/README.md rename to src/app/(category)/javascript/(projects)/joke-telling-website/README.md diff --git a/Vanilla-JS-Projects/Basic/Joke-Telling-Website/index.html b/src/app/(category)/javascript/(projects)/joke-telling-website/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Joke-Telling-Website/index.html rename to src/app/(category)/javascript/(projects)/joke-telling-website/index.html diff --git a/Vanilla-JS-Projects/Basic/Joke-Telling-Website/screenshot.webp b/src/app/(category)/javascript/(projects)/joke-telling-website/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Joke-Telling-Website/screenshot.webp rename to src/app/(category)/javascript/(projects)/joke-telling-website/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Joke-Telling-Website/script.js b/src/app/(category)/javascript/(projects)/joke-telling-website/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Joke-Telling-Website/script.js rename to src/app/(category)/javascript/(projects)/joke-telling-website/script.js diff --git a/Vanilla-JS-Projects/Basic/Joke-Telling-Website/style.css b/src/app/(category)/javascript/(projects)/joke-telling-website/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Joke-Telling-Website/style.css rename to src/app/(category)/javascript/(projects)/joke-telling-website/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Kanban-Board/README.md b/src/app/(category)/javascript/(projects)/kanban-board/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Kanban-Board/README.md rename to src/app/(category)/javascript/(projects)/kanban-board/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Kanban-Board/index.html b/src/app/(category)/javascript/(projects)/kanban-board/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Kanban-Board/index.html rename to src/app/(category)/javascript/(projects)/kanban-board/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Kanban-Board/screenshot.webp b/src/app/(category)/javascript/(projects)/kanban-board/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Kanban-Board/screenshot.webp rename to src/app/(category)/javascript/(projects)/kanban-board/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Kanban-Board/script.js b/src/app/(category)/javascript/(projects)/kanban-board/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Kanban-Board/script.js rename to src/app/(category)/javascript/(projects)/kanban-board/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Kanban-Board/style.css b/src/app/(category)/javascript/(projects)/kanban-board/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Kanban-Board/style.css rename to src/app/(category)/javascript/(projects)/kanban-board/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/README.md b/src/app/(category)/javascript/(projects)/language-learning-website/README.md similarity index 98% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/README.md rename to src/app/(category)/javascript/(projects)/language-learning-website/README.md index ef906dbb..5249a39d 100644 --- a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/README.md +++ b/src/app/(category)/javascript/(projects)/language-learning-website/README.md @@ -1,81 +1,81 @@ -

💥 LANGUAGE LEARNING WEBSITE 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
- -

This website is a language learning platform that offers lessons, quizzes, and flashcards to help users learn a new language. It tracks users' progress through lessons and quizzes, providing an interactive and engaging way to practice and improve language skills.

-
- - - - -## :zap: How to run it? 🕹️ - - -Steps to run this website on your local machine: - -Download the code: Click on the "Code" button and select "Download ZIP". Extract the downloaded ZIP file to a folder on your computer. - -Open the project folder: Navigate to the folder where you extracted the ZIP file. - -Open index.html: Double-click on the index.html file. This will open the website in your default web browser. - -View and interact with the website: You can now explore the different pages and functionalities of the fitness website directly in your browser. - - - - -## :zap: Screenshots 📸 - - -![image](https://github.com/aditya-bhaumik/WebMasterLog/assets/92214013/323c11c0-e20f-43f7-b865-1b79c2020b0d) - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Aditya Bhaumik 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 LANGUAGE LEARNING WEBSITE 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+ +

This website is a language learning platform that offers lessons, quizzes, and flashcards to help users learn a new language. It tracks users' progress through lessons and quizzes, providing an interactive and engaging way to practice and improve language skills.

+
+ + + + +## :zap: How to run it? 🕹️ + + +Steps to run this website on your local machine: + +Download the code: Click on the "Code" button and select "Download ZIP". Extract the downloaded ZIP file to a folder on your computer. + +Open the project folder: Navigate to the folder where you extracted the ZIP file. + +Open index.html: Double-click on the index.html file. This will open the website in your default web browser. + +View and interact with the website: You can now explore the different pages and functionalities of the fitness website directly in your browser. + + + + +## :zap: Screenshots 📸 + + +![image](https://github.com/aditya-bhaumik/WebMasterLog/assets/92214013/323c11c0-e20f-43f7-b865-1b79c2020b0d) + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Aditya Bhaumik 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/css/styles.css b/src/app/(category)/javascript/(projects)/language-learning-website/css/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/css/styles.css rename to src/app/(category)/javascript/(projects)/language-learning-website/css/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/flashcards.html b/src/app/(category)/javascript/(projects)/language-learning-website/flashcards.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/flashcards.html rename to src/app/(category)/javascript/(projects)/language-learning-website/flashcards.html diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/index.html b/src/app/(category)/javascript/(projects)/language-learning-website/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/index.html rename to src/app/(category)/javascript/(projects)/language-learning-website/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/js/main.js b/src/app/(category)/javascript/(projects)/language-learning-website/js/main.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/js/main.js rename to src/app/(category)/javascript/(projects)/language-learning-website/js/main.js diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/lessons.html b/src/app/(category)/javascript/(projects)/language-learning-website/lessons.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/lessons.html rename to src/app/(category)/javascript/(projects)/language-learning-website/lessons.html diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/progress.html b/src/app/(category)/javascript/(projects)/language-learning-website/progress.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/progress.html rename to src/app/(category)/javascript/(projects)/language-learning-website/progress.html diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/quizzes.html b/src/app/(category)/javascript/(projects)/language-learning-website/quizzes.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/quizzes.html rename to src/app/(category)/javascript/(projects)/language-learning-website/quizzes.html diff --git a/Vanilla-JS-Projects/Intermediate/Language-Learning-Website/screenshot.webp b/src/app/(category)/javascript/(projects)/language-learning-website/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Learning-Website/screenshot.webp rename to src/app/(category)/javascript/(projects)/language-learning-website/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Language-Translator/README.md b/src/app/(category)/javascript/(projects)/language-translator/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Translator/README.md rename to src/app/(category)/javascript/(projects)/language-translator/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Language-Translator/index.html b/src/app/(category)/javascript/(projects)/language-translator/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Translator/index.html rename to src/app/(category)/javascript/(projects)/language-translator/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Language-Translator/screenshot.webp b/src/app/(category)/javascript/(projects)/language-translator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Translator/screenshot.webp rename to src/app/(category)/javascript/(projects)/language-translator/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Language-Translator/script.js b/src/app/(category)/javascript/(projects)/language-translator/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Translator/script.js rename to src/app/(category)/javascript/(projects)/language-translator/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Language-Translator/styles.css b/src/app/(category)/javascript/(projects)/language-translator/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Language-Translator/styles.css rename to src/app/(category)/javascript/(projects)/language-translator/styles.css diff --git a/Vanilla-JS-Projects/Basic/Leap-Year-Checker/README.md b/src/app/(category)/javascript/(projects)/leap-year-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Leap-Year-Checker/README.md rename to src/app/(category)/javascript/(projects)/leap-year-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Leap-Year-Checker/index.html b/src/app/(category)/javascript/(projects)/leap-year-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Leap-Year-Checker/index.html rename to src/app/(category)/javascript/(projects)/leap-year-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Leap-Year-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/leap-year-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Leap-Year-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/leap-year-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Leap-Year-Checker/script.js b/src/app/(category)/javascript/(projects)/leap-year-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Leap-Year-Checker/script.js rename to src/app/(category)/javascript/(projects)/leap-year-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Leap-Year-Checker/style.css b/src/app/(category)/javascript/(projects)/leap-year-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Leap-Year-Checker/style.css rename to src/app/(category)/javascript/(projects)/leap-year-checker/style.css diff --git a/Vanilla-JS-Projects/Advanced/Markdown-Previewer/Readme.md b/src/app/(category)/javascript/(projects)/markdown-previewer/Readme.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/Markdown-Previewer/Readme.md rename to src/app/(category)/javascript/(projects)/markdown-previewer/Readme.md diff --git a/Vanilla-JS-Projects/Advanced/Markdown-Previewer/index.html b/src/app/(category)/javascript/(projects)/markdown-previewer/index.html similarity index 96% rename from Vanilla-JS-Projects/Advanced/Markdown-Previewer/index.html rename to src/app/(category)/javascript/(projects)/markdown-previewer/index.html index 1812b572..f9e825e8 100644 --- a/Vanilla-JS-Projects/Advanced/Markdown-Previewer/index.html +++ b/src/app/(category)/javascript/(projects)/markdown-previewer/index.html @@ -1,23 +1,23 @@ - - - - - - - Markdown Previewer - - - - - -
- -
-
- - - - - - - + + + + + + + Markdown Previewer + + + + + +
+ +
+
+ + + + + + + diff --git a/Vanilla-JS-Projects/Advanced/Markdown-Previewer/screenshot.webp b/src/app/(category)/javascript/(projects)/markdown-previewer/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Markdown-Previewer/screenshot.webp rename to src/app/(category)/javascript/(projects)/markdown-previewer/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Markdown-Previewer/script.js b/src/app/(category)/javascript/(projects)/markdown-previewer/script.js similarity index 97% rename from Vanilla-JS-Projects/Advanced/Markdown-Previewer/script.js rename to src/app/(category)/javascript/(projects)/markdown-previewer/script.js index a8f388d2..a184d51d 100644 --- a/Vanilla-JS-Projects/Advanced/Markdown-Previewer/script.js +++ b/src/app/(category)/javascript/(projects)/markdown-previewer/script.js @@ -1,13 +1,13 @@ - -document.addEventListener('DOMContentLoaded', function() { - const markdownInput = document.getElementById('markdown-input'); - const preview = document.getElementById('preview'); - - function updatePreview() { - // Sanitize and render markdown - const sanitizedHtml = DOMPurify.sanitize(marked.parse(markdownInput.value)); - preview.innerHTML = sanitizedHtml; - } - - markdownInput.addEventListener('input', updatePreview); -}); + +document.addEventListener('DOMContentLoaded', function() { + const markdownInput = document.getElementById('markdown-input'); + const preview = document.getElementById('preview'); + + function updatePreview() { + // Sanitize and render markdown + const sanitizedHtml = DOMPurify.sanitize(marked.parse(markdownInput.value)); + preview.innerHTML = sanitizedHtml; + } + + markdownInput.addEventListener('input', updatePreview); +}); diff --git a/Vanilla-JS-Projects/Advanced/Markdown-Previewer/styles.css b/src/app/(category)/javascript/(projects)/markdown-previewer/styles.css similarity index 93% rename from Vanilla-JS-Projects/Advanced/Markdown-Previewer/styles.css rename to src/app/(category)/javascript/(projects)/markdown-previewer/styles.css index b22b865b..732c2dde 100644 --- a/Vanilla-JS-Projects/Advanced/Markdown-Previewer/styles.css +++ b/src/app/(category)/javascript/(projects)/markdown-previewer/styles.css @@ -1,31 +1,31 @@ -body { - font-family: Arial, sans-serif; - margin: 0; - padding: 0; -} - -.container { - display: flex; - justify-content: space-around; - align-items: flex-start; - margin-top: 50px; -} - -textarea { - width: 45%; - height: 400px; - padding: 10px; - font-size: 16px; - border: 1px solid #ccc; - border-radius: 5px; -} - -#preview { - width: 45%; - height: 400px; - padding: 10px; - font-size: 16px; - border: 1px solid #ccc; - border-radius: 5px; - overflow-y: auto; +body { + font-family: Arial, sans-serif; + margin: 0; + padding: 0; +} + +.container { + display: flex; + justify-content: space-around; + align-items: flex-start; + margin-top: 50px; +} + +textarea { + width: 45%; + height: 400px; + padding: 10px; + font-size: 16px; + border: 1px solid #ccc; + border-radius: 5px; +} + +#preview { + width: 45%; + height: 400px; + padding: 10px; + font-size: 16px; + border: 1px solid #ccc; + border-radius: 5px; + overflow-y: auto; } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Intermediate/Martian-Imagery/Images/mars.png b/src/app/(category)/javascript/(projects)/martian-imagery/Images/mars.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Martian-Imagery/Images/mars.png rename to src/app/(category)/javascript/(projects)/martian-imagery/Images/mars.png diff --git a/Vanilla-JS-Projects/Intermediate/Martian-Imagery/app.js b/src/app/(category)/javascript/(projects)/martian-imagery/app.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Martian-Imagery/app.js rename to src/app/(category)/javascript/(projects)/martian-imagery/app.js diff --git a/Vanilla-JS-Projects/Intermediate/Martian-Imagery/index.html b/src/app/(category)/javascript/(projects)/martian-imagery/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Martian-Imagery/index.html rename to src/app/(category)/javascript/(projects)/martian-imagery/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Martian-Imagery/readme.md b/src/app/(category)/javascript/(projects)/martian-imagery/readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Martian-Imagery/readme.md rename to src/app/(category)/javascript/(projects)/martian-imagery/readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Martian-Imagery/screenshot.webp b/src/app/(category)/javascript/(projects)/martian-imagery/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Martian-Imagery/screenshot.webp rename to src/app/(category)/javascript/(projects)/martian-imagery/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Martian-Imagery/style.css b/src/app/(category)/javascript/(projects)/martian-imagery/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Martian-Imagery/style.css rename to src/app/(category)/javascript/(projects)/martian-imagery/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Creator/README.md b/src/app/(category)/javascript/(projects)/meme-creator/README.md similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Meme-Creator/README.md rename to src/app/(category)/javascript/(projects)/meme-creator/README.md index b49d6bfc..22744fc9 100644 --- a/Vanilla-JS-Projects/Intermediate/Meme-Creator/README.md +++ b/src/app/(category)/javascript/(projects)/meme-creator/README.md @@ -1,60 +1,60 @@ -

💥 Meme Generator 💥

- - - -

Tech Stack Used 🎮

- -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - -
- -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
-

This project is a simple and professional Meme Generator web app. Users can upload an image, add top and bottom text, adjust the text size, and then download the meme as a PNG file. It provides a fun, interactive interface with advanced CSS styles for a seamless experience.

-
- - - -## :zap: How to run it? 🕹️ - -1. Clone the repository to your local machine. - ```bash - git clone https://github.com/ananyag309/meme-generator.git - ``` -2. Open the `index.html` file in your browser. -3. Upload your image, add the desired text, and adjust text sizes. -4. Click "Create Meme" to generate and then "Download Meme" to save it as a PNG file. - - - -## :zap: Screenshots 📸 - -![Meme Generator Screenshot](screenshot.webp) - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Ananya Gupta 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 Meme Generator 💥

+ + + +

Tech Stack Used 🎮

+ +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + +
+ +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+

This project is a simple and professional Meme Generator web app. Users can upload an image, add top and bottom text, adjust the text size, and then download the meme as a PNG file. It provides a fun, interactive interface with advanced CSS styles for a seamless experience.

+
+ + + +## :zap: How to run it? 🕹️ + +1. Clone the repository to your local machine. + ```bash + git clone https://github.com/ananyag309/meme-generator.git + ``` +2. Open the `index.html` file in your browser. +3. Upload your image, add the desired text, and adjust text sizes. +4. Click "Create Meme" to generate and then "Download Meme" to save it as a PNG file. + + + +## :zap: Screenshots 📸 + +![Meme Generator Screenshot](screenshot.webp) + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Ananya Gupta 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Creator/index.html b/src/app/(category)/javascript/(projects)/meme-creator/index.html similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Meme-Creator/index.html rename to src/app/(category)/javascript/(projects)/meme-creator/index.html index 8be90d0d..23fbd108 100644 --- a/Vanilla-JS-Projects/Intermediate/Meme-Creator/index.html +++ b/src/app/(category)/javascript/(projects)/meme-creator/index.html @@ -1,52 +1,52 @@ - - - - - - Meme Generator - - - -
-
-

Meme Generator

-
- -
- -
- -
-
- - -
- -
- - - - - -
- -
- - - - - -
- -
- - -
-
-
-
-
- - - - + + + + + + Meme Generator + + + +
+
+

Meme Generator

+
+ +
+ +
+ +
+
+ + +
+ +
+ + + + + +
+ +
+ + + + + +
+ +
+ + +
+
+
+
+
+ + + + diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Creator/screenshot.webp b/src/app/(category)/javascript/(projects)/meme-creator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Meme-Creator/screenshot.webp rename to src/app/(category)/javascript/(projects)/meme-creator/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Creator/script.js b/src/app/(category)/javascript/(projects)/meme-creator/script.js similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Meme-Creator/script.js rename to src/app/(category)/javascript/(projects)/meme-creator/script.js index 91cfacc1..dbdf2832 100644 --- a/Vanilla-JS-Projects/Intermediate/Meme-Creator/script.js +++ b/src/app/(category)/javascript/(projects)/meme-creator/script.js @@ -1,80 +1,80 @@ -// Get the DOM elements -const imageUpload = document.getElementById('imageUpload'); -const topTextInput = document.getElementById('topText'); -const bottomTextInput = document.getElementById('bottomText'); -const topTextSizeInput = document.getElementById('topTextSize'); -const bottomTextSizeInput = document.getElementById('bottomTextSize'); -const memeCanvas = document.getElementById('memeCanvas'); -const ctx = memeCanvas.getContext('2d'); -const generateMemeButton = document.getElementById('generateMeme'); -const downloadMemeButton = document.getElementById('downloadMeme'); - -// Set canvas default dimensions -memeCanvas.width = 500; -memeCanvas.height = 400; - -let image; - -// Event listener for image upload -imageUpload.addEventListener('change', (e) => { - const reader = new FileReader(); - reader.onload = () => { - image = new Image(); - image.src = reader.result; - image.onload = () => { - drawMeme(); - }; - }; - reader.readAsDataURL(e.target.files[0]); -}); - -// Event listeners for text and size inputs -topTextInput.addEventListener('input', drawMeme); -bottomTextInput.addEventListener('input', drawMeme); -topTextSizeInput.addEventListener('input', drawMeme); -bottomTextSizeInput.addEventListener('input', drawMeme); -generateMemeButton.addEventListener('click', drawMeme); - -// Function to draw meme -function drawMeme() { - // Clear canvas - ctx.clearRect(0, 0, memeCanvas.width, memeCanvas.height); - - // Draw image - if (image) { - ctx.drawImage(image, 0, 0, memeCanvas.width, memeCanvas.height); - } - - // Set top text style - ctx.font = `${topTextSizeInput.value}px Arial`; - ctx.fillStyle = 'white'; - ctx.strokeStyle = 'black'; - ctx.lineWidth = 4; - ctx.textAlign = 'center'; - - // Draw top text - ctx.strokeText(topTextInput.value, memeCanvas.width / 2, 50); - ctx.fillText(topTextInput.value, memeCanvas.width / 2, 50); - - // Set bottom text style - ctx.font = `${bottomTextSizeInput.value}px Arial`; - - // Draw bottom text - ctx.strokeText(bottomTextInput.value, memeCanvas.width / 2, memeCanvas.height - 30); - ctx.fillText(bottomTextInput.value, memeCanvas.width / 2, memeCanvas.height - 30); - - // Enable the download button after meme is created - downloadMemeButton.classList.remove('disabled'); - downloadMemeButton.disabled = false; -} - -// Event listener to download the meme -downloadMemeButton.addEventListener('click', () => { - // Create a temporary link element - const link = document.createElement('a'); - link.download = 'meme.png'; - link.href = memeCanvas.toDataURL(); - - // Trigger the download - link.click(); -}); +// Get the DOM elements +const imageUpload = document.getElementById('imageUpload'); +const topTextInput = document.getElementById('topText'); +const bottomTextInput = document.getElementById('bottomText'); +const topTextSizeInput = document.getElementById('topTextSize'); +const bottomTextSizeInput = document.getElementById('bottomTextSize'); +const memeCanvas = document.getElementById('memeCanvas'); +const ctx = memeCanvas.getContext('2d'); +const generateMemeButton = document.getElementById('generateMeme'); +const downloadMemeButton = document.getElementById('downloadMeme'); + +// Set canvas default dimensions +memeCanvas.width = 500; +memeCanvas.height = 400; + +let image; + +// Event listener for image upload +imageUpload.addEventListener('change', (e) => { + const reader = new FileReader(); + reader.onload = () => { + image = new Image(); + image.src = reader.result; + image.onload = () => { + drawMeme(); + }; + }; + reader.readAsDataURL(e.target.files[0]); +}); + +// Event listeners for text and size inputs +topTextInput.addEventListener('input', drawMeme); +bottomTextInput.addEventListener('input', drawMeme); +topTextSizeInput.addEventListener('input', drawMeme); +bottomTextSizeInput.addEventListener('input', drawMeme); +generateMemeButton.addEventListener('click', drawMeme); + +// Function to draw meme +function drawMeme() { + // Clear canvas + ctx.clearRect(0, 0, memeCanvas.width, memeCanvas.height); + + // Draw image + if (image) { + ctx.drawImage(image, 0, 0, memeCanvas.width, memeCanvas.height); + } + + // Set top text style + ctx.font = `${topTextSizeInput.value}px Arial`; + ctx.fillStyle = 'white'; + ctx.strokeStyle = 'black'; + ctx.lineWidth = 4; + ctx.textAlign = 'center'; + + // Draw top text + ctx.strokeText(topTextInput.value, memeCanvas.width / 2, 50); + ctx.fillText(topTextInput.value, memeCanvas.width / 2, 50); + + // Set bottom text style + ctx.font = `${bottomTextSizeInput.value}px Arial`; + + // Draw bottom text + ctx.strokeText(bottomTextInput.value, memeCanvas.width / 2, memeCanvas.height - 30); + ctx.fillText(bottomTextInput.value, memeCanvas.width / 2, memeCanvas.height - 30); + + // Enable the download button after meme is created + downloadMemeButton.classList.remove('disabled'); + downloadMemeButton.disabled = false; +} + +// Event listener to download the meme +downloadMemeButton.addEventListener('click', () => { + // Create a temporary link element + const link = document.createElement('a'); + link.download = 'meme.png'; + link.href = memeCanvas.toDataURL(); + + // Trigger the download + link.click(); +}); diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Creator/styles.css b/src/app/(category)/javascript/(projects)/meme-creator/styles.css similarity index 94% rename from Vanilla-JS-Projects/Intermediate/Meme-Creator/styles.css rename to src/app/(category)/javascript/(projects)/meme-creator/styles.css index f630e497..bc7027fb 100644 --- a/Vanilla-JS-Projects/Intermediate/Meme-Creator/styles.css +++ b/src/app/(category)/javascript/(projects)/meme-creator/styles.css @@ -1,197 +1,197 @@ -/* Global styles */ -* { - margin: 0; - padding: 0; - box-sizing: border-box; - font-family: 'Poppins', sans-serif; -} - -body { - background-color: #2c3e50; - display: flex; - justify-content: center; - align-items: center; - height: 100vh; - padding: 20px; - overflow: hidden; - color: white; -} - -.container { - background-color: #34495e; - padding: 30px; - border-radius: 12px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); - max-width: 1000px; - width: 100%; - transition: transform 0.4s ease-in-out; -} - -.container:hover { - transform: scale(1.02); -} - -.meme-generator h1 { - text-align: center; - margin-bottom: 20px; - font-size: 2.2rem; - letter-spacing: 1.5px; - color: #ecf0f1; - text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); -} - -.meme-section { - display: flex; - justify-content: space-between; - align-items: flex-start; - gap: 20px; -} - -.meme-preview { - flex: 1; - text-align: center; - margin-bottom: 20px; -} - -#memeCanvas { - width: 100%; - max-width: 500px; - height: 400px; - background-color: #333; - border: 3px solid #ecf0f1; - border-radius: 10px; - box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2); - transition: transform 0.3s ease-in-out; -} - -#memeCanvas:hover { - transform: translateY(-10px); -} - -.controls { - flex: 1; - display: flex; - flex-direction: column; - gap: 15px; - padding: 10px 0; -} - -.file-controls, .text-controls, .slider-controls { - margin-bottom: 20px; -} - -label { - font-size: 1rem; - color: #ecf0f1; - margin-bottom: 5px; - display: block; -} - -input[type="file"] { - background-color: #16a085; - color: white; - padding: 10px; - border-radius: 8px; - cursor: pointer; - transition: background-color 0.3s ease; -} - -input[type="file"]:hover { - background-color: #1abc9c; -} - -input[type="text"] { - padding: 10px; - border-radius: 8px; - border: none; - background-color: #fff; - color: #2c3e50; - transition: box-shadow 0.3s ease; - font-size: 1rem; - box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); - width: 100%; -} - -input[type="text"]:focus { - outline: none; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); -} - -input[type="range"] { - -webkit-appearance: none; - width: 100%; - background-color: transparent; -} - -input[type="range"]::-webkit-slider-runnable-track { - height: 8px; - background: #1abc9c; - border-radius: 10px; -} - -input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - width: 18px; - height: 18px; - background: #fff; - border-radius: 50%; - border: 2px solid #1abc9c; - cursor: pointer; - transition: background 0.3s ease; -} - -input[type="range"]::-webkit-slider-thumb:hover { - background: #16a085; -} - -button { - background-color: #e74c3c; - color: white; - padding: 12px 20px; - font-size: 1rem; - border: none; - border-radius: 8px; - cursor: pointer; - transition: background-color 0.3s ease, transform 0.3s ease; - text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); - width: 100%; -} - -button:hover { - background-color: #c0392b; - transform: translateY(-5px); -} - -button:active { - transform: scale(0.98); -} - -/* Media queries */ -@media (max-width: 768px) { - .meme-section { - flex-direction: column; - align-items: center; - } - - #memeCanvas { - height: 300px; - } - - h1 { - font-size: 1.8rem; - } - - button { - padding: 10px 15px; - } -} - -button.disabled { - background-color: #95a5a6; - cursor: not-allowed; -} - -button.disabled:hover { - background-color: #95a5a6; - transform: none; -} +/* Global styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif; +} + +body { + background-color: #2c3e50; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + padding: 20px; + overflow: hidden; + color: white; +} + +.container { + background-color: #34495e; + padding: 30px; + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); + max-width: 1000px; + width: 100%; + transition: transform 0.4s ease-in-out; +} + +.container:hover { + transform: scale(1.02); +} + +.meme-generator h1 { + text-align: center; + margin-bottom: 20px; + font-size: 2.2rem; + letter-spacing: 1.5px; + color: #ecf0f1; + text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); +} + +.meme-section { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 20px; +} + +.meme-preview { + flex: 1; + text-align: center; + margin-bottom: 20px; +} + +#memeCanvas { + width: 100%; + max-width: 500px; + height: 400px; + background-color: #333; + border: 3px solid #ecf0f1; + border-radius: 10px; + box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2); + transition: transform 0.3s ease-in-out; +} + +#memeCanvas:hover { + transform: translateY(-10px); +} + +.controls { + flex: 1; + display: flex; + flex-direction: column; + gap: 15px; + padding: 10px 0; +} + +.file-controls, .text-controls, .slider-controls { + margin-bottom: 20px; +} + +label { + font-size: 1rem; + color: #ecf0f1; + margin-bottom: 5px; + display: block; +} + +input[type="file"] { + background-color: #16a085; + color: white; + padding: 10px; + border-radius: 8px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +input[type="file"]:hover { + background-color: #1abc9c; +} + +input[type="text"] { + padding: 10px; + border-radius: 8px; + border: none; + background-color: #fff; + color: #2c3e50; + transition: box-shadow 0.3s ease; + font-size: 1rem; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); + width: 100%; +} + +input[type="text"]:focus { + outline: none; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); +} + +input[type="range"] { + -webkit-appearance: none; + width: 100%; + background-color: transparent; +} + +input[type="range"]::-webkit-slider-runnable-track { + height: 8px; + background: #1abc9c; + border-radius: 10px; +} + +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + width: 18px; + height: 18px; + background: #fff; + border-radius: 50%; + border: 2px solid #1abc9c; + cursor: pointer; + transition: background 0.3s ease; +} + +input[type="range"]::-webkit-slider-thumb:hover { + background: #16a085; +} + +button { + background-color: #e74c3c; + color: white; + padding: 12px 20px; + font-size: 1rem; + border: none; + border-radius: 8px; + cursor: pointer; + transition: background-color 0.3s ease, transform 0.3s ease; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); + width: 100%; +} + +button:hover { + background-color: #c0392b; + transform: translateY(-5px); +} + +button:active { + transform: scale(0.98); +} + +/* Media queries */ +@media (max-width: 768px) { + .meme-section { + flex-direction: column; + align-items: center; + } + + #memeCanvas { + height: 300px; + } + + h1 { + font-size: 1.8rem; + } + + button { + padding: 10px 15px; + } +} + +button.disabled { + background-color: #95a5a6; + cursor: not-allowed; +} + +button.disabled:hover { + background-color: #95a5a6; + transform: none; +} diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Generator/README.md b/src/app/(category)/javascript/(projects)/meme-generator/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Meme-Generator/README.md rename to src/app/(category)/javascript/(projects)/meme-generator/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Generator/favicon.ico b/src/app/(category)/javascript/(projects)/meme-generator/favicon.ico similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Meme-Generator/favicon.ico rename to src/app/(category)/javascript/(projects)/meme-generator/favicon.ico diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Generator/index.html b/src/app/(category)/javascript/(projects)/meme-generator/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Meme-Generator/index.html rename to src/app/(category)/javascript/(projects)/meme-generator/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/meme-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Meme-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/meme-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Generator/script.js b/src/app/(category)/javascript/(projects)/meme-generator/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Meme-Generator/script.js rename to src/app/(category)/javascript/(projects)/meme-generator/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Meme-Generator/style.css b/src/app/(category)/javascript/(projects)/meme-generator/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Meme-Generator/style.css rename to src/app/(category)/javascript/(projects)/meme-generator/style.css diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/README.md b/src/app/(category)/javascript/(projects)/moon-phase-visibility/README.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/README.md rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/README.md diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/first-quarter.png b/src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/first-quarter.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/first-quarter.png rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/first-quarter.png diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/full-moon.png b/src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/full-moon.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/full-moon.png rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/full-moon.png diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/last-quarter.png b/src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/last-quarter.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/last-quarter.png rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/last-quarter.png diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/new-moon.png b/src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/new-moon.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/new-moon.png rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/new-moon.png diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/waning-crescent.png b/src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/waning-crescent.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/waning-crescent.png rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/waning-crescent.png diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/waning-gibbous.png b/src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/waning-gibbous.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/waning-gibbous.png rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/waning-gibbous.png diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/waxing-cresent.png b/src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/waxing-cresent.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/waxing-cresent.png rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/waxing-cresent.png diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/waxing-gibbous.png b/src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/waxing-gibbous.png similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/assets/waxing-gibbous.png rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/assets/waxing-gibbous.png diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/index.html b/src/app/(category)/javascript/(projects)/moon-phase-visibility/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/index.html rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/index.html diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/screenshot.webp b/src/app/(category)/javascript/(projects)/moon-phase-visibility/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/screenshot.webp rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/script.js b/src/app/(category)/javascript/(projects)/moon-phase-visibility/script.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/script.js rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/script.js diff --git a/Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/style.css b/src/app/(category)/javascript/(projects)/moon-phase-visibility/style.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/Moon-Phase-Visibility/style.css rename to src/app/(category)/javascript/(projects)/moon-phase-visibility/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/README.md b/src/app/(category)/javascript/(projects)/morse-code-convertor/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/README.md rename to src/app/(category)/javascript/(projects)/morse-code-convertor/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/index.html b/src/app/(category)/javascript/(projects)/morse-code-convertor/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/index.html rename to src/app/(category)/javascript/(projects)/morse-code-convertor/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/screenshot.webp b/src/app/(category)/javascript/(projects)/morse-code-convertor/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/screenshot.webp rename to src/app/(category)/javascript/(projects)/morse-code-convertor/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/script.js b/src/app/(category)/javascript/(projects)/morse-code-convertor/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/script.js rename to src/app/(category)/javascript/(projects)/morse-code-convertor/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/styles.css b/src/app/(category)/javascript/(projects)/morse-code-convertor/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Morse-Code-Convertor/styles.css rename to src/app/(category)/javascript/(projects)/morse-code-convertor/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Movie-App/README.md b/src/app/(category)/javascript/(projects)/movie-app/README.md similarity index 98% rename from Vanilla-JS-Projects/Intermediate/Movie-App/README.md rename to src/app/(category)/javascript/(projects)/movie-app/README.md index ab5b575c..49b6cbc6 100644 --- a/Vanilla-JS-Projects/Intermediate/Movie-App/README.md +++ b/src/app/(category)/javascript/(projects)/movie-app/README.md @@ -1,89 +1,89 @@ -

💥 MOVIE APP 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - - - - - - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
- -

This is a simple movie app that uses The Movie Database API to fetch data and we can also search for movies and watch the trailer.

-
- - - -## :zap: How to run it? 🕹️ - -1. Clone the repository: - ```sh - git clone https://github.com/yourusername/movie-app.git - ``` -2. Navigate to the project directory: - ```sh - cd movie-app - ``` -3. Open `index.html` in your browser. - - - - - - - -## :zap: Screenshots 📸 -![Screenshot](screenshot.webp) - - - - - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Ananya Gupta

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 MOVIE APP 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + + + + + + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+ +

This is a simple movie app that uses The Movie Database API to fetch data and we can also search for movies and watch the trailer.

+
+ + + +## :zap: How to run it? 🕹️ + +1. Clone the repository: + ```sh + git clone https://github.com/yourusername/movie-app.git + ``` +2. Navigate to the project directory: + ```sh + cd movie-app + ``` +3. Open `index.html` in your browser. + + + + + + + +## :zap: Screenshots 📸 +![Screenshot](screenshot.webp) + + + + + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Ananya Gupta

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Intermediate/Movie-App/api.js b/src/app/(category)/javascript/(projects)/movie-app/api.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Movie-App/api.js rename to src/app/(category)/javascript/(projects)/movie-app/api.js diff --git a/Vanilla-JS-Projects/Intermediate/Movie-App/index.html b/src/app/(category)/javascript/(projects)/movie-app/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Movie-App/index.html rename to src/app/(category)/javascript/(projects)/movie-app/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Movie-App/main.js b/src/app/(category)/javascript/(projects)/movie-app/main.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Movie-App/main.js rename to src/app/(category)/javascript/(projects)/movie-app/main.js diff --git a/Vanilla-JS-Projects/Intermediate/Movie-App/screenshot.webp b/src/app/(category)/javascript/(projects)/movie-app/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Movie-App/screenshot.webp rename to src/app/(category)/javascript/(projects)/movie-app/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Movie-App/style.css b/src/app/(category)/javascript/(projects)/movie-app/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Movie-App/style.css rename to src/app/(category)/javascript/(projects)/movie-app/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Movie-Finder/README.md b/src/app/(category)/javascript/(projects)/movie-finder/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Movie-Finder/README.md rename to src/app/(category)/javascript/(projects)/movie-finder/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Movie-Finder/index.html b/src/app/(category)/javascript/(projects)/movie-finder/index.html similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Movie-Finder/index.html rename to src/app/(category)/javascript/(projects)/movie-finder/index.html index 9110f94b..c24917b4 100644 --- a/Vanilla-JS-Projects/Intermediate/Movie-Finder/index.html +++ b/src/app/(category)/javascript/(projects)/movie-finder/index.html @@ -1,26 +1,26 @@ - - - - - - - Movie Finder - - - - -
-
- -
-
-
-
-
- - - + + + + + + + Movie Finder + + + + +
+
+ +
+
+
+
+
+ + + diff --git a/Vanilla-JS-Projects/Intermediate/Movie-Finder/noimage.png b/src/app/(category)/javascript/(projects)/movie-finder/noimage.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Movie-Finder/noimage.png rename to src/app/(category)/javascript/(projects)/movie-finder/noimage.png diff --git a/Vanilla-JS-Projects/Intermediate/Movie-Finder/screenshot.webp b/src/app/(category)/javascript/(projects)/movie-finder/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Movie-Finder/screenshot.webp rename to src/app/(category)/javascript/(projects)/movie-finder/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Movie-Finder/script.js b/src/app/(category)/javascript/(projects)/movie-finder/script.js similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Movie-Finder/script.js rename to src/app/(category)/javascript/(projects)/movie-finder/script.js index f21adc38..ae8f64b1 100644 --- a/Vanilla-JS-Projects/Intermediate/Movie-Finder/script.js +++ b/src/app/(category)/javascript/(projects)/movie-finder/script.js @@ -1,86 +1,86 @@ -const searchBox = document.getElementById('movie-search-box'); -const searchResults = document.getElementById('search-list'); -const resultsGrid = document.getElementById('result-grid'); - -async function fetchMovies(searchTerm) { - const URL = `https://omdbapi.com/?s=${searchTerm}&page=1&apikey=598947e`; - const response = await fetch(URL); - const data = await response.json(); - if (data.Response === "True") displaySearchResults(data.Search); -} - -function searchMovies() { - let searchTerm = searchBox.value.trim(); - if (searchTerm.length > 0) { - searchResults.classList.remove('hide-search-list'); - fetchMovies(searchTerm); - } else { - searchResults.classList.add('hide-search-list'); - } -} - -function displaySearchResults(movies) { - searchResults.innerHTML = ""; - movies.forEach(movie => { - const resultItem = document.createElement('div'); - resultItem.dataset.id = movie.imdbID; - resultItem.classList.add('search-item'); - - const moviePoster = movie.Poster !== "N/A" ? movie.Poster : "noimage.png"; - - resultItem.innerHTML = ` -
-
- movie poster -
-
-

${movie.Title}

-

${movie.Year}

-
-
- `; - searchResults.appendChild(resultItem); - }); - attachMovieDetailsEvents(); -} - -function attachMovieDetailsEvents() { - const movieItems = searchResults.querySelectorAll('.search-item'); - movieItems.forEach(item => { - item.addEventListener('click', async () => { - searchResults.classList.add('hide-search-list'); - searchBox.value = ""; - const result = await fetch(`http://www.omdbapi.com/?i=${item.dataset.id}&apikey=fc1fef96`); - const movieDetails = await result.json(); - displayMovieDetails(movieDetails); - }); - }); -} - -function displayMovieDetails(details) { - resultsGrid.innerHTML = ` -
- movie poster -
-
-

${details.Title}

-
    -
  • Year: ${details.Year}
  • -
  • Ratings: ${details.Rated}
  • -
  • Released: ${details.Released}
  • -
-

Genre: ${details.Genre}

-

Writer: ${details.Writer}

-

Actors: ${details.Actors}

-

Plot: ${details.Plot}

-

Language: ${details.Language}

-

${details.Awards}

-
- `; -} - -window.addEventListener('click', (event) => { - if(event.target.className != "form-input"){ - searchResults.classList.add('hide-search-list'); - } -}); +const searchBox = document.getElementById('movie-search-box'); +const searchResults = document.getElementById('search-list'); +const resultsGrid = document.getElementById('result-grid'); + +async function fetchMovies(searchTerm) { + const URL = `https://omdbapi.com/?s=${searchTerm}&page=1&apikey=598947e`; + const response = await fetch(URL); + const data = await response.json(); + if (data.Response === "True") displaySearchResults(data.Search); +} + +function searchMovies() { + let searchTerm = searchBox.value.trim(); + if (searchTerm.length > 0) { + searchResults.classList.remove('hide-search-list'); + fetchMovies(searchTerm); + } else { + searchResults.classList.add('hide-search-list'); + } +} + +function displaySearchResults(movies) { + searchResults.innerHTML = ""; + movies.forEach(movie => { + const resultItem = document.createElement('div'); + resultItem.dataset.id = movie.imdbID; + resultItem.classList.add('search-item'); + + const moviePoster = movie.Poster !== "N/A" ? movie.Poster : "noimage.png"; + + resultItem.innerHTML = ` +
+
+ movie poster +
+
+

${movie.Title}

+

${movie.Year}

+
+
+ `; + searchResults.appendChild(resultItem); + }); + attachMovieDetailsEvents(); +} + +function attachMovieDetailsEvents() { + const movieItems = searchResults.querySelectorAll('.search-item'); + movieItems.forEach(item => { + item.addEventListener('click', async () => { + searchResults.classList.add('hide-search-list'); + searchBox.value = ""; + const result = await fetch(`http://www.omdbapi.com/?i=${item.dataset.id}&apikey=fc1fef96`); + const movieDetails = await result.json(); + displayMovieDetails(movieDetails); + }); + }); +} + +function displayMovieDetails(details) { + resultsGrid.innerHTML = ` +
+ movie poster +
+
+

${details.Title}

+
    +
  • Year: ${details.Year}
  • +
  • Ratings: ${details.Rated}
  • +
  • Released: ${details.Released}
  • +
+

Genre: ${details.Genre}

+

Writer: ${details.Writer}

+

Actors: ${details.Actors}

+

Plot: ${details.Plot}

+

Language: ${details.Language}

+

${details.Awards}

+
+ `; +} + +window.addEventListener('click', (event) => { + if(event.target.className != "form-input"){ + searchResults.classList.add('hide-search-list'); + } +}); diff --git a/Vanilla-JS-Projects/Intermediate/Movie-Finder/styles.css b/src/app/(category)/javascript/(projects)/movie-finder/styles.css similarity index 93% rename from Vanilla-JS-Projects/Intermediate/Movie-Finder/styles.css rename to src/app/(category)/javascript/(projects)/movie-finder/styles.css index b1ffff03..9e949ac5 100644 --- a/Vanilla-JS-Projects/Intermediate/Movie-Finder/styles.css +++ b/src/app/(category)/javascript/(projects)/movie-finder/styles.css @@ -1,204 +1,204 @@ -@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap'); - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Inter', sans-serif; -} - -::-webkit-scrollbar { - width: 15px; -} - -::-webkit-scrollbar-thumb { - background-color: #292929; - border-radius: 5px; -} - -a { - text-decoration: none; -} - -img { - width: 100%; - display: block; -} - -.wrapper { - min-height: 100vh; - background-color: #171717; -} - -.search-area { - background-color: #1d1d1d; - height: 180px; - display: flex; - align-items: center; - justify-content: center; -} - -.search-box { - display: flex; - flex-direction: column; - align-items: center; - position: relative; -} - -.search-box h3 { - margin-bottom: 1.5rem; - font-size: 2rem; - color: #fff; - font-weight: 500; -} - -.form-input { - padding: 1rem 2rem; - font-size: 1.4rem; - border: none; - border-radius: 3px; - outline: none; - width: 350px; -} - -.search-results { - position: absolute; - top: 100%; - max-height: 500px; - overflow-y: scroll; - z-index: 10; - right: 0; -} - -.search-item { - background-color: #292929; - padding: 0.5rem; - border-bottom: 1px solid #171717; - color: #fff; - cursor: pointer; - transition: background-color 200ms ease; -} - -.search-item:hover { - background-color: #1f1f1f; -} - -.search-item-content { - display: flex; - align-items: center; -} - -.search-item-thumbnail img { - width: 40px; - margin-right: 1rem; -} - -.search-item-info h3 { - font-weight: 600; - font-size: 1rem; -} - -.search-item-info p { - font-size: 0.8rem; - margin-top: 0.5rem; - font-weight: 600; - opacity: 0.6; -} - -.hide-search-list{ - display: none; -} - -.search-results::-webkit-scrollbar { - width: 8px; -} - -.search-results::-webkit-scrollbar-track { - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); -} - -.search-results::-webkit-scrollbar-thumb { - background-color: #d4aa11; - border-radius: 10px; -} - -.results-area { - padding: 3rem 0; -} - -.movie-poster img { - max-width: 300px; - margin: 0 auto; - border: 4px solid #fff; -} - -.movie-info { - text-align: center; - color: #fff; - padding-top: 3rem; -} - -.movie-title { - font-size: 2rem; - color: #d4aa11; -} - -.movie-details { - list-style: none; - display: flex; - justify-content: center; - align-items: center; - padding: 1rem; -} - -.movie-details .year { - font-weight: 500; -} - -.movie-details .rated { - background-color: #d4aa11; - padding: 0.4rem; - margin: 0 0.4rem; - border-radius: 3px; - font-weight: 600; -} - -.movie-details .released { - font-size: 0.9rem; - opacity: 0.9; -} - -.movie-info .genre { - background-color: #292929; - display: inline-block; - padding: 0.5rem; - border-radius: 3px; -} - -.movie-info .writer { - padding: 0.5rem; - margin: 1rem 0; -} - -.movie-info .plot { - max-width: 400px; - margin: 1rem auto; -} - -.movie-info .language { - color: #d4aa11; - font-style: italic; -} - -.movie-info .awards { - font-weight: 300; - font-size: 0.9rem; -} - -.movie-info .awards i { - color: #d4aa11; - margin: 1rem 0.7rem 0 0; -} +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap'); + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Inter', sans-serif; +} + +::-webkit-scrollbar { + width: 15px; +} + +::-webkit-scrollbar-thumb { + background-color: #292929; + border-radius: 5px; +} + +a { + text-decoration: none; +} + +img { + width: 100%; + display: block; +} + +.wrapper { + min-height: 100vh; + background-color: #171717; +} + +.search-area { + background-color: #1d1d1d; + height: 180px; + display: flex; + align-items: center; + justify-content: center; +} + +.search-box { + display: flex; + flex-direction: column; + align-items: center; + position: relative; +} + +.search-box h3 { + margin-bottom: 1.5rem; + font-size: 2rem; + color: #fff; + font-weight: 500; +} + +.form-input { + padding: 1rem 2rem; + font-size: 1.4rem; + border: none; + border-radius: 3px; + outline: none; + width: 350px; +} + +.search-results { + position: absolute; + top: 100%; + max-height: 500px; + overflow-y: scroll; + z-index: 10; + right: 0; +} + +.search-item { + background-color: #292929; + padding: 0.5rem; + border-bottom: 1px solid #171717; + color: #fff; + cursor: pointer; + transition: background-color 200ms ease; +} + +.search-item:hover { + background-color: #1f1f1f; +} + +.search-item-content { + display: flex; + align-items: center; +} + +.search-item-thumbnail img { + width: 40px; + margin-right: 1rem; +} + +.search-item-info h3 { + font-weight: 600; + font-size: 1rem; +} + +.search-item-info p { + font-size: 0.8rem; + margin-top: 0.5rem; + font-weight: 600; + opacity: 0.6; +} + +.hide-search-list{ + display: none; +} + +.search-results::-webkit-scrollbar { + width: 8px; +} + +.search-results::-webkit-scrollbar-track { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +.search-results::-webkit-scrollbar-thumb { + background-color: #d4aa11; + border-radius: 10px; +} + +.results-area { + padding: 3rem 0; +} + +.movie-poster img { + max-width: 300px; + margin: 0 auto; + border: 4px solid #fff; +} + +.movie-info { + text-align: center; + color: #fff; + padding-top: 3rem; +} + +.movie-title { + font-size: 2rem; + color: #d4aa11; +} + +.movie-details { + list-style: none; + display: flex; + justify-content: center; + align-items: center; + padding: 1rem; +} + +.movie-details .year { + font-weight: 500; +} + +.movie-details .rated { + background-color: #d4aa11; + padding: 0.4rem; + margin: 0 0.4rem; + border-radius: 3px; + font-weight: 600; +} + +.movie-details .released { + font-size: 0.9rem; + opacity: 0.9; +} + +.movie-info .genre { + background-color: #292929; + display: inline-block; + padding: 0.5rem; + border-radius: 3px; +} + +.movie-info .writer { + padding: 0.5rem; + margin: 1rem 0; +} + +.movie-info .plot { + max-width: 400px; + margin: 1rem auto; +} + +.movie-info .language { + color: #d4aa11; + font-style: italic; +} + +.movie-info .awards { + font-weight: 300; + font-size: 0.9rem; +} + +.movie-info .awards i { + color: #d4aa11; + margin: 1rem 0.7rem 0 0; +} diff --git a/Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/README.md b/src/app/(category)/javascript/(projects)/n-queen-visualizer/README.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/README.md rename to src/app/(category)/javascript/(projects)/n-queen-visualizer/README.md diff --git a/Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/chess.js b/src/app/(category)/javascript/(projects)/n-queen-visualizer/chess.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/chess.js rename to src/app/(category)/javascript/(projects)/n-queen-visualizer/chess.js diff --git a/Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/index.css b/src/app/(category)/javascript/(projects)/n-queen-visualizer/index.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/index.css rename to src/app/(category)/javascript/(projects)/n-queen-visualizer/index.css diff --git a/Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/index.html b/src/app/(category)/javascript/(projects)/n-queen-visualizer/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/index.html rename to src/app/(category)/javascript/(projects)/n-queen-visualizer/index.html diff --git a/Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/screenshot.webp b/src/app/(category)/javascript/(projects)/n-queen-visualizer/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/N-Queen-Visualizer/screenshot.webp rename to src/app/(category)/javascript/(projects)/n-queen-visualizer/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/README.md b/src/app/(category)/javascript/(projects)/number-to-words-convertor/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/README.md rename to src/app/(category)/javascript/(projects)/number-to-words-convertor/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/index.html b/src/app/(category)/javascript/(projects)/number-to-words-convertor/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/index.html rename to src/app/(category)/javascript/(projects)/number-to-words-convertor/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/screenshot.webp b/src/app/(category)/javascript/(projects)/number-to-words-convertor/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/screenshot.webp rename to src/app/(category)/javascript/(projects)/number-to-words-convertor/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/script.js b/src/app/(category)/javascript/(projects)/number-to-words-convertor/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/script.js rename to src/app/(category)/javascript/(projects)/number-to-words-convertor/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/style.css b/src/app/(category)/javascript/(projects)/number-to-words-convertor/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Number-To-Words-Convertor/style.css rename to src/app/(category)/javascript/(projects)/number-to-words-convertor/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Paint-App/README.md b/src/app/(category)/javascript/(projects)/paint-app/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Paint-App/README.md rename to src/app/(category)/javascript/(projects)/paint-app/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Paint-App/index.html b/src/app/(category)/javascript/(projects)/paint-app/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Paint-App/index.html rename to src/app/(category)/javascript/(projects)/paint-app/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Paint-App/screenshot.webp b/src/app/(category)/javascript/(projects)/paint-app/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Paint-App/screenshot.webp rename to src/app/(category)/javascript/(projects)/paint-app/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Paint-App/script.js b/src/app/(category)/javascript/(projects)/paint-app/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Paint-App/script.js rename to src/app/(category)/javascript/(projects)/paint-app/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Paint-App/style.css b/src/app/(category)/javascript/(projects)/paint-app/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Paint-App/style.css rename to src/app/(category)/javascript/(projects)/paint-app/style.css diff --git a/Vanilla-JS-Projects/Basic/Palindrome-Checker/images/background.jpg b/src/app/(category)/javascript/(projects)/palindrome-checker/images/background.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Palindrome-Checker/images/background.jpg rename to src/app/(category)/javascript/(projects)/palindrome-checker/images/background.jpg diff --git a/Vanilla-JS-Projects/Basic/Palindrome-Checker/images/cloudbg.avif b/src/app/(category)/javascript/(projects)/palindrome-checker/images/cloudbg.avif similarity index 100% rename from Vanilla-JS-Projects/Basic/Palindrome-Checker/images/cloudbg.avif rename to src/app/(category)/javascript/(projects)/palindrome-checker/images/cloudbg.avif diff --git a/Vanilla-JS-Projects/Basic/Palindrome-Checker/index.html b/src/app/(category)/javascript/(projects)/palindrome-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Palindrome-Checker/index.html rename to src/app/(category)/javascript/(projects)/palindrome-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Palindrome-Checker/readme.md b/src/app/(category)/javascript/(projects)/palindrome-checker/readme.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Palindrome-Checker/readme.md rename to src/app/(category)/javascript/(projects)/palindrome-checker/readme.md diff --git a/Vanilla-JS-Projects/Basic/Palindrome-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/palindrome-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Palindrome-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/palindrome-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Palindrome-Checker/script.js b/src/app/(category)/javascript/(projects)/palindrome-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Palindrome-Checker/script.js rename to src/app/(category)/javascript/(projects)/palindrome-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Palindrome-Checker/styles.css b/src/app/(category)/javascript/(projects)/palindrome-checker/styles.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Palindrome-Checker/styles.css rename to src/app/(category)/javascript/(projects)/palindrome-checker/styles.css diff --git a/Vanilla-JS-Projects/Basic/Pangram-Checker/README.md b/src/app/(category)/javascript/(projects)/pangram-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Pangram-Checker/README.md rename to src/app/(category)/javascript/(projects)/pangram-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Pangram-Checker/index.html b/src/app/(category)/javascript/(projects)/pangram-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Pangram-Checker/index.html rename to src/app/(category)/javascript/(projects)/pangram-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Pangram-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/pangram-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Pangram-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/pangram-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Pangram-Checker/script.js b/src/app/(category)/javascript/(projects)/pangram-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Pangram-Checker/script.js rename to src/app/(category)/javascript/(projects)/pangram-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Pangram-Checker/style.css b/src/app/(category)/javascript/(projects)/pangram-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Pangram-Checker/style.css rename to src/app/(category)/javascript/(projects)/pangram-checker/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Password-Generator/Readme.md b/src/app/(category)/javascript/(projects)/password-generator/Readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Generator/Readme.md rename to src/app/(category)/javascript/(projects)/password-generator/Readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Password-Generator/copy.png b/src/app/(category)/javascript/(projects)/password-generator/copy.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Generator/copy.png rename to src/app/(category)/javascript/(projects)/password-generator/copy.png diff --git a/Vanilla-JS-Projects/Intermediate/Password-Generator/generate.png b/src/app/(category)/javascript/(projects)/password-generator/generate.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Generator/generate.png rename to src/app/(category)/javascript/(projects)/password-generator/generate.png diff --git a/Vanilla-JS-Projects/Intermediate/Password-Generator/index.html b/src/app/(category)/javascript/(projects)/password-generator/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Generator/index.html rename to src/app/(category)/javascript/(projects)/password-generator/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Password-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/password-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/password-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Password-Generator/script.js b/src/app/(category)/javascript/(projects)/password-generator/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Generator/script.js rename to src/app/(category)/javascript/(projects)/password-generator/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Password-Generator/style.css b/src/app/(category)/javascript/(projects)/password-generator/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Generator/style.css rename to src/app/(category)/javascript/(projects)/password-generator/style.css diff --git a/Vanilla-JS-Projects/Basic/Password-Manager/README.md b/src/app/(category)/javascript/(projects)/password-manager/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Password-Manager/README.md rename to src/app/(category)/javascript/(projects)/password-manager/README.md diff --git a/Vanilla-JS-Projects/Basic/Password-Manager/index.html b/src/app/(category)/javascript/(projects)/password-manager/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Password-Manager/index.html rename to src/app/(category)/javascript/(projects)/password-manager/index.html diff --git a/Vanilla-JS-Projects/Basic/Password-Manager/screenshot.webp b/src/app/(category)/javascript/(projects)/password-manager/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Password-Manager/screenshot.webp rename to src/app/(category)/javascript/(projects)/password-manager/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Password-Manager/scripts.js b/src/app/(category)/javascript/(projects)/password-manager/scripts.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Password-Manager/scripts.js rename to src/app/(category)/javascript/(projects)/password-manager/scripts.js diff --git a/Vanilla-JS-Projects/Basic/Password-Manager/styles.css b/src/app/(category)/javascript/(projects)/password-manager/styles.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Password-Manager/styles.css rename to src/app/(category)/javascript/(projects)/password-manager/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/README.md b/src/app/(category)/javascript/(projects)/password-strength-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/README.md rename to src/app/(category)/javascript/(projects)/password-strength-checker/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/index.html b/src/app/(category)/javascript/(projects)/password-strength-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/index.html rename to src/app/(category)/javascript/(projects)/password-strength-checker/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/password-strength-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/password-strength-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/script.js b/src/app/(category)/javascript/(projects)/password-strength-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/script.js rename to src/app/(category)/javascript/(projects)/password-strength-checker/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/style.css b/src/app/(category)/javascript/(projects)/password-strength-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Password-Strength-Checker/style.css rename to src/app/(category)/javascript/(projects)/password-strength-checker/style.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/apple.svg b/src/app/(category)/javascript/(projects)/paytm-clone/assets/apple.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/apple.svg rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/apple.svg diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/bank.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/bank.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/bank.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/bank.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/billing-software.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/billing-software.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/billing-software.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/billing-software.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/book-gas.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/book-gas.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/book-gas.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/book-gas.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/bus.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/bus.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/bus.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/bus.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/business-khata.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/business-khata.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/business-khata.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/business-khata.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/card.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/card.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/card.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/card.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/catalog.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/catalog.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/catalog.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/catalog.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/etf.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/etf.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/etf.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/etf.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/flight.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/flight.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/flight.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/flight.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/gold.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/gold.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/gold.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/gold.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/graph.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/graph.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/graph.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/graph.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/insurance-broking.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/insurance-broking.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/insurance-broking.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/insurance-broking.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/insurance.jpeg b/src/app/(category)/javascript/(projects)/paytm-clone/assets/insurance.jpeg similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/insurance.jpeg rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/insurance.jpeg diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/international.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/international.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/international.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/international.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/invest.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/invest.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/invest.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/invest.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/ipo.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/ipo.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/ipo.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/ipo.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/loan.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/loan.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/loan.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/loan.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/logo.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/logo.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/logo.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/logo.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/money.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/money.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/money.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/money.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/movie.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/movie.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/movie.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/movie.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/mutual-fund.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/mutual-fund.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/mutual-fund.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/mutual-fund.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/online-payments.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/online-payments.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/online-payments.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/online-payments.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/pay-bill.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/pay-bill.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/pay-bill.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/pay-bill.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/pay-credit.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/pay-credit.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/pay-credit.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/pay-credit.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/pay-rent.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/pay-rent.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/pay-rent.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/pay-rent.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-add.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-add.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-add.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-add.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-bank.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-bank.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-bank.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-bank.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-bussiness.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-bussiness.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-bussiness.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-bussiness.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-hdfc.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-hdfc.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-hdfc.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-hdfc.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-money.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-money.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-money.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-money.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-postpaid.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-postpaid.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-postpaid.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-postpaid.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-upi.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-upi.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-upi.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-upi.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-wallet.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-wallet.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm-wallet.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm-wallet.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm_logo.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm_logo.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/paytm_logo.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/paytm_logo.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/personal-loan.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/personal-loan.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/personal-loan.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/personal-loan.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/play.svg b/src/app/(category)/javascript/(projects)/paytm-clone/assets/play.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/play.svg rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/play.svg diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/postpaid.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/postpaid.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/postpaid.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/postpaid.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/recharge-dth.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/recharge-dth.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/recharge-dth.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/recharge-dth.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/recharge.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/recharge.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/recharge.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/recharge.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/right-arrow-blue.svg b/src/app/(category)/javascript/(projects)/paytm-clone/assets/right-arrow-blue.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/right-arrow-blue.svg rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/right-arrow-blue.svg diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/right-arrow.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/right-arrow.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/right-arrow.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/right-arrow.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/right-arrow.svg b/src/app/(category)/javascript/(projects)/paytm-clone/assets/right-arrow.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/right-arrow.svg rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/right-arrow.svg diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/sbi-card.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/sbi-card.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/sbi-card.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/sbi-card.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/sbi.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/sbi.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/sbi.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/sbi.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/scoter.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/scoter.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/scoter.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/scoter.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/services.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/services.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/services.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/services.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/shop-payments.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/shop-payments.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/shop-payments.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/shop-payments.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/stocks.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/stocks.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/stocks.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/stocks.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/train.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/train.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/train.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/train.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/upi.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/upi.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/upi.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/upi.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/user-2.svg b/src/app/(category)/javascript/(projects)/paytm-clone/assets/user-2.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/user-2.svg rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/user-2.svg diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/user-default.svg b/src/app/(category)/javascript/(projects)/paytm-clone/assets/user-default.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/user-default.svg rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/user-default.svg diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/assets/wallet.png b/src/app/(category)/javascript/(projects)/paytm-clone/assets/wallet.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/assets/wallet.png rename to src/app/(category)/javascript/(projects)/paytm-clone/assets/wallet.png diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/common.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/common.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/common.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/common.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/header.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/header.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/header.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/header.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/index.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/index.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/index.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/index.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-1.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-1.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-1.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-1.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-10.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-10.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-10.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-10.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-11.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-11.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-11.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-11.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-12.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-12.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-12.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-12.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-13.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-13.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-13.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-13.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-14.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-14.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-14.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-14.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-2.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-2.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-2.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-2.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-3.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-3.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-3.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-3.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-4.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-4.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-4.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-4.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-5.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-5.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-5.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-5.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-6.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-6.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-6.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-6.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-7.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-7.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-7.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-7.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-8.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-8.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-8.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-8.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-9.css b/src/app/(category)/javascript/(projects)/paytm-clone/css/section-9.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/css/section-9.css rename to src/app/(category)/javascript/(projects)/paytm-clone/css/section-9.css diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/index.html b/src/app/(category)/javascript/(projects)/paytm-clone/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/index.html rename to src/app/(category)/javascript/(projects)/paytm-clone/index.html diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/js/script.js b/src/app/(category)/javascript/(projects)/paytm-clone/js/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/js/script.js rename to src/app/(category)/javascript/(projects)/paytm-clone/js/script.js diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/readme.md b/src/app/(category)/javascript/(projects)/paytm-clone/readme.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/readme.md rename to src/app/(category)/javascript/(projects)/paytm-clone/readme.md diff --git a/Vanilla-JS-Projects/Basic/Paytm-Clone/screenshot.webp b/src/app/(category)/javascript/(projects)/paytm-clone/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Paytm-Clone/screenshot.webp rename to src/app/(category)/javascript/(projects)/paytm-clone/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Perfect-Number-Checker/README.md b/src/app/(category)/javascript/(projects)/perfect-number-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Perfect-Number-Checker/README.md rename to src/app/(category)/javascript/(projects)/perfect-number-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Perfect-Number-Checker/index.html b/src/app/(category)/javascript/(projects)/perfect-number-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Perfect-Number-Checker/index.html rename to src/app/(category)/javascript/(projects)/perfect-number-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Perfect-Number-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/perfect-number-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Perfect-Number-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/perfect-number-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Perfect-Number-Checker/script.js b/src/app/(category)/javascript/(projects)/perfect-number-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Perfect-Number-Checker/script.js rename to src/app/(category)/javascript/(projects)/perfect-number-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Perfect-Number-Checker/style.css b/src/app/(category)/javascript/(projects)/perfect-number-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Perfect-Number-Checker/style.css rename to src/app/(category)/javascript/(projects)/perfect-number-checker/style.css diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/README.md b/src/app/(category)/javascript/(projects)/personal-portfolio/README.md similarity index 98% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/README.md rename to src/app/(category)/javascript/(projects)/personal-portfolio/README.md index 5d97c73a..bdaa0b69 100644 --- a/Vanilla-JS-Projects/Basic/Personal-Portfolio/README.md +++ b/src/app/(category)/javascript/(projects)/personal-portfolio/README.md @@ -1,116 +1,116 @@ -

💥 Personal-Portfolio 💥

- - - -

Tech Stack Used 🎮

-
    -
  • HTML: Structure and content of the web pages.
  • -
  • CSS: Styling and layout of the web pages.
  • -
  • Vanilla JavaScript: Interactive functionalities and DOM manipulation.
  • -
- -
- - - - - - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
-

Welcome to my Personal Portfolio! This project showcases a beautifully designed and fully responsive portfolio template that anyone can utilize to display their work, skills, and experiences. Built with clean HTML, CSS, and Vanilla JavaScript, this portfolio provides a solid foundation for individuals looking to present themselves professionally online. -

    -
  • Responsive Design: The layout automatically adjusts to different screen sizes, ensuring a seamless experience on desktops, tablets, and smartphones. This makes it easy for users to navigate through the portfolio regardless of their device.
  • -
  • Aesthetic Styling: The portfolio is styled with a modern and elegant aesthetic, utilizing gradients, animations, and hover effects to create an engaging user experience. Users can easily customize colors, fonts, and styles to match their personal brand.
  • -
  • Customizable Content: Users can easily edit the text content throughout the portfolio to reflect their personal information, experiences, and skills. This project is designed to be user-friendly, allowing individuals to make adjustments without needing extensive coding knowledge.
  • -
  • Hyperlinks and Demos: The project includes sample hyperlinks to various sections such as "Projects," and "Social media". Users can replace these links with their own projects, social media profiles, or any other relevant websites. This flexibility allows each user to tailor the portfolio to their unique journey.
  • -

-
- - - - -## :zap: How to run it? 🕹️ - -

How to Run the Project

-
    -
  1. - Fork the Repository: Click the "Fork" button at the top right of this page to create a copy of this repository in your GitHub account. -
  2. -
  3. - Clone the Repository: Open your terminal or command prompt and run the following command to clone your forked repository: -
    git clone https://github.com/your-username/your-repo-name.git
    -

    Replace your-username with your GitHub username and your-repo-name with the name of the forked repository.

    -
  4. -
  5. - Open in an IDE: Open your favorite Integrated Development Environment (IDE) such as Visual Studio Code, Atom, or any other IDE of your choice. -
  6. -
  7. - Open with Live Server: In your IDE, navigate to the cloned project folder. Right-click on the index.html file and select Open with Live Server to view your portfolio in the browser. -
  8. -
- - - - - - -## :zap: Screenshots 📸 -
- Portfolio Screenshot 1 -
-
- Portfolio Screenshot 2 - Portfolio Screenshot 3 -
-
- Portfolio Screenshot 4 -
- - - -## :zap: Working Video 📹 -https://github.com/user-attachments/assets/cd85b1fc-2664-4c62-812f-3fc427a7027f - - - - - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Jomana Tantawy 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 Personal-Portfolio 💥

+ + + +

Tech Stack Used 🎮

+
    +
  • HTML: Structure and content of the web pages.
  • +
  • CSS: Styling and layout of the web pages.
  • +
  • Vanilla JavaScript: Interactive functionalities and DOM manipulation.
  • +
+ +
+ + + + + + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+

Welcome to my Personal Portfolio! This project showcases a beautifully designed and fully responsive portfolio template that anyone can utilize to display their work, skills, and experiences. Built with clean HTML, CSS, and Vanilla JavaScript, this portfolio provides a solid foundation for individuals looking to present themselves professionally online. +

    +
  • Responsive Design: The layout automatically adjusts to different screen sizes, ensuring a seamless experience on desktops, tablets, and smartphones. This makes it easy for users to navigate through the portfolio regardless of their device.
  • +
  • Aesthetic Styling: The portfolio is styled with a modern and elegant aesthetic, utilizing gradients, animations, and hover effects to create an engaging user experience. Users can easily customize colors, fonts, and styles to match their personal brand.
  • +
  • Customizable Content: Users can easily edit the text content throughout the portfolio to reflect their personal information, experiences, and skills. This project is designed to be user-friendly, allowing individuals to make adjustments without needing extensive coding knowledge.
  • +
  • Hyperlinks and Demos: The project includes sample hyperlinks to various sections such as "Projects," and "Social media". Users can replace these links with their own projects, social media profiles, or any other relevant websites. This flexibility allows each user to tailor the portfolio to their unique journey.
  • +

+
+ + + + +## :zap: How to run it? 🕹️ + +

How to Run the Project

+
    +
  1. + Fork the Repository: Click the "Fork" button at the top right of this page to create a copy of this repository in your GitHub account. +
  2. +
  3. + Clone the Repository: Open your terminal or command prompt and run the following command to clone your forked repository: +
    git clone https://github.com/your-username/your-repo-name.git
    +

    Replace your-username with your GitHub username and your-repo-name with the name of the forked repository.

    +
  4. +
  5. + Open in an IDE: Open your favorite Integrated Development Environment (IDE) such as Visual Studio Code, Atom, or any other IDE of your choice. +
  6. +
  7. + Open with Live Server: In your IDE, navigate to the cloned project folder. Right-click on the index.html file and select Open with Live Server to view your portfolio in the browser. +
  8. +
+ + + + + + +## :zap: Screenshots 📸 +
+ Portfolio Screenshot 1 +
+
+ Portfolio Screenshot 2 + Portfolio Screenshot 3 +
+
+ Portfolio Screenshot 4 +
+ + + +## :zap: Working Video 📹 +https://github.com/user-attachments/assets/cd85b1fc-2664-4c62-812f-3fc427a7027f + + + + + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Jomana Tantawy 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/index.html b/src/app/(category)/javascript/(projects)/personal-portfolio/index.html similarity index 97% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/index.html rename to src/app/(category)/javascript/(projects)/personal-portfolio/index.html index 2302868d..f83903c6 100644 --- a/Vanilla-JS-Projects/Basic/Personal-Portfolio/index.html +++ b/src/app/(category)/javascript/(projects)/personal-portfolio/index.html @@ -1,149 +1,149 @@ - - - - - - Protolio - - - - -
- - - -
-
-
-

Hi, It's Jomana Tantawy

-

I'm a Computer Science and Engineering undergraduate in GUC

-

I am a Computer Science and Engineering student at The German University in Cairo, focused on software development and programming. I have a strong background in Java, Python, SQL, and various frameworks. I enjoy creating innovative solutions and have experience building dynamic applications and contributing to open-source projects. I love taking on challenges and want to use my skills to create software that makes a difference.

- - -
-
- Personal Image -
-
- -
-
- -
-
-

About Me

-

I’m currently a 5th-semester Computer Science and Engineering student at The German University in Cairo, with a deep passion for problem-solving and innovative software development. Over the past few years, I've honed my skills in Java, Python, and SQL, among other languages and frameworks, through various projects and coursework. - - I’ve built dynamic applications, contributed to open-source projects, and explored different areas of software engineering, such as mobile app development, game design, and system simulations. These experiences have not only strengthened my technical skills but also fueled my curiosity and passion for creating impactful software. - - Beyond coding, I enjoy collaborating with others, learning new technologies, and taking on challenges that push me to grow as a developer. My goal is to continue expanding my knowledge and contribute to projects that bring real-world solutions to everyday problems. -

- - Read More - -
-
- -
-

Projects

-
-
- -

Project 1

-

Project 1 description

- -
View repository
-
-
-
- -

Project 2

-

Project 2 description

- -
View repository
-
-
-
- -

Project 3

-

Project 3 description

- -
View repository
-
-
-
-
- -
-

Contact me

-
-
-
- - - - -
-
- - -
-
-
-
- - - - + + + + + + Protolio + + + + +
+ + + +
+
+
+

Hi, It's Jomana Tantawy

+

I'm a Computer Science and Engineering undergraduate in GUC

+

I am a Computer Science and Engineering student at The German University in Cairo, focused on software development and programming. I have a strong background in Java, Python, SQL, and various frameworks. I enjoy creating innovative solutions and have experience building dynamic applications and contributing to open-source projects. I love taking on challenges and want to use my skills to create software that makes a difference.

+ + +
+
+ Personal Image +
+
+ +
+
+ +
+
+

About Me

+

I’m currently a 5th-semester Computer Science and Engineering student at The German University in Cairo, with a deep passion for problem-solving and innovative software development. Over the past few years, I've honed my skills in Java, Python, and SQL, among other languages and frameworks, through various projects and coursework. + + I’ve built dynamic applications, contributed to open-source projects, and explored different areas of software engineering, such as mobile app development, game design, and system simulations. These experiences have not only strengthened my technical skills but also fueled my curiosity and passion for creating impactful software. + + Beyond coding, I enjoy collaborating with others, learning new technologies, and taking on challenges that push me to grow as a developer. My goal is to continue expanding my knowledge and contribute to projects that bring real-world solutions to everyday problems. +

+ + Read More + +
+
+ +
+

Projects

+
+
+ +

Project 1

+

Project 1 description

+ +
View repository
+
+
+
+ +

Project 2

+

Project 2 description

+ +
View repository
+
+
+
+ +

Project 3

+

Project 3 description

+ +
View repository
+
+
+
+
+ +
+

Contact me

+
+
+
+ + + + +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/picture.jpg b/src/app/(category)/javascript/(projects)/personal-portfolio/picture.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/picture.jpg rename to src/app/(category)/javascript/(projects)/personal-portfolio/picture.jpg diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/project1.png b/src/app/(category)/javascript/(projects)/personal-portfolio/project1.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/project1.png rename to src/app/(category)/javascript/(projects)/personal-portfolio/project1.png diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/project2.avif b/src/app/(category)/javascript/(projects)/personal-portfolio/project2.avif similarity index 100% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/project2.avif rename to src/app/(category)/javascript/(projects)/personal-portfolio/project2.avif diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/project3.jpg b/src/app/(category)/javascript/(projects)/personal-portfolio/project3.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/project3.jpg rename to src/app/(category)/javascript/(projects)/personal-portfolio/project3.jpg diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/screenshot.webp b/src/app/(category)/javascript/(projects)/personal-portfolio/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/screenshot.webp rename to src/app/(category)/javascript/(projects)/personal-portfolio/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/script.js b/src/app/(category)/javascript/(projects)/personal-portfolio/script.js similarity index 96% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/script.js rename to src/app/(category)/javascript/(projects)/personal-portfolio/script.js index c587021c..dc9d9b0d 100644 --- a/Vanilla-JS-Projects/Basic/Personal-Portfolio/script.js +++ b/src/app/(category)/javascript/(projects)/personal-portfolio/script.js @@ -1,16 +1,16 @@ -const menuIcon = document.querySelector('#menu-icon'); -const navbar = document.querySelector('.navbar'); - -menuIcon.onclick = () =>{ - menuIcon.classList.toggle('bx-x'); - navbar.classList.toggle('active'); -} - -function showMore() { - var moreContent = document.getElementById("more-content"); - if (moreContent.style.display === "none") { - moreContent.style.display = "block"; - } else { - moreContent.style.display = "none"; - } -} +const menuIcon = document.querySelector('#menu-icon'); +const navbar = document.querySelector('.navbar'); + +menuIcon.onclick = () =>{ + menuIcon.classList.toggle('bx-x'); + navbar.classList.toggle('active'); +} + +function showMore() { + var moreContent = document.getElementById("more-content"); + if (moreContent.style.display === "none") { + moreContent.style.display = "block"; + } else { + moreContent.style.display = "none"; + } +} diff --git a/Vanilla-JS-Projects/Basic/Personal-Portfolio/style.css b/src/app/(category)/javascript/(projects)/personal-portfolio/style.css similarity index 94% rename from Vanilla-JS-Projects/Basic/Personal-Portfolio/style.css rename to src/app/(category)/javascript/(projects)/personal-portfolio/style.css index 000614cd..08bb7060 100644 --- a/Vanilla-JS-Projects/Basic/Personal-Portfolio/style.css +++ b/src/app/(category)/javascript/(projects)/personal-portfolio/style.css @@ -1,407 +1,407 @@ -html{ - scroll-behavior: smooth; - -} -body { - overflow-x: hidden; - margin: 0; - height:100%; - background-color:black; - font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; - font-weight: bold; - -} - -.header { - position: fixed; - top: 0; - left:0; - width: 100%; - z-index: 1000; - display: flex; - align-items: center; - justify-content: center; - padding: 20px 5%; - background: rgb(0, 0, 0); - -} - -.logo { - position: absolute; - left: 5%; - top: 15px; - color: rgb(255, 255, 255); - font-size: 40px; - font-weight: bold; - font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; - text-decoration: none; - cursor: pointer; - transition: 0.3s ease; -} - -.logo:hover{ - transform: scale(1.1); -} -#menu-icon{ - position: absolute; - top: 10px; - right: 12%; - font-size:3.5rem; - color:rgb(188, 4, 4); - display: none; - -} -span{ - color: rgb(203, 0, 0); -} - -.navbar { - display: flex; - gap: 4rem; -} - -::-webkit-scrollbar{ - width: 10px; - border-radius: 50%; -} -::-webkit-scrollbar-thumb{ - background-color: #d71c32; - border-radius: 20px; -} -::-webkit-scrollbar-track{ - background-color:black; -} -.navbar a { - color: rgb(255, 255, 255); - text-decoration: none; - font-size: 22px; - font-weight: 500; - font-weight: bold; - font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; -} - -.navbar a:hover { - color: #d71c32; - border-bottom: 2px solid #d71c32; -} - -section{ - min-height: 90vh; - padding: 4rem 10% -} -.home{ - padding-top: 10rem; - display: flex; - align-items: center; - justify-content: center; - gap:8rem; -} -.home-content{ - display: flex; - flex-direction: column; - align-items: flex-end; - text-align: left; - margin-top: -10rem; -} - -.home-content h1{ - font-size: 32px; - color: white; - margin-top: 1.5rem; - line-height:1; -} - -.home-content h3{ - font-size:25px; - margin: 1rem 0; - color: white; -} -.home-content p { - font-size: 15px; - color: white; - line-height: 1.6; -} - -.home img{ - width: 30vw; - border-radius: 50%; - box-shadow: 0 0 30px red; - transition: 0.5 ease-in-out; - margin-top: -15rem; -} -.home img:hover{ - box-shadow: 0 0 40px rgb(130, 5, 5), - 0 20px 60px rgb(130, 5, 5), - 20px 0 100px rgb(130, 5, 5); -} - -.social-icons a{ - display: inline-flex; - color: #ffffff; - justify-content: center; - margin: 3rem 0.5rem; - align-items: center; - font-size: 20px; - padding: 13px; - background: transparent; - border: 2px solid rgb(130, 5, 5); - border-radius: 50%; - transition: 0.3s ease; - text-decoration: none; -} - -.social-icons a:hover{ - color: red; - transform: scale(1.1)translateY(-3px); - box-shadow: 0 0 30px rgb(130, 5, 5); -} - -.buttons{ - display: flex; - gap: 1.5rem; - justify-content: center; - width: 100%; -} - -.button{ - display: inline-block; - background: black ; - box-shadow: 0 0 10px rgb(188, 4, 4); - border-radius: 4rem; - padding: 0.5rem 2rem; - font-size: 18px; - color: white; - border: 2px solid rgb(167, 1, 21); - transition: 0.3s ease; - text-decoration: none; -} - -.button:hover{ - transform: scale(1.03); - background:#2e0005; - box-shadow: 0 0 30px rgb(130, 5, 5); -} - -.about{ - color:white; - display: flex; - justify-content: flex-start; - gap: 10rem 5%; - align-items: center; - background-color:rgb(24, 0, 0); -} - -.about-image img{ - width: 25vw; - border-radius: 50%; - box-shadow: 0 0 25px rgb(130, 5, 5); - transition: 0.3 ease-in-out; -} -.about-image img:hover{ - box-shadow: -10px 0 30px rgb(130, 5, 5), - -15px 0 35px rgb(130, 5, 5), - -20px 0 40px rgb(130, 5, 5); -} - -.about-content h2{ - font-size: 32px; - text-align: left; -} -.about-content p{ - font-size: 15px; - color: white; - line-height: 1.4; -} - -.about-content button{ - margin: 3rem 0; -} - -.projects{ - background-color:rgb(0, 0, 0); -} - -.projects-box{ - display: grid; - grid-template-rows: repeat(auto-fit,minmax(200,1fr)); - place-items:center; - gap: 3rem; - row-gap: 5rem -} -.card{ - display: flex; - flex-direction: column; - align-items: center; - background-color: black; - border: 2px solid rgb(130, 5, 5); - border-radius: 4rem; - gap: 1rem; - padding: 3rem 2rem; - overflow: hidden; -} -.projects p{ - color: white; - font-size: 15px; - text-align: center; -} -.projects img{ - width: 100%; - max-width: 1000px; - height: auto; - -} -.projects h2{ - color: white; - font-size: 32px; - width: 100%; - text-align: center; - padding-block: 30px; -} -.projects h3{ - color: white; - font-size: 25px; -} - -.projects p{ - font-size: 18px; -} - -.contact{ - background-color:rgb(24, 0, 0); - margin-bottom: -50px; -} -.contact h2{ - text-align: center; - margin-bottom: 2rem; - color: white; - font-size: 32px; -} -.contact form{ - - display: flex; - gap:1rem; - margin:2rem 0; - text-align: center; - align-items: center; - justify-content: center; -} -.contact form button{ - width: auto; -} -.contact form .input-box input, -.contact form textarea { - font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; - width: 50%; - padding: 1rem; - font-size: 18px; - color: rgb(255, 255, 255); - background-color: rgb(24, 0, 0); - border-radius: 2rem; - border: 2px solid rgb(130, 5, 5); - margin: 1rem 0; - resize: none; -} - -.footer{ - background-color: black; - padding: 50px 0; - margin-top: auto; -} - -.footer .social-icons{ - text-align: center; -} -.footer ul{ - - text-align: center; - font-size: 20px; - margin-left: -40px; -} -.footer ul li{ - display: inline-block; - margin-left: 10px; - -} -.footer ul li a{ - border-bottom: 2px solid transparent; - transition: 0.3s ease-in-out; - text-decoration: none; - color: white; -} - -.footer ul li a:hover{ - border-bottom: 2px solid #d71c32; -} - -.footer .copyright{ - text-align: center; - margin-top:4px; - font-size: 10px; - color: #a7a7a7; - font-family:'Times New Roman', Times, serif; - font-weight: 200; -} - -@media(max-width:1024px){ - #menu-icon{ - display: block; - } - .header{ - height: 20px - } - .navbar{ - border-bottom: 2px solid rgb(130, 5, 5); - border-bottom-left-radius: 2rem; - position: absolute; - top:100%; - right:0; - width:50%; - padding: 1rem 1rem; - background-color: rgb(130, 5, 5); - border-left: 2px solid rgb(130, 5, 5); - display: none; - } - .navbar a{ - display: block; - font-size: 1.5rem; - margin: 3rem 0; - color: white; - - } - .navbar a:hover{ - border-bottom: transparent; - } - .navbar.active{ - display: block; - } - .home{ - flex-direction: column-reverse; - margin: 14rem 0; - gap: 10rem; - } - .home-content{ - align-items: center; - text-align: center; - } - .home img{ - width: 50vw; - } - .about{ - flex-direction: column-reverse; - text-align: center; - } - .about h2{ - text-align: center; - margin: 2rem 0; - - } - .about img{ - width:52vw; - } - .projects{ - - } - .contact form{ - flex-direction: column; - } +html{ + scroll-behavior: smooth; + +} +body { + overflow-x: hidden; + margin: 0; + height:100%; + background-color:black; + font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; + font-weight: bold; + +} + +.header { + position: fixed; + top: 0; + left:0; + width: 100%; + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; + padding: 20px 5%; + background: rgb(0, 0, 0); + +} + +.logo { + position: absolute; + left: 5%; + top: 15px; + color: rgb(255, 255, 255); + font-size: 40px; + font-weight: bold; + font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; + text-decoration: none; + cursor: pointer; + transition: 0.3s ease; +} + +.logo:hover{ + transform: scale(1.1); +} +#menu-icon{ + position: absolute; + top: 10px; + right: 12%; + font-size:3.5rem; + color:rgb(188, 4, 4); + display: none; + +} +span{ + color: rgb(203, 0, 0); +} + +.navbar { + display: flex; + gap: 4rem; +} + +::-webkit-scrollbar{ + width: 10px; + border-radius: 50%; +} +::-webkit-scrollbar-thumb{ + background-color: #d71c32; + border-radius: 20px; +} +::-webkit-scrollbar-track{ + background-color:black; +} +.navbar a { + color: rgb(255, 255, 255); + text-decoration: none; + font-size: 22px; + font-weight: 500; + font-weight: bold; + font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; +} + +.navbar a:hover { + color: #d71c32; + border-bottom: 2px solid #d71c32; +} + +section{ + min-height: 90vh; + padding: 4rem 10% +} +.home{ + padding-top: 10rem; + display: flex; + align-items: center; + justify-content: center; + gap:8rem; +} +.home-content{ + display: flex; + flex-direction: column; + align-items: flex-end; + text-align: left; + margin-top: -10rem; +} + +.home-content h1{ + font-size: 32px; + color: white; + margin-top: 1.5rem; + line-height:1; +} + +.home-content h3{ + font-size:25px; + margin: 1rem 0; + color: white; +} +.home-content p { + font-size: 15px; + color: white; + line-height: 1.6; +} + +.home img{ + width: 30vw; + border-radius: 50%; + box-shadow: 0 0 30px red; + transition: 0.5 ease-in-out; + margin-top: -15rem; +} +.home img:hover{ + box-shadow: 0 0 40px rgb(130, 5, 5), + 0 20px 60px rgb(130, 5, 5), + 20px 0 100px rgb(130, 5, 5); +} + +.social-icons a{ + display: inline-flex; + color: #ffffff; + justify-content: center; + margin: 3rem 0.5rem; + align-items: center; + font-size: 20px; + padding: 13px; + background: transparent; + border: 2px solid rgb(130, 5, 5); + border-radius: 50%; + transition: 0.3s ease; + text-decoration: none; +} + +.social-icons a:hover{ + color: red; + transform: scale(1.1)translateY(-3px); + box-shadow: 0 0 30px rgb(130, 5, 5); +} + +.buttons{ + display: flex; + gap: 1.5rem; + justify-content: center; + width: 100%; +} + +.button{ + display: inline-block; + background: black ; + box-shadow: 0 0 10px rgb(188, 4, 4); + border-radius: 4rem; + padding: 0.5rem 2rem; + font-size: 18px; + color: white; + border: 2px solid rgb(167, 1, 21); + transition: 0.3s ease; + text-decoration: none; +} + +.button:hover{ + transform: scale(1.03); + background:#2e0005; + box-shadow: 0 0 30px rgb(130, 5, 5); +} + +.about{ + color:white; + display: flex; + justify-content: flex-start; + gap: 10rem 5%; + align-items: center; + background-color:rgb(24, 0, 0); +} + +.about-image img{ + width: 25vw; + border-radius: 50%; + box-shadow: 0 0 25px rgb(130, 5, 5); + transition: 0.3 ease-in-out; +} +.about-image img:hover{ + box-shadow: -10px 0 30px rgb(130, 5, 5), + -15px 0 35px rgb(130, 5, 5), + -20px 0 40px rgb(130, 5, 5); +} + +.about-content h2{ + font-size: 32px; + text-align: left; +} +.about-content p{ + font-size: 15px; + color: white; + line-height: 1.4; +} + +.about-content button{ + margin: 3rem 0; +} + +.projects{ + background-color:rgb(0, 0, 0); +} + +.projects-box{ + display: grid; + grid-template-rows: repeat(auto-fit,minmax(200,1fr)); + place-items:center; + gap: 3rem; + row-gap: 5rem +} +.card{ + display: flex; + flex-direction: column; + align-items: center; + background-color: black; + border: 2px solid rgb(130, 5, 5); + border-radius: 4rem; + gap: 1rem; + padding: 3rem 2rem; + overflow: hidden; +} +.projects p{ + color: white; + font-size: 15px; + text-align: center; +} +.projects img{ + width: 100%; + max-width: 1000px; + height: auto; + +} +.projects h2{ + color: white; + font-size: 32px; + width: 100%; + text-align: center; + padding-block: 30px; +} +.projects h3{ + color: white; + font-size: 25px; +} + +.projects p{ + font-size: 18px; +} + +.contact{ + background-color:rgb(24, 0, 0); + margin-bottom: -50px; +} +.contact h2{ + text-align: center; + margin-bottom: 2rem; + color: white; + font-size: 32px; +} +.contact form{ + + display: flex; + gap:1rem; + margin:2rem 0; + text-align: center; + align-items: center; + justify-content: center; +} +.contact form button{ + width: auto; +} +.contact form .input-box input, +.contact form textarea { + font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; + width: 50%; + padding: 1rem; + font-size: 18px; + color: rgb(255, 255, 255); + background-color: rgb(24, 0, 0); + border-radius: 2rem; + border: 2px solid rgb(130, 5, 5); + margin: 1rem 0; + resize: none; +} + +.footer{ + background-color: black; + padding: 50px 0; + margin-top: auto; +} + +.footer .social-icons{ + text-align: center; +} +.footer ul{ + + text-align: center; + font-size: 20px; + margin-left: -40px; +} +.footer ul li{ + display: inline-block; + margin-left: 10px; + +} +.footer ul li a{ + border-bottom: 2px solid transparent; + transition: 0.3s ease-in-out; + text-decoration: none; + color: white; +} + +.footer ul li a:hover{ + border-bottom: 2px solid #d71c32; +} + +.footer .copyright{ + text-align: center; + margin-top:4px; + font-size: 10px; + color: #a7a7a7; + font-family:'Times New Roman', Times, serif; + font-weight: 200; +} + +@media(max-width:1024px){ + #menu-icon{ + display: block; + } + .header{ + height: 20px + } + .navbar{ + border-bottom: 2px solid rgb(130, 5, 5); + border-bottom-left-radius: 2rem; + position: absolute; + top:100%; + right:0; + width:50%; + padding: 1rem 1rem; + background-color: rgb(130, 5, 5); + border-left: 2px solid rgb(130, 5, 5); + display: none; + } + .navbar a{ + display: block; + font-size: 1.5rem; + margin: 3rem 0; + color: white; + + } + .navbar a:hover{ + border-bottom: transparent; + } + .navbar.active{ + display: block; + } + .home{ + flex-direction: column-reverse; + margin: 14rem 0; + gap: 10rem; + } + .home-content{ + align-items: center; + text-align: center; + } + .home img{ + width: 50vw; + } + .about{ + flex-direction: column-reverse; + text-align: center; + } + .about h2{ + text-align: center; + margin: 2rem 0; + + } + .about img{ + width:52vw; + } + .projects{ + + } + .contact form{ + flex-direction: column; + } } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Prime-Number-Checker/README.md b/src/app/(category)/javascript/(projects)/prime-number-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Prime-Number-Checker/README.md rename to src/app/(category)/javascript/(projects)/prime-number-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Prime-Number-Checker/index.html b/src/app/(category)/javascript/(projects)/prime-number-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Prime-Number-Checker/index.html rename to src/app/(category)/javascript/(projects)/prime-number-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Prime-Number-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/prime-number-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Prime-Number-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/prime-number-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Prime-Number-Checker/script.js b/src/app/(category)/javascript/(projects)/prime-number-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Prime-Number-Checker/script.js rename to src/app/(category)/javascript/(projects)/prime-number-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Prime-Number-Checker/style.css b/src/app/(category)/javascript/(projects)/prime-number-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Prime-Number-Checker/style.css rename to src/app/(category)/javascript/(projects)/prime-number-checker/style.css diff --git a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/README.MD b/src/app/(category)/javascript/(projects)/qr-code-generator/README.MD similarity index 98% rename from Vanilla-JS-Projects/Basic/Qr-Code-Generator/README.MD rename to src/app/(category)/javascript/(projects)/qr-code-generator/README.MD index 7a17d934..9ab6dd08 100644 --- a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/README.MD +++ b/src/app/(category)/javascript/(projects)/qr-code-generator/README.MD @@ -1,72 +1,72 @@ -

💥 QR Code Generator 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
- -

An QR code generator is a tool that converts text, URLs, or other data into a scannable QR code, enabling easy sharing of information.

-
- - - - -## :zap: How to run it? 🕹️ - - - -- Clone this repository. -- Navigate to this project directory -- Run the `index.html` file. - - - -## :zap: Screenshots 📸 - -![img](./screenshot.webp) - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Ananya Gupta 👦

-

- - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 QR Code Generator 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+ +

An QR code generator is a tool that converts text, URLs, or other data into a scannable QR code, enabling easy sharing of information.

+
+ + + + +## :zap: How to run it? 🕹️ + + + +- Clone this repository. +- Navigate to this project directory +- Run the `index.html` file. + + + +## :zap: Screenshots 📸 + +![img](./screenshot.webp) + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Ananya Gupta 👦

+

+ + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/index.html b/src/app/(category)/javascript/(projects)/qr-code-generator/index.html similarity index 95% rename from Vanilla-JS-Projects/Basic/Qr-Code-Generator/index.html rename to src/app/(category)/javascript/(projects)/qr-code-generator/index.html index 8fafd1b6..a8934e07 100644 --- a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/index.html +++ b/src/app/(category)/javascript/(projects)/qr-code-generator/index.html @@ -1,29 +1,29 @@ - - - - - - - - - - -
-
-

- QR Code Generator -

-
-
-
- -
-
- - - - + + + + + + + + + + +
+
+

+ QR Code Generator +

+
+
+
+ +
+
+ + + + diff --git a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/qr-code-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Qr-Code-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/qr-code-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/script.js b/src/app/(category)/javascript/(projects)/qr-code-generator/script.js similarity index 95% rename from Vanilla-JS-Projects/Basic/Qr-Code-Generator/script.js rename to src/app/(category)/javascript/(projects)/qr-code-generator/script.js index b53f6396..1dd78351 100644 --- a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/script.js +++ b/src/app/(category)/javascript/(projects)/qr-code-generator/script.js @@ -1,19 +1,19 @@ -let qrcode = new QRCode( - document.querySelector(".qrcode") -); -qrcode.makeCode("Why did you scan me?"); -function generateQr() { - if ( - document.querySelector("input") - .value === "" || - document.querySelector("input") - .value === " ") { - alert( - "Input Field Can not be blank!" - );} - else { - qrcode.makeCode( - document.querySelector( - "input" - ).value); +let qrcode = new QRCode( + document.querySelector(".qrcode") +); +qrcode.makeCode("Why did you scan me?"); +function generateQr() { + if ( + document.querySelector("input") + .value === "" || + document.querySelector("input") + .value === " ") { + alert( + "Input Field Can not be blank!" + );} + else { + qrcode.makeCode( + document.querySelector( + "input" + ).value); }} \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/style.css b/src/app/(category)/javascript/(projects)/qr-code-generator/style.css similarity index 94% rename from Vanilla-JS-Projects/Basic/Qr-Code-Generator/style.css rename to src/app/(category)/javascript/(projects)/qr-code-generator/style.css index fb7948ec..ff3b6a36 100644 --- a/Vanilla-JS-Projects/Basic/Qr-Code-Generator/style.css +++ b/src/app/(category)/javascript/(projects)/qr-code-generator/style.css @@ -1,56 +1,56 @@ -body { - font-family: "Ubuntu", sans-serif; - background-color: #f0f0f0; - margin: 0; - padding: 0; - display: flex; - justify-content: center; - align-items: center; - height: 100vh; -} -.container { - background-color: #fff; - box-shadow: 0px 0px 10px - rgba(0, 0, 0, 0.1); - border-radius: 5px; - padding: 20px; - text-align: center; -} -.header { - text-align: center; -} -h1 { - font-size: 28px; - margin-bottom: 10px; - color: #333; -} -hr { - border: 1px solid #ddd; - margin: 20px 0; -} -input[type="text"] { - width: 100%; - padding: 10px; - font-size: 16px; - border: 1px solid #ccc; - border-radius: 5px; - outline: none; -} -.qrcode { - margin: 20px 0; -} -button { - background-color: #007bff; - color: #fff; - padding: 10px 20px; - font-size: 16px; - border: none; - border-radius: 5px; - cursor: pointer; - outline: none; -} - -/* Hover effect for the button */ -button:hover { - background-color: #0056b3; +body { + font-family: "Ubuntu", sans-serif; + background-color: #f0f0f0; + margin: 0; + padding: 0; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; +} +.container { + background-color: #fff; + box-shadow: 0px 0px 10px + rgba(0, 0, 0, 0.1); + border-radius: 5px; + padding: 20px; + text-align: center; +} +.header { + text-align: center; +} +h1 { + font-size: 28px; + margin-bottom: 10px; + color: #333; +} +hr { + border: 1px solid #ddd; + margin: 20px 0; +} +input[type="text"] { + width: 100%; + padding: 10px; + font-size: 16px; + border: 1px solid #ccc; + border-radius: 5px; + outline: none; +} +.qrcode { + margin: 20px 0; +} +button { + background-color: #007bff; + color: #fff; + padding: 10px 20px; + font-size: 16px; + border: none; + border-radius: 5px; + cursor: pointer; + outline: none; +} + +/* Hover effect for the button */ +button:hover { + background-color: #0056b3; } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Quote-Generator/README.md b/src/app/(category)/javascript/(projects)/quote-generator/README.md similarity index 97% rename from Vanilla-JS-Projects/Basic/Quote-Generator/README.md rename to src/app/(category)/javascript/(projects)/quote-generator/README.md index 5642b36c..c25edba3 100644 --- a/Vanilla-JS-Projects/Basic/Quote-Generator/README.md +++ b/src/app/(category)/javascript/(projects)/quote-generator/README.md @@ -1,60 +1,60 @@ -

💥 Random Quote Generator 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -- Beginner friendly project. -- Enables the users to randomly generate various quotes. -- Designed using HTML, CSS and Javascript - - - -## :zap: How to run it? 🕹️ - - -- Clone this repository. -- Navigate to this project directory -- Run the `index.html` file. - - - -## :zap: Screenshots 📸 - - -![img](./screenshot.webp) - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - - -

Developed By Siddheya Kulkarni 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- +

💥 Random Quote Generator 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +- Beginner friendly project. +- Enables the users to randomly generate various quotes. +- Designed using HTML, CSS and Javascript + + + +## :zap: How to run it? 🕹️ + + +- Clone this repository. +- Navigate to this project directory +- Run the `index.html` file. + + + +## :zap: Screenshots 📸 + + +![img](./screenshot.webp) + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + + +

Developed By Siddheya Kulkarni 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+

Show some  ❤️  by  🌟  this repository!

\ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Quote-Generator/index.html b/src/app/(category)/javascript/(projects)/quote-generator/index.html similarity index 96% rename from Vanilla-JS-Projects/Basic/Quote-Generator/index.html rename to src/app/(category)/javascript/(projects)/quote-generator/index.html index 539bd111..1e9be3dd 100644 --- a/Vanilla-JS-Projects/Basic/Quote-Generator/index.html +++ b/src/app/(category)/javascript/(projects)/quote-generator/index.html @@ -1,19 +1,19 @@ - - - - - - Random Quote Generator - - - -
-

Random Quote Generator

- -
-
-
-
- - - + + + + + + Random Quote Generator + + + +
+

Random Quote Generator

+ +
+
+
+
+ + + diff --git a/Vanilla-JS-Projects/Basic/Quote-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/quote-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Quote-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/quote-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Quote-Generator/script.js b/src/app/(category)/javascript/(projects)/quote-generator/script.js similarity index 97% rename from Vanilla-JS-Projects/Basic/Quote-Generator/script.js rename to src/app/(category)/javascript/(projects)/quote-generator/script.js index 180970eb..a913890c 100644 --- a/Vanilla-JS-Projects/Basic/Quote-Generator/script.js +++ b/src/app/(category)/javascript/(projects)/quote-generator/script.js @@ -1,29 +1,29 @@ -async function generateQuote() { - const quoteContainer = document.getElementById('quote'); - const quoteContainerDiv = document.getElementById('quote-container'); - - // Hide the container while fetching the new quote - quoteContainerDiv.classList.remove('show'); - - quoteContainer.innerHTML = 'Loading...'; - - try { - const response = await fetch('https://api.quotable.io/random'); - const data = await response.json(); - - quoteContainer.innerHTML = `"${data.content}" - ${data.author}`; - - // Ensure a slight delay to allow CSS changes to apply - setTimeout(() => { - quoteContainerDiv.style.display = 'block'; - quoteContainerDiv.classList.add('show'); - }, 100); - } catch (error) { - quoteContainer.innerHTML = 'Error fetching quote. Please try again.'; - - setTimeout(() => { - quoteContainerDiv.style.display = 'block'; - quoteContainerDiv.classList.add('show'); - }, 100); - } -} +async function generateQuote() { + const quoteContainer = document.getElementById('quote'); + const quoteContainerDiv = document.getElementById('quote-container'); + + // Hide the container while fetching the new quote + quoteContainerDiv.classList.remove('show'); + + quoteContainer.innerHTML = 'Loading...'; + + try { + const response = await fetch('https://api.quotable.io/random'); + const data = await response.json(); + + quoteContainer.innerHTML = `"${data.content}" - ${data.author}`; + + // Ensure a slight delay to allow CSS changes to apply + setTimeout(() => { + quoteContainerDiv.style.display = 'block'; + quoteContainerDiv.classList.add('show'); + }, 100); + } catch (error) { + quoteContainer.innerHTML = 'Error fetching quote. Please try again.'; + + setTimeout(() => { + quoteContainerDiv.style.display = 'block'; + quoteContainerDiv.classList.add('show'); + }, 100); + } +} diff --git a/Vanilla-JS-Projects/Basic/Quote-Generator/styles.css b/src/app/(category)/javascript/(projects)/quote-generator/styles.css similarity index 95% rename from Vanilla-JS-Projects/Basic/Quote-Generator/styles.css rename to src/app/(category)/javascript/(projects)/quote-generator/styles.css index 96d366ce..a0936414 100644 --- a/Vanilla-JS-Projects/Basic/Quote-Generator/styles.css +++ b/src/app/(category)/javascript/(projects)/quote-generator/styles.css @@ -1,56 +1,56 @@ -@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap'); - -body { - display: flex; - flex-direction: column; - align-items: center; - background-image: linear-gradient(to right, #DECBA4, #3E5151); - margin: 0; -} - -.container { - font-family: "Poppins", sans-serif; - text-align: center; - background: white; - padding: 20px; - border-radius: 8px; - box-shadow: 5px 7px 10px rgba(0, 0, 0, 0.5); - margin-top: 100px; -} - -.quote-container { - text-align: center; - background: white; - font-family: "Poppins", sans-serif; - padding: 30px; - border-radius: 8px; - box-shadow: 5px 7px 10px rgba(0, 0, 0, 0.5); - margin-top: 50px; - width: 40%; - opacity: 0; /* Initial state is fully transparent */ - visibility: hidden; /* Initially hidden */ - transition: opacity 0.8s ease, visibility 0.8s ease; /* Transition effects */ -} - -.quote-container.show { - opacity: 1; /* Fully opaque */ - visibility: visible; /* Make visible */ -} - -#quote { - font-size: 1.2em; -} - -button { - padding: 10px 20px; - border: none; - background-color: #007BFF; - color: white; - border-radius: 4px; - cursor: pointer; -} - -button:hover { - cursor: pointer; - background-color: #0056b3; -} +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap'); + +body { + display: flex; + flex-direction: column; + align-items: center; + background-image: linear-gradient(to right, #DECBA4, #3E5151); + margin: 0; +} + +.container { + font-family: "Poppins", sans-serif; + text-align: center; + background: white; + padding: 20px; + border-radius: 8px; + box-shadow: 5px 7px 10px rgba(0, 0, 0, 0.5); + margin-top: 100px; +} + +.quote-container { + text-align: center; + background: white; + font-family: "Poppins", sans-serif; + padding: 30px; + border-radius: 8px; + box-shadow: 5px 7px 10px rgba(0, 0, 0, 0.5); + margin-top: 50px; + width: 40%; + opacity: 0; /* Initial state is fully transparent */ + visibility: hidden; /* Initially hidden */ + transition: opacity 0.8s ease, visibility 0.8s ease; /* Transition effects */ +} + +.quote-container.show { + opacity: 1; /* Fully opaque */ + visibility: visible; /* Make visible */ +} + +#quote { + font-size: 1.2em; +} + +button { + padding: 10px 20px; + border: none; + background-color: #007BFF; + color: white; + border-radius: 4px; + cursor: pointer; +} + +button:hover { + cursor: pointer; + background-color: #0056b3; +} diff --git a/Vanilla-JS-Projects/Basic/Random-Advice-Generator/README.md b/src/app/(category)/javascript/(projects)/random-advice-generator/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Advice-Generator/README.md rename to src/app/(category)/javascript/(projects)/random-advice-generator/README.md diff --git a/Vanilla-JS-Projects/Basic/Random-Advice-Generator/images/icon-dice.svg b/src/app/(category)/javascript/(projects)/random-advice-generator/images/icon-dice.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Advice-Generator/images/icon-dice.svg rename to src/app/(category)/javascript/(projects)/random-advice-generator/images/icon-dice.svg diff --git a/Vanilla-JS-Projects/Basic/Random-Advice-Generator/images/pattern-divider-desktop.svg b/src/app/(category)/javascript/(projects)/random-advice-generator/images/pattern-divider-desktop.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Advice-Generator/images/pattern-divider-desktop.svg rename to src/app/(category)/javascript/(projects)/random-advice-generator/images/pattern-divider-desktop.svg diff --git a/Vanilla-JS-Projects/Basic/Random-Advice-Generator/images/pattern-divider-mobile.svg b/src/app/(category)/javascript/(projects)/random-advice-generator/images/pattern-divider-mobile.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Advice-Generator/images/pattern-divider-mobile.svg rename to src/app/(category)/javascript/(projects)/random-advice-generator/images/pattern-divider-mobile.svg diff --git a/Vanilla-JS-Projects/Basic/Random-Advice-Generator/index.html b/src/app/(category)/javascript/(projects)/random-advice-generator/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Advice-Generator/index.html rename to src/app/(category)/javascript/(projects)/random-advice-generator/index.html diff --git a/Vanilla-JS-Projects/Basic/Random-Advice-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/random-advice-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Advice-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/random-advice-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Random-Advice-Generator/script.js b/src/app/(category)/javascript/(projects)/random-advice-generator/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Advice-Generator/script.js rename to src/app/(category)/javascript/(projects)/random-advice-generator/script.js diff --git a/Vanilla-JS-Projects/Basic/Random-Advice-Generator/style.css b/src/app/(category)/javascript/(projects)/random-advice-generator/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Advice-Generator/style.css rename to src/app/(category)/javascript/(projects)/random-advice-generator/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Random-Name-Generator/Readme.md b/src/app/(category)/javascript/(projects)/random-name-generator/Readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Random-Name-Generator/Readme.md rename to src/app/(category)/javascript/(projects)/random-name-generator/Readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Random-Name-Generator/index.html b/src/app/(category)/javascript/(projects)/random-name-generator/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Random-Name-Generator/index.html rename to src/app/(category)/javascript/(projects)/random-name-generator/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Random-Name-Generator/index.js b/src/app/(category)/javascript/(projects)/random-name-generator/index.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Random-Name-Generator/index.js rename to src/app/(category)/javascript/(projects)/random-name-generator/index.js diff --git a/Vanilla-JS-Projects/Intermediate/Random-Name-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/random-name-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Random-Name-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/random-name-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Random-Name-Generator/style.css b/src/app/(category)/javascript/(projects)/random-name-generator/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Random-Name-Generator/style.css rename to src/app/(category)/javascript/(projects)/random-name-generator/style.css diff --git a/Vanilla-JS-Projects/Basic/Random-Picker/README.md b/src/app/(category)/javascript/(projects)/random-picker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Picker/README.md rename to src/app/(category)/javascript/(projects)/random-picker/README.md diff --git a/Vanilla-JS-Projects/Basic/Random-Picker/index.html b/src/app/(category)/javascript/(projects)/random-picker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Picker/index.html rename to src/app/(category)/javascript/(projects)/random-picker/index.html diff --git a/Vanilla-JS-Projects/Basic/Random-Picker/screenshot.webp b/src/app/(category)/javascript/(projects)/random-picker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Picker/screenshot.webp rename to src/app/(category)/javascript/(projects)/random-picker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Random-Picker/script.js b/src/app/(category)/javascript/(projects)/random-picker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Picker/script.js rename to src/app/(category)/javascript/(projects)/random-picker/script.js diff --git a/Vanilla-JS-Projects/Basic/Random-Picker/style.css b/src/app/(category)/javascript/(projects)/random-picker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Random-Picker/style.css rename to src/app/(category)/javascript/(projects)/random-picker/style.css diff --git a/Vanilla-JS-Projects/Advanced/Recipe-Finder/README.md b/src/app/(category)/javascript/(projects)/recipe-finder/README.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/Recipe-Finder/README.md rename to src/app/(category)/javascript/(projects)/recipe-finder/README.md diff --git a/Vanilla-JS-Projects/Advanced/Recipe-Finder/index.html b/src/app/(category)/javascript/(projects)/recipe-finder/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/Recipe-Finder/index.html rename to src/app/(category)/javascript/(projects)/recipe-finder/index.html diff --git a/Vanilla-JS-Projects/Advanced/Recipe-Finder/screenshot.webp b/src/app/(category)/javascript/(projects)/recipe-finder/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Recipe-Finder/screenshot.webp rename to src/app/(category)/javascript/(projects)/recipe-finder/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Recipe-Finder/script.js b/src/app/(category)/javascript/(projects)/recipe-finder/script.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/Recipe-Finder/script.js rename to src/app/(category)/javascript/(projects)/recipe-finder/script.js diff --git a/Vanilla-JS-Projects/Advanced/Recipe-Finder/styles.css b/src/app/(category)/javascript/(projects)/recipe-finder/styles.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/Recipe-Finder/styles.css rename to src/app/(category)/javascript/(projects)/recipe-finder/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Recipe-Hunter/README.md b/src/app/(category)/javascript/(projects)/recipe-hunter/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Recipe-Hunter/README.md rename to src/app/(category)/javascript/(projects)/recipe-hunter/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Recipe-Hunter/html.html b/src/app/(category)/javascript/(projects)/recipe-hunter/html.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Recipe-Hunter/html.html rename to src/app/(category)/javascript/(projects)/recipe-hunter/html.html diff --git a/Vanilla-JS-Projects/Intermediate/Recipe-Hunter/screenshot.webp b/src/app/(category)/javascript/(projects)/recipe-hunter/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Recipe-Hunter/screenshot.webp rename to src/app/(category)/javascript/(projects)/recipe-hunter/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Recipe-Hunter/script.js b/src/app/(category)/javascript/(projects)/recipe-hunter/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Recipe-Hunter/script.js rename to src/app/(category)/javascript/(projects)/recipe-hunter/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Recipe-Hunter/style.css b/src/app/(category)/javascript/(projects)/recipe-hunter/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Recipe-Hunter/style.css rename to src/app/(category)/javascript/(projects)/recipe-hunter/style.css diff --git a/Vanilla-JS-Projects/Advanced/Resume-Builder/index.html b/src/app/(category)/javascript/(projects)/resume-builder/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/Resume-Builder/index.html rename to src/app/(category)/javascript/(projects)/resume-builder/index.html diff --git a/Vanilla-JS-Projects/Advanced/Resume-Builder/readme.md b/src/app/(category)/javascript/(projects)/resume-builder/readme.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/Resume-Builder/readme.md rename to src/app/(category)/javascript/(projects)/resume-builder/readme.md diff --git a/Vanilla-JS-Projects/Advanced/Resume-Builder/resume.html b/src/app/(category)/javascript/(projects)/resume-builder/resume.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/Resume-Builder/resume.html rename to src/app/(category)/javascript/(projects)/resume-builder/resume.html diff --git a/Vanilla-JS-Projects/Advanced/Resume-Builder/screenshot.webp b/src/app/(category)/javascript/(projects)/resume-builder/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Resume-Builder/screenshot.webp rename to src/app/(category)/javascript/(projects)/resume-builder/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Resume-Builder/src/App.css b/src/app/(category)/javascript/(projects)/resume-builder/src/App.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/Resume-Builder/src/App.css rename to src/app/(category)/javascript/(projects)/resume-builder/src/App.css diff --git a/Vanilla-JS-Projects/Advanced/Resume-Builder/src/index.js b/src/app/(category)/javascript/(projects)/resume-builder/src/index.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/Resume-Builder/src/index.js rename to src/app/(category)/javascript/(projects)/resume-builder/src/index.js diff --git a/Vanilla-JS-Projects/Advanced/Resume-Builder/src/resume.css b/src/app/(category)/javascript/(projects)/resume-builder/src/resume.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/Resume-Builder/src/resume.css rename to src/app/(category)/javascript/(projects)/resume-builder/src/resume.css diff --git a/Vanilla-JS-Projects/Basic/RGB-Color-Slider/Readme.md b/src/app/(category)/javascript/(projects)/rgb-color-slider/Readme.md similarity index 100% rename from Vanilla-JS-Projects/Basic/RGB-Color-Slider/Readme.md rename to src/app/(category)/javascript/(projects)/rgb-color-slider/Readme.md diff --git a/Vanilla-JS-Projects/Basic/RGB-Color-Slider/index.html b/src/app/(category)/javascript/(projects)/rgb-color-slider/index.html similarity index 97% rename from Vanilla-JS-Projects/Basic/RGB-Color-Slider/index.html rename to src/app/(category)/javascript/(projects)/rgb-color-slider/index.html index d090e2dc..0ae366aa 100644 --- a/Vanilla-JS-Projects/Basic/RGB-Color-Slider/index.html +++ b/src/app/(category)/javascript/(projects)/rgb-color-slider/index.html @@ -1,52 +1,52 @@ - - - - - - - - RGB Color Slider - - -
-
-

RGB Color Slider

-
-
-

Adjust Your Values

-
- -
-
-

R

-
-
- -
-
-
- -
-
-

G

-
-
- -
-
-
- -
-
-

B

-
-
- -
-
-
-
-
- - - + + + + + + + + RGB Color Slider + + +
+
+

RGB Color Slider

+
+
+

Adjust Your Values

+
+ +
+
+

R

+
+
+ +
+
+
+ +
+
+

G

+
+
+ +
+
+
+ +
+
+

B

+
+
+ +
+
+
+
+
+ + + diff --git a/Vanilla-JS-Projects/Basic/RGB-Color-Slider/screenshot.webp b/src/app/(category)/javascript/(projects)/rgb-color-slider/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/RGB-Color-Slider/screenshot.webp rename to src/app/(category)/javascript/(projects)/rgb-color-slider/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/RGB-Color-Slider/script.js b/src/app/(category)/javascript/(projects)/rgb-color-slider/script.js similarity index 95% rename from Vanilla-JS-Projects/Basic/RGB-Color-Slider/script.js rename to src/app/(category)/javascript/(projects)/rgb-color-slider/script.js index 015d6c9b..68fc9335 100644 --- a/Vanilla-JS-Projects/Basic/RGB-Color-Slider/script.js +++ b/src/app/(category)/javascript/(projects)/rgb-color-slider/script.js @@ -1,40 +1,40 @@ - -var sliderR = document.getElementById("R"); -var sliderG = document.getElementById("G"); -var sliderB = document.getElementById("B"); -var Square = document.getElementById("square"); - -var outputR = document.getElementById("OutputR"); -var outputG = document.getElementById("OutputG"); -var outputB = document.getElementById("OutputB"); - - -outputR.innerHTML = sliderR.value; -outputG.innerHTML = sliderG.value; -outputB.innerHTML = sliderB.value; - - -sliderR.oninput = function() { - outputR.innerHTML = this.value; - changeColor(); -} - -sliderG.oninput = function() { - outputG.innerHTML = this.value; - changeColor(); -} - -sliderB.oninput = function() { - outputB.innerHTML = this.value; - changeColor(); -} - -function changeColor() { - var r = sliderR.value; - var g = sliderG.value; - var b = sliderB.value; - Square.style.backgroundColor = `rgb(${r},${g},${b})`; -} - - + +var sliderR = document.getElementById("R"); +var sliderG = document.getElementById("G"); +var sliderB = document.getElementById("B"); +var Square = document.getElementById("square"); + +var outputR = document.getElementById("OutputR"); +var outputG = document.getElementById("OutputG"); +var outputB = document.getElementById("OutputB"); + + +outputR.innerHTML = sliderR.value; +outputG.innerHTML = sliderG.value; +outputB.innerHTML = sliderB.value; + + +sliderR.oninput = function() { + outputR.innerHTML = this.value; + changeColor(); +} + +sliderG.oninput = function() { + outputG.innerHTML = this.value; + changeColor(); +} + +sliderB.oninput = function() { + outputB.innerHTML = this.value; + changeColor(); +} + +function changeColor() { + var r = sliderR.value; + var g = sliderG.value; + var b = sliderB.value; + Square.style.backgroundColor = `rgb(${r},${g},${b})`; +} + + changeColor(); \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/RGB-Color-Slider/style.css b/src/app/(category)/javascript/(projects)/rgb-color-slider/style.css similarity index 92% rename from Vanilla-JS-Projects/Basic/RGB-Color-Slider/style.css rename to src/app/(category)/javascript/(projects)/rgb-color-slider/style.css index 27fd956d..f812e11e 100644 --- a/Vanilla-JS-Projects/Basic/RGB-Color-Slider/style.css +++ b/src/app/(category)/javascript/(projects)/rgb-color-slider/style.css @@ -1,16 +1,16 @@ -.container - { - display:flex; - justify-content: center; - } - -#square { - height: 200px; - width: 200px; - background-color: rgb(0,0,0); - - } - -body{ - background-color: rgb(220, 220, 220); -} +.container + { + display:flex; + justify-content: center; + } + +#square { + height: 200px; + width: 200px; + background-color: rgb(0,0,0); + + } + +body{ + background-color: rgb(220, 220, 220); +} diff --git a/Vanilla-JS-Projects/Basic/Search-From-Here/README.md b/src/app/(category)/javascript/(projects)/search-from-here/README.md similarity index 98% rename from Vanilla-JS-Projects/Basic/Search-From-Here/README.md rename to src/app/(category)/javascript/(projects)/search-from-here/README.md index f7726530..4e15aa0c 100644 --- a/Vanilla-JS-Projects/Basic/Search-From-Here/README.md +++ b/src/app/(category)/javascript/(projects)/search-from-here/README.md @@ -1,80 +1,80 @@ -

💥 Search From Here 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - - - - - - - - - - - -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
- -

Search From Here is a user-friendly tool that allows you to search multiple platforms—Google, Amazon, YouTube, and Wikipedia—from one interface. The project features a responsive design that adapts to different screen sizes, displaying search boxes in a neat grid layout.

-
- - - - -## :zap: How to run it? 🕹️ - - -- Fork this project and run the `index.html` file directly. - - - - -## :zap: Screenshots 📸 - -![image](https://github.com/user-attachments/assets/2a09643c-3751-4b5e-a239-3d1287c66b32) - - - -## :zap: Working Video 📹 - - -https://github.com/user-attachments/assets/3127ff07-b9c3-4655-8472-68ecacf8d5c3 - - - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Jomana Tantawy 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 Search From Here 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + + + + + + + + + + + +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+ +

Search From Here is a user-friendly tool that allows you to search multiple platforms—Google, Amazon, YouTube, and Wikipedia—from one interface. The project features a responsive design that adapts to different screen sizes, displaying search boxes in a neat grid layout.

+
+ + + + +## :zap: How to run it? 🕹️ + + +- Fork this project and run the `index.html` file directly. + + + + +## :zap: Screenshots 📸 + +![image](https://github.com/user-attachments/assets/2a09643c-3751-4b5e-a239-3d1287c66b32) + + + +## :zap: Working Video 📹 + + +https://github.com/user-attachments/assets/3127ff07-b9c3-4655-8472-68ecacf8d5c3 + + + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Jomana Tantawy 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Basic/Search-From-Here/SearchIcon.webp b/src/app/(category)/javascript/(projects)/search-from-here/SearchIcon.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Search-From-Here/SearchIcon.webp rename to src/app/(category)/javascript/(projects)/search-from-here/SearchIcon.webp diff --git a/Vanilla-JS-Projects/Basic/Search-From-Here/image.png b/src/app/(category)/javascript/(projects)/search-from-here/image.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Search-From-Here/image.png rename to src/app/(category)/javascript/(projects)/search-from-here/image.png diff --git a/Vanilla-JS-Projects/Basic/Search-From-Here/index.html b/src/app/(category)/javascript/(projects)/search-from-here/index.html similarity index 96% rename from Vanilla-JS-Projects/Basic/Search-From-Here/index.html rename to src/app/(category)/javascript/(projects)/search-from-here/index.html index 623587a5..7df4c5fc 100644 --- a/Vanilla-JS-Projects/Basic/Search-From-Here/index.html +++ b/src/app/(category)/javascript/(projects)/search-from-here/index.html @@ -1,47 +1,47 @@ - - - - - - Search From Here - - - - -
-

Search From Here

-
-
-
-

Google

-
- - SearchIcon -
-
-
-

Amazon

-
- - SearchIcon -
-
-
-

Youtube

-
- - SearchIcon -
-
-
-

Wikipedia

-
- - SearchIcon -
-
-
-

Developed by Jomana Tantawy

- - - + + + + + + Search From Here + + + + +
+

Search From Here

+
+
+
+

Google

+
+ + SearchIcon +
+
+
+

Amazon

+
+ + SearchIcon +
+
+
+

Youtube

+
+ + SearchIcon +
+
+
+

Wikipedia

+
+ + SearchIcon +
+
+
+

Developed by Jomana Tantawy

+ + + diff --git a/Vanilla-JS-Projects/Basic/Search-From-Here/screenshot.webp b/src/app/(category)/javascript/(projects)/search-from-here/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Search-From-Here/screenshot.webp rename to src/app/(category)/javascript/(projects)/search-from-here/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Search-From-Here/script.js b/src/app/(category)/javascript/(projects)/search-from-here/script.js similarity index 97% rename from Vanilla-JS-Projects/Basic/Search-From-Here/script.js rename to src/app/(category)/javascript/(projects)/search-from-here/script.js index 966bc503..31476b52 100644 --- a/Vanilla-JS-Projects/Basic/Search-From-Here/script.js +++ b/src/app/(category)/javascript/(projects)/search-from-here/script.js @@ -1,28 +1,28 @@ -document.addEventListener("DOMContentLoaded", function() { - // Search URLs for each platform - const searchUrls = { - Google: "https://www.google.com/search?q=", - Amazon: "https://www.amazon.com/s?k=", - Youtube: "https://www.youtube.com/results?search_query=", - Wikipedia: "https://en.wikipedia.org/wiki/" - }; - - // Add click event to each search icon - document.querySelectorAll(".box").forEach(box => { - const searchInput = box.querySelector("input[type='search']"); - const searchIcon = box.querySelector("img"); - - searchIcon.addEventListener("click", () => { - const platform = box.querySelector("h3").innerText; - const query = searchInput.value.trim(); - - if (query) { - const searchUrl = searchUrls[platform] + encodeURIComponent(query); - window.open(searchUrl, "_blank"); - } else { - alert("Please enter a search term."); - } - }); - }); - }); +document.addEventListener("DOMContentLoaded", function() { + // Search URLs for each platform + const searchUrls = { + Google: "https://www.google.com/search?q=", + Amazon: "https://www.amazon.com/s?k=", + Youtube: "https://www.youtube.com/results?search_query=", + Wikipedia: "https://en.wikipedia.org/wiki/" + }; + + // Add click event to each search icon + document.querySelectorAll(".box").forEach(box => { + const searchInput = box.querySelector("input[type='search']"); + const searchIcon = box.querySelector("img"); + + searchIcon.addEventListener("click", () => { + const platform = box.querySelector("h3").innerText; + const query = searchInput.value.trim(); + + if (query) { + const searchUrl = searchUrls[platform] + encodeURIComponent(query); + window.open(searchUrl, "_blank"); + } else { + alert("Please enter a search term."); + } + }); + }); + }); \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Search-From-Here/style.css b/src/app/(category)/javascript/(projects)/search-from-here/style.css similarity index 94% rename from Vanilla-JS-Projects/Basic/Search-From-Here/style.css rename to src/app/(category)/javascript/(projects)/search-from-here/style.css index fcbc1a7c..11fb8de3 100644 --- a/Vanilla-JS-Projects/Basic/Search-From-Here/style.css +++ b/src/app/(category)/javascript/(projects)/search-from-here/style.css @@ -1,105 +1,105 @@ -/* General Styles */ -* { - box-sizing: border-box; - margin: 0; - padding: 0; - font-family: Arial, sans-serif; - } - - body { - display: flex; - flex-direction: column; - align-items: center; - background-color: #f4f4f9; - color: #333; - } - - header { - margin-top: 20px; - text-align: center; - color: #4a90e2; - } - - h2 { - font-size: 2em; - margin-bottom: 20px; - } - - /* Container for grid */ - .container { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 20px; - max-width: 900px; - width: 100%; - padding: 0 20px; - margin-bottom: 20px; - } - - /* Box Styles */ - .box { - display: flex; - flex-direction: column; - align-items: center; - background-color: #fff; - padding: 30px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - border-radius: 8px; - transition: transform 0.2s; - } - - .box:hover { - transform: scale(1.05); - } - - h3 { - margin-bottom: 15px; - font-size: 1.5em; - color: #333; - } - - .Seach-box { - display: flex; - align-items: center; - width: 100%; - } - - .Seach-box input[type="search"] { - width: 100%; - padding: 12px; - font-size: 1em; - border: 1px solid #ddd; - border-radius: 4px 0 0 4px; - outline: none; - } - - .Seach-box img { - width: 35px; - height: 35px; - cursor: pointer; - padding: 5px; - border-radius: 0 4px 4px 0; - background-color: #4a90e2; - } - - footer p{ - font-size: 10px; - } - /* Responsive adjustments */ - @media (max-width: 600px) { - h2 { - font-size: 1.75em; - } - .box { - padding: 20px; - } - .Seach-box input[type="search"] { - font-size: 0.9em; - padding: 10px; - } - .Seach-box img { - width: 30px; - height: 30px; - } - } +/* General Styles */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; + font-family: Arial, sans-serif; + } + + body { + display: flex; + flex-direction: column; + align-items: center; + background-color: #f4f4f9; + color: #333; + } + + header { + margin-top: 20px; + text-align: center; + color: #4a90e2; + } + + h2 { + font-size: 2em; + margin-bottom: 20px; + } + + /* Container for grid */ + .container { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 20px; + max-width: 900px; + width: 100%; + padding: 0 20px; + margin-bottom: 20px; + } + + /* Box Styles */ + .box { + display: flex; + flex-direction: column; + align-items: center; + background-color: #fff; + padding: 30px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + border-radius: 8px; + transition: transform 0.2s; + } + + .box:hover { + transform: scale(1.05); + } + + h3 { + margin-bottom: 15px; + font-size: 1.5em; + color: #333; + } + + .Seach-box { + display: flex; + align-items: center; + width: 100%; + } + + .Seach-box input[type="search"] { + width: 100%; + padding: 12px; + font-size: 1em; + border: 1px solid #ddd; + border-radius: 4px 0 0 4px; + outline: none; + } + + .Seach-box img { + width: 35px; + height: 35px; + cursor: pointer; + padding: 5px; + border-radius: 0 4px 4px 0; + background-color: #4a90e2; + } + + footer p{ + font-size: 10px; + } + /* Responsive adjustments */ + @media (max-width: 600px) { + h2 { + font-size: 1.75em; + } + .box { + padding: 20px; + } + .Seach-box input[type="search"] { + font-size: 0.9em; + padding: 10px; + } + .Seach-box img { + width: 30px; + height: 30px; + } + } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/Readme.md b/src/app/(category)/javascript/(projects)/social-media-analytics/Readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/Readme.md rename to src/app/(category)/javascript/(projects)/social-media-analytics/Readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/index.html b/src/app/(category)/javascript/(projects)/social-media-analytics/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/index.html rename to src/app/(category)/javascript/(projects)/social-media-analytics/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/screenshot.webp b/src/app/(category)/javascript/(projects)/social-media-analytics/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/screenshot.webp rename to src/app/(category)/javascript/(projects)/social-media-analytics/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/src/index.js b/src/app/(category)/javascript/(projects)/social-media-analytics/src/index.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/src/index.js rename to src/app/(category)/javascript/(projects)/social-media-analytics/src/index.js diff --git a/Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/src/styles.css b/src/app/(category)/javascript/(projects)/social-media-analytics/src/styles.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Social-Media-Analytics/src/styles.css rename to src/app/(category)/javascript/(projects)/social-media-analytics/src/styles.css diff --git a/Vanilla-JS-Projects/Advanced/sort-visualizer/README.md b/src/app/(category)/javascript/(projects)/sort-visualizer/README.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/sort-visualizer/README.md rename to src/app/(category)/javascript/(projects)/sort-visualizer/README.md diff --git a/Vanilla-JS-Projects/Advanced/sort-visualizer/css/style.css b/src/app/(category)/javascript/(projects)/sort-visualizer/css/style.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/sort-visualizer/css/style.css rename to src/app/(category)/javascript/(projects)/sort-visualizer/css/style.css diff --git a/Vanilla-JS-Projects/Advanced/sort-visualizer/index.html b/src/app/(category)/javascript/(projects)/sort-visualizer/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/sort-visualizer/index.html rename to src/app/(category)/javascript/(projects)/sort-visualizer/index.html diff --git a/Vanilla-JS-Projects/Advanced/Sort-Visualizer/screenshot.webp b/src/app/(category)/javascript/(projects)/sort-visualizer/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Sort-Visualizer/screenshot.webp rename to src/app/(category)/javascript/(projects)/sort-visualizer/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/sort-visualizer/scripts/app.js b/src/app/(category)/javascript/(projects)/sort-visualizer/scripts/app.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/sort-visualizer/scripts/app.js rename to src/app/(category)/javascript/(projects)/sort-visualizer/scripts/app.js diff --git a/Vanilla-JS-Projects/Advanced/sort-visualizer/scripts/helper.js b/src/app/(category)/javascript/(projects)/sort-visualizer/scripts/helper.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/sort-visualizer/scripts/helper.js rename to src/app/(category)/javascript/(projects)/sort-visualizer/scripts/helper.js diff --git a/Vanilla-JS-Projects/Advanced/sort-visualizer/scripts/sort-algorithms.js b/src/app/(category)/javascript/(projects)/sort-visualizer/scripts/sort-algorithms.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/sort-visualizer/scripts/sort-algorithms.js rename to src/app/(category)/javascript/(projects)/sort-visualizer/scripts/sort-algorithms.js diff --git a/Vanilla-JS-Projects/Basic/Star-Rating-Component/README.md b/src/app/(category)/javascript/(projects)/star-rating-component/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Star-Rating-Component/README.md rename to src/app/(category)/javascript/(projects)/star-rating-component/README.md diff --git a/Vanilla-JS-Projects/Basic/Star-Rating-Component/images/icon-star.svg b/src/app/(category)/javascript/(projects)/star-rating-component/images/icon-star.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Star-Rating-Component/images/icon-star.svg rename to src/app/(category)/javascript/(projects)/star-rating-component/images/icon-star.svg diff --git a/Vanilla-JS-Projects/Basic/Star-Rating-Component/images/illustration-thank-you.svg b/src/app/(category)/javascript/(projects)/star-rating-component/images/illustration-thank-you.svg similarity index 100% rename from Vanilla-JS-Projects/Basic/Star-Rating-Component/images/illustration-thank-you.svg rename to src/app/(category)/javascript/(projects)/star-rating-component/images/illustration-thank-you.svg diff --git a/Vanilla-JS-Projects/Basic/Star-Rating-Component/index.html b/src/app/(category)/javascript/(projects)/star-rating-component/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Star-Rating-Component/index.html rename to src/app/(category)/javascript/(projects)/star-rating-component/index.html diff --git a/Vanilla-JS-Projects/Basic/Star-Rating-Component/screenshot.webp b/src/app/(category)/javascript/(projects)/star-rating-component/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Star-Rating-Component/screenshot.webp rename to src/app/(category)/javascript/(projects)/star-rating-component/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Star-Rating-Component/script.js b/src/app/(category)/javascript/(projects)/star-rating-component/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Star-Rating-Component/script.js rename to src/app/(category)/javascript/(projects)/star-rating-component/script.js diff --git a/Vanilla-JS-Projects/Basic/Star-Rating-Component/style.css b/src/app/(category)/javascript/(projects)/star-rating-component/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Star-Rating-Component/style.css rename to src/app/(category)/javascript/(projects)/star-rating-component/style.css diff --git a/Vanilla-JS-Projects/Basic/Stop-Watch/README.md b/src/app/(category)/javascript/(projects)/stop-watch/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Stop-Watch/README.md rename to src/app/(category)/javascript/(projects)/stop-watch/README.md diff --git a/Vanilla-JS-Projects/Basic/Stop-Watch/background.jpg b/src/app/(category)/javascript/(projects)/stop-watch/background.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Stop-Watch/background.jpg rename to src/app/(category)/javascript/(projects)/stop-watch/background.jpg diff --git a/Vanilla-JS-Projects/Basic/Stop-Watch/index.html b/src/app/(category)/javascript/(projects)/stop-watch/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Stop-Watch/index.html rename to src/app/(category)/javascript/(projects)/stop-watch/index.html diff --git a/Vanilla-JS-Projects/Basic/Stop-Watch/screenshot.webp b/src/app/(category)/javascript/(projects)/stop-watch/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Stop-Watch/screenshot.webp rename to src/app/(category)/javascript/(projects)/stop-watch/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Stop-Watch/script.js b/src/app/(category)/javascript/(projects)/stop-watch/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Stop-Watch/script.js rename to src/app/(category)/javascript/(projects)/stop-watch/script.js diff --git a/Vanilla-JS-Projects/Basic/Stop-Watch/style.css b/src/app/(category)/javascript/(projects)/stop-watch/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Stop-Watch/style.css rename to src/app/(category)/javascript/(projects)/stop-watch/style.css diff --git a/Vanilla-JS-Projects/Basic/Stopwatch/README.md b/src/app/(category)/javascript/(projects)/stopwatch/README.md similarity index 97% rename from Vanilla-JS-Projects/Basic/Stopwatch/README.md rename to src/app/(category)/javascript/(projects)/stopwatch/README.md index 00dad7f2..593d1578 100644 --- a/Vanilla-JS-Projects/Basic/Stopwatch/README.md +++ b/src/app/(category)/javascript/(projects)/stopwatch/README.md @@ -1,58 +1,58 @@ -

💥 Stopwatch 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) -
- - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -- Beginner friendly project. -- The project is a sleek and efficient stopwatch application built using HTML, CSS, and JavaScript. -- Designed with simplicity and functionality in mind, it allows users to accurately track time with precision. - - - -## :zap: How to run it? 🕹️ - - -- Fork this project and run the `index.html` file directly. - - - -## :zap: Screenshots 📸 - - -![img](./screenshot.webp) - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - - -

Developed By Abirami Gurushanker 👧

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 Stopwatch 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) +
+ + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +- Beginner friendly project. +- The project is a sleek and efficient stopwatch application built using HTML, CSS, and JavaScript. +- Designed with simplicity and functionality in mind, it allows users to accurately track time with precision. + + + +## :zap: How to run it? 🕹️ + + +- Fork this project and run the `index.html` file directly. + + + +## :zap: Screenshots 📸 + + +![img](./screenshot.webp) + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + + +

Developed By Abirami Gurushanker 👧

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Basic/Stopwatch/index.html b/src/app/(category)/javascript/(projects)/stopwatch/index.html similarity index 96% rename from Vanilla-JS-Projects/Basic/Stopwatch/index.html rename to src/app/(category)/javascript/(projects)/stopwatch/index.html index dfaaa93f..d6462da0 100644 --- a/Vanilla-JS-Projects/Basic/Stopwatch/index.html +++ b/src/app/(category)/javascript/(projects)/stopwatch/index.html @@ -1,21 +1,21 @@ - - - - - - Stopwatch - - - -

Stopwatch

-
-

00 : 00 : 00

-
- - - -
-
- - + + + + + + Stopwatch + + + +

Stopwatch

+
+

00 : 00 : 00

+
+ + + +
+
+ + \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Stopwatch/screenshot.webp b/src/app/(category)/javascript/(projects)/stopwatch/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Stopwatch/screenshot.webp rename to src/app/(category)/javascript/(projects)/stopwatch/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Stopwatch/script.js b/src/app/(category)/javascript/(projects)/stopwatch/script.js similarity index 96% rename from Vanilla-JS-Projects/Basic/Stopwatch/script.js rename to src/app/(category)/javascript/(projects)/stopwatch/script.js index fb5103a1..b3469a68 100644 --- a/Vanilla-JS-Projects/Basic/Stopwatch/script.js +++ b/src/app/(category)/javascript/(projects)/stopwatch/script.js @@ -1,73 +1,73 @@ -// selecting elements from the DOM -let h = document.querySelector("#hour"); -let m = document.querySelector("#min"); -let s = document.querySelector("#sec"); - -// selecting buttons from the DOM -let playBtn = document.querySelector("#play"); -let pauseBtn = document.querySelector("#pause"); -let resetBtn = document.querySelector("#reset"); - -// global variable to keep track of stopwatch -let started = false; - -// event listener for play button -playBtn.addEventListener("click", ()=>{ - started = true; //starting the timer - startTimer(); -}) - -// event listener for pause button -pauseBtn.addEventListener("click", ()=>{ - started = false; //setting started to false stops the timer -}) - -// event listener for reset button -resetBtn.addEventListener("click", ()=>{ - started = false; - // reseting values to default values - s.innerText = "00"; - m.innerText = "00"; - h.innerText = "00"; -}) - -// function that starts the timer -let startTimer = function(){ - // checking if timer has been started - if(started === true){ - // extracting current time - var seconds = parseInt(s.innerText); - var minutes = parseInt(m.innerText); - var hours = parseInt(h.innerText); - - if(minutes==59 && seconds==59){ - // time is x: 59: 59 so the next time should be x+1:00:00 - s.innerText = "00"; - m.innerText = "00"; - h.innerText = (hours+1).toString(); //incrementing hours - } - else if(seconds<=8){ - // if seconds <=8 it must start with a zero - s.innerText = "0" + (seconds + 1).toString(); - } - else if (seconds<59){ - //incrementing seconds - s.innerText = (seconds + 1).toString(); - } - else if (seconds==59){ - // time is x: y: 59 so the next time should be x:y+1:00 - s.innerText = "00"; - if(minutes<=8){ - // if minutes <=8 it must start with a zero - m.innerText = "0" + (minutes+1).toString(); - } - else{ - // incrementing minutes - m.innerText = (minutes + 1).toString(); - } - } - // recursively calling startTimer with a delay of one second - setTimeout(startTimer,1000); - } - +// selecting elements from the DOM +let h = document.querySelector("#hour"); +let m = document.querySelector("#min"); +let s = document.querySelector("#sec"); + +// selecting buttons from the DOM +let playBtn = document.querySelector("#play"); +let pauseBtn = document.querySelector("#pause"); +let resetBtn = document.querySelector("#reset"); + +// global variable to keep track of stopwatch +let started = false; + +// event listener for play button +playBtn.addEventListener("click", ()=>{ + started = true; //starting the timer + startTimer(); +}) + +// event listener for pause button +pauseBtn.addEventListener("click", ()=>{ + started = false; //setting started to false stops the timer +}) + +// event listener for reset button +resetBtn.addEventListener("click", ()=>{ + started = false; + // reseting values to default values + s.innerText = "00"; + m.innerText = "00"; + h.innerText = "00"; +}) + +// function that starts the timer +let startTimer = function(){ + // checking if timer has been started + if(started === true){ + // extracting current time + var seconds = parseInt(s.innerText); + var minutes = parseInt(m.innerText); + var hours = parseInt(h.innerText); + + if(minutes==59 && seconds==59){ + // time is x: 59: 59 so the next time should be x+1:00:00 + s.innerText = "00"; + m.innerText = "00"; + h.innerText = (hours+1).toString(); //incrementing hours + } + else if(seconds<=8){ + // if seconds <=8 it must start with a zero + s.innerText = "0" + (seconds + 1).toString(); + } + else if (seconds<59){ + //incrementing seconds + s.innerText = (seconds + 1).toString(); + } + else if (seconds==59){ + // time is x: y: 59 so the next time should be x:y+1:00 + s.innerText = "00"; + if(minutes<=8){ + // if minutes <=8 it must start with a zero + m.innerText = "0" + (minutes+1).toString(); + } + else{ + // incrementing minutes + m.innerText = (minutes + 1).toString(); + } + } + // recursively calling startTimer with a delay of one second + setTimeout(startTimer,1000); + } + } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Stopwatch/styles.css b/src/app/(category)/javascript/(projects)/stopwatch/styles.css similarity index 94% rename from Vanilla-JS-Projects/Basic/Stopwatch/styles.css rename to src/app/(category)/javascript/(projects)/stopwatch/styles.css index 99295c22..9484e739 100644 --- a/Vanilla-JS-Projects/Basic/Stopwatch/styles.css +++ b/src/app/(category)/javascript/(projects)/stopwatch/styles.css @@ -1,68 +1,68 @@ -body{ - background: #3c3ab4; - background: linear-gradient(90deg, #3c3ab4 21%, #da1151 87%); - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; -} - -.main{ - background-color: rgba(0, 0, 0, 0.3); - width: 75%; - height: 300px; - margin: 100px auto; - border-radius: 20px; -} - -h1{ - color: white; - opacity: 0.9; - font-size: 5rem; - text-align: center; -} - -h2{ - font-size: 7rem; - color: white; - opacity: 0.8; - margin: 0 auto; - text-align: center; -} - -.main div{ - display: flex; - margin: 2rem auto; - justify-content: space-around; -} - -button{ - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 1.5rem; - border: none; - border-radius: 2rem; - padding: 0.5rem 1.5rem; - background-color: rgba(255,255,255,0.9); - box-shadow: 0px 0px 5px 7px white; -} - - - -/* responsiveness */ - -@media (max-width: 800px){ - .main{ - height: 250px; - } - h2{ - font-size: 6rem; - } - -} - -@media (max-width: 690px){ - h2{ - font-size: 5rem; - } - .main div{ - flex-wrap: wrap; - align-items: center; - } +body{ + background: #3c3ab4; + background: linear-gradient(90deg, #3c3ab4 21%, #da1151 87%); + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; +} + +.main{ + background-color: rgba(0, 0, 0, 0.3); + width: 75%; + height: 300px; + margin: 100px auto; + border-radius: 20px; +} + +h1{ + color: white; + opacity: 0.9; + font-size: 5rem; + text-align: center; +} + +h2{ + font-size: 7rem; + color: white; + opacity: 0.8; + margin: 0 auto; + text-align: center; +} + +.main div{ + display: flex; + margin: 2rem auto; + justify-content: space-around; +} + +button{ + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + font-size: 1.5rem; + border: none; + border-radius: 2rem; + padding: 0.5rem 1.5rem; + background-color: rgba(255,255,255,0.9); + box-shadow: 0px 0px 5px 7px white; +} + + + +/* responsiveness */ + +@media (max-width: 800px){ + .main{ + height: 250px; + } + h2{ + font-size: 6rem; + } + +} + +@media (max-width: 690px){ + h2{ + font-size: 5rem; + } + .main div{ + flex-wrap: wrap; + align-items: center; + } } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/Subsequence-Checker/README.md b/src/app/(category)/javascript/(projects)/subsequence-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Subsequence-Checker/README.md rename to src/app/(category)/javascript/(projects)/subsequence-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Subsequence-Checker/index.html b/src/app/(category)/javascript/(projects)/subsequence-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Subsequence-Checker/index.html rename to src/app/(category)/javascript/(projects)/subsequence-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Subsequence-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/subsequence-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Subsequence-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/subsequence-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Subsequence-Checker/script.js b/src/app/(category)/javascript/(projects)/subsequence-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Subsequence-Checker/script.js rename to src/app/(category)/javascript/(projects)/subsequence-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Subsequence-Checker/style.css b/src/app/(category)/javascript/(projects)/subsequence-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Subsequence-Checker/style.css rename to src/app/(category)/javascript/(projects)/subsequence-checker/style.css diff --git a/Vanilla-JS-Projects/Basic/Substring-Checker/README.md b/src/app/(category)/javascript/(projects)/substring-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Substring-Checker/README.md rename to src/app/(category)/javascript/(projects)/substring-checker/README.md diff --git a/Vanilla-JS-Projects/Basic/Substring-Checker/index.html b/src/app/(category)/javascript/(projects)/substring-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Substring-Checker/index.html rename to src/app/(category)/javascript/(projects)/substring-checker/index.html diff --git a/Vanilla-JS-Projects/Basic/Substring-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/substring-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Substring-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/substring-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Substring-Checker/script.js b/src/app/(category)/javascript/(projects)/substring-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Substring-Checker/script.js rename to src/app/(category)/javascript/(projects)/substring-checker/script.js diff --git a/Vanilla-JS-Projects/Basic/Substring-Checker/style.css b/src/app/(category)/javascript/(projects)/substring-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Substring-Checker/style.css rename to src/app/(category)/javascript/(projects)/substring-checker/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Game/README.md b/src/app/(category)/javascript/(projects)/sudoku-game/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Game/README.md rename to src/app/(category)/javascript/(projects)/sudoku-game/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Game/app.js b/src/app/(category)/javascript/(projects)/sudoku-game/app.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Game/app.js rename to src/app/(category)/javascript/(projects)/sudoku-game/app.js diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Game/index.html b/src/app/(category)/javascript/(projects)/sudoku-game/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Game/index.html rename to src/app/(category)/javascript/(projects)/sudoku-game/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Game/screenshot.webp b/src/app/(category)/javascript/(projects)/sudoku-game/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Game/screenshot.webp rename to src/app/(category)/javascript/(projects)/sudoku-game/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Game/style.css b/src/app/(category)/javascript/(projects)/sudoku-game/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Game/style.css rename to src/app/(category)/javascript/(projects)/sudoku-game/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Solver/Readme.md b/src/app/(category)/javascript/(projects)/sudoku-solver/Readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Solver/Readme.md rename to src/app/(category)/javascript/(projects)/sudoku-solver/Readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Solver/index.html b/src/app/(category)/javascript/(projects)/sudoku-solver/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Solver/index.html rename to src/app/(category)/javascript/(projects)/sudoku-solver/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Solver/screenshot.webp b/src/app/(category)/javascript/(projects)/sudoku-solver/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Solver/screenshot.webp rename to src/app/(category)/javascript/(projects)/sudoku-solver/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Solver/script.js b/src/app/(category)/javascript/(projects)/sudoku-solver/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Solver/script.js rename to src/app/(category)/javascript/(projects)/sudoku-solver/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Sudoku-Solver/style.css b/src/app/(category)/javascript/(projects)/sudoku-solver/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Sudoku-Solver/style.css rename to src/app/(category)/javascript/(projects)/sudoku-solver/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Synonym-Searcher/README.md b/src/app/(category)/javascript/(projects)/synonym-searcher/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Synonym-Searcher/README.md rename to src/app/(category)/javascript/(projects)/synonym-searcher/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Synonym-Searcher/app.js b/src/app/(category)/javascript/(projects)/synonym-searcher/app.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Synonym-Searcher/app.js rename to src/app/(category)/javascript/(projects)/synonym-searcher/app.js diff --git a/Vanilla-JS-Projects/Intermediate/Synonym-Searcher/assets/spinner.svg b/src/app/(category)/javascript/(projects)/synonym-searcher/assets/spinner.svg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Synonym-Searcher/assets/spinner.svg rename to src/app/(category)/javascript/(projects)/synonym-searcher/assets/spinner.svg diff --git a/Vanilla-JS-Projects/Intermediate/Synonym-Searcher/index.html b/src/app/(category)/javascript/(projects)/synonym-searcher/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Synonym-Searcher/index.html rename to src/app/(category)/javascript/(projects)/synonym-searcher/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Synonym-Searcher/main.css b/src/app/(category)/javascript/(projects)/synonym-searcher/main.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Synonym-Searcher/main.css rename to src/app/(category)/javascript/(projects)/synonym-searcher/main.css diff --git a/Vanilla-JS-Projects/Intermediate/Synonym-Searcher/screenshot.webp b/src/app/(category)/javascript/(projects)/synonym-searcher/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Synonym-Searcher/screenshot.webp rename to src/app/(category)/javascript/(projects)/synonym-searcher/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Task-Reminder/README.md b/src/app/(category)/javascript/(projects)/task-reminder/README.md similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Task-Reminder/README.md rename to src/app/(category)/javascript/(projects)/task-reminder/README.md index 7041ddd9..e8ddd015 100644 --- a/Vanilla-JS-Projects/Intermediate/Task-Reminder/README.md +++ b/src/app/(category)/javascript/(projects)/task-reminder/README.md @@ -1,91 +1,91 @@ -

💥 Task Reminder Application 💥

- - - -

Tech Stack Used 🎮

- - -
- - ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) - ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) - ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) - ![LocalStorage](https://img.shields.io/badge/LocalStorage-%23FF9900.svg?style=for-the-badge&logo=google-chrome&logoColor=white) - -
- -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
-

This Task Reminder Application helps you manage your tasks efficiently with features like task management, due date and time settings, priority levels, persistent storage, and responsive design.

-
- - - -## :zap: Features 🔥 - -- **Task Management**: Add, edit, and delete tasks. -- **Due Date and Time**: Set deadlines with date and time pickers. -- **Priority Levels**: Assign priority (Low, Medium, High) to tasks. -- **Persistent Storage**: Tasks are saved in local storage for persistence. -- **Responsive Design**: User-friendly interface optimized for various screen sizes. - - - -## :zap: How to run it? 🕹️ - -- Clone the repository to your local machine. -- Open the `index.html` file in your web browser to start using the application. - - - -## :zap: How to use 👨‍🏫 - -- **Adding Tasks**: - - Enter a task description in the input field. - - Use the date picker to select the due date. - - Use the 24-hour time picker to set the due time. - - Choose a priority level (Low, Medium, High) from the dropdown. - - Click the "Add Task" button to add the task to your list. - -- **Managing Tasks**: - - Mark tasks as completed by clicking the checkbox next to each task. - - Edit tasks by clicking on the task text and entering new text. - - Delete tasks by clicking the "Delete" button next to each task. - -- **Persistence**: - - Tasks are stored in the browser's local storage, ensuring they remain even after closing the browser. - - Refreshing the page or reopening the browser will retain your task list. - -- **Customization**: - - Modify `styles.css` to change the look and feel of the application. - - Extend `script.js` to add more features, such as reminders or notifications. - - - -## :zap: Screenshots 📸 - -![Screenshot](https://raw.githubusercontent.com/ananyag309/WebMasterLog_gssoc/Task-Reminder/Vanilla-JS-Projects/Intermediate/Task-Reminder/screenshot.webp) - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

Developed By Ananya Gupta 👦

-

- - - - - - -

- -

Happy Coding 🧑‍💻

- -

Show some  ❤️  by  🌟  this repository!

+

💥 Task Reminder Application 💥

+ + + +

Tech Stack Used 🎮

+ + +
+ + ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) + ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) + ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + ![LocalStorage](https://img.shields.io/badge/LocalStorage-%23FF9900.svg?style=for-the-badge&logo=google-chrome&logoColor=white) + +
+ +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
+

This Task Reminder Application helps you manage your tasks efficiently with features like task management, due date and time settings, priority levels, persistent storage, and responsive design.

+
+ + + +## :zap: Features 🔥 + +- **Task Management**: Add, edit, and delete tasks. +- **Due Date and Time**: Set deadlines with date and time pickers. +- **Priority Levels**: Assign priority (Low, Medium, High) to tasks. +- **Persistent Storage**: Tasks are saved in local storage for persistence. +- **Responsive Design**: User-friendly interface optimized for various screen sizes. + + + +## :zap: How to run it? 🕹️ + +- Clone the repository to your local machine. +- Open the `index.html` file in your web browser to start using the application. + + + +## :zap: How to use 👨‍🏫 + +- **Adding Tasks**: + - Enter a task description in the input field. + - Use the date picker to select the due date. + - Use the 24-hour time picker to set the due time. + - Choose a priority level (Low, Medium, High) from the dropdown. + - Click the "Add Task" button to add the task to your list. + +- **Managing Tasks**: + - Mark tasks as completed by clicking the checkbox next to each task. + - Edit tasks by clicking on the task text and entering new text. + - Delete tasks by clicking the "Delete" button next to each task. + +- **Persistence**: + - Tasks are stored in the browser's local storage, ensuring they remain even after closing the browser. + - Refreshing the page or reopening the browser will retain your task list. + +- **Customization**: + - Modify `styles.css` to change the look and feel of the application. + - Extend `script.js` to add more features, such as reminders or notifications. + + + +## :zap: Screenshots 📸 + +![Screenshot](https://raw.githubusercontent.com/ananyag309/WebMasterLog_gssoc/Task-Reminder/Vanilla-JS-Projects/Intermediate/Task-Reminder/screenshot.webp) + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

Developed By Ananya Gupta 👦

+

+ + + + + + +

+ +

Happy Coding 🧑‍💻

+ +

Show some  ❤️  by  🌟  this repository!

diff --git a/Vanilla-JS-Projects/Intermediate/Task-Reminder/index.html b/src/app/(category)/javascript/(projects)/task-reminder/index.html similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Task-Reminder/index.html rename to src/app/(category)/javascript/(projects)/task-reminder/index.html index a649cfd2..1a473782 100644 --- a/Vanilla-JS-Projects/Intermediate/Task-Reminder/index.html +++ b/src/app/(category)/javascript/(projects)/task-reminder/index.html @@ -1,34 +1,34 @@ - - - - - - Advanced Task Reminder - - - -
-
-

Task Reminder

-
-
-
- - - - - -
-
    -
    -
    -

    © 2024 Task Reminder. All rights reserved.

    -
    -
    - - - + + + + + + Advanced Task Reminder + + + +
    +
    +

    Task Reminder

    +
    +
    +
    + + + + + +
    +
      +
      +
      +

      © 2024 Task Reminder. All rights reserved.

      +
      +
      + + + diff --git a/Vanilla-JS-Projects/Intermediate/Task-Reminder/screenshot.webp b/src/app/(category)/javascript/(projects)/task-reminder/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Task-Reminder/screenshot.webp rename to src/app/(category)/javascript/(projects)/task-reminder/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Task-Reminder/script.js b/src/app/(category)/javascript/(projects)/task-reminder/script.js similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Task-Reminder/script.js rename to src/app/(category)/javascript/(projects)/task-reminder/script.js index 30d3bd5c..fcb5e755 100644 --- a/Vanilla-JS-Projects/Intermediate/Task-Reminder/script.js +++ b/src/app/(category)/javascript/(projects)/task-reminder/script.js @@ -1,116 +1,116 @@ -document.addEventListener('DOMContentLoaded', () => { - const addTaskBtn = document.getElementById('addTaskBtn'); - const taskInput = document.getElementById('task'); - const dueDateInput = document.getElementById('dueDate'); - const dueTimeInput = document.getElementById('dueTime'); - const priorityInput = document.getElementById('priority'); - const taskList = document.getElementById('taskList'); - - // Load tasks from local storage - loadTasks(); - - addTaskBtn.addEventListener('click', () => { - const taskText = taskInput.value.trim(); - const dueDate = dueDateInput.value; - const dueTime = dueTimeInput.value; - const priority = priorityInput.value; - if (taskText && dueDate && dueTime && priority) { - const task = { - text: taskText, - dueDateTime: new Date(`${dueDate}T${dueTime}`).toISOString(), - priority, - completed: false - }; - addTask(task); - saveTask(task); - taskInput.value = ''; - dueDateInput.value = ''; - dueTimeInput.value = ''; - priorityInput.value = 'Low'; - } - }); - - taskList.addEventListener('click', (e) => { - if (e.target.tagName === 'BUTTON') { - const taskItem = e.target.parentElement; - const taskText = taskItem.querySelector('.task-text').textContent; - taskList.removeChild(taskItem); - removeTask(taskText); - } else if (e.target.tagName === 'INPUT') { - const taskItem = e.target.parentElement; - const taskText = taskItem.querySelector('.task-text').textContent; - const tasks = getTasks(); - const task = tasks.find(task => task.text === taskText); - task.completed = e.target.checked; - taskItem.querySelector('.task-text').style.textDecoration = task.completed ? 'line-through' : 'none'; - localStorage.setItem('tasks', JSON.stringify(tasks)); - } else if (e.target.tagName === 'P') { - editTask(e.target); - } - }); - - function addTask(task) { - const taskItem = document.createElement('li'); - taskItem.className = 'task-item'; - - const taskPara = document.createElement('p'); - taskPara.className = 'task-text'; - taskPara.textContent = task.text; - - const dueDatePara = document.createElement('p'); - dueDatePara.className = 'task-due-date'; - dueDatePara.textContent = new Date(task.dueDateTime).toLocaleString(); - - const priorityPara = document.createElement('p'); - priorityPara.className = 'task-priority'; - priorityPara.textContent = task.priority; - - const deleteBtn = document.createElement('button'); - deleteBtn.textContent = 'Delete'; - - taskItem.appendChild(taskPara); - taskItem.appendChild(dueDatePara); - taskItem.appendChild(priorityPara); - taskItem.appendChild(deleteBtn); - taskList.appendChild(taskItem); - } - - function saveTask(task) { - const tasks = getTasks(); - tasks.push(task); - localStorage.setItem('tasks', JSON.stringify(tasks)); - } - - function loadTasks() { - const tasks = getTasks(); - tasks.forEach(task => addTask(task)); - } - - function removeTask(taskText) { - let tasks = getTasks(); - tasks = tasks.filter(task => task.text !== taskText); - localStorage.setItem('tasks', JSON.stringify(tasks)); - } - - function editTask(taskElement) { - const newTaskText = prompt('Edit task:', taskElement.textContent); - if (newTaskText !== null) { - const oldTaskText = taskElement.textContent; - taskElement.textContent = newTaskText; - updateTask(oldTaskText, newTaskText); - } - } - - function updateTask(oldTaskText, newTaskText) { - let tasks = getTasks(); - const taskIndex = tasks.findIndex(task => task.text === oldTaskText); - if (taskIndex > -1) { - tasks[taskIndex].text = newTaskText; - localStorage.setItem('tasks', JSON.stringify(tasks)); - } - } - - function getTasks() { - return JSON.parse(localStorage.getItem('tasks')) || []; - } -}); +document.addEventListener('DOMContentLoaded', () => { + const addTaskBtn = document.getElementById('addTaskBtn'); + const taskInput = document.getElementById('task'); + const dueDateInput = document.getElementById('dueDate'); + const dueTimeInput = document.getElementById('dueTime'); + const priorityInput = document.getElementById('priority'); + const taskList = document.getElementById('taskList'); + + // Load tasks from local storage + loadTasks(); + + addTaskBtn.addEventListener('click', () => { + const taskText = taskInput.value.trim(); + const dueDate = dueDateInput.value; + const dueTime = dueTimeInput.value; + const priority = priorityInput.value; + if (taskText && dueDate && dueTime && priority) { + const task = { + text: taskText, + dueDateTime: new Date(`${dueDate}T${dueTime}`).toISOString(), + priority, + completed: false + }; + addTask(task); + saveTask(task); + taskInput.value = ''; + dueDateInput.value = ''; + dueTimeInput.value = ''; + priorityInput.value = 'Low'; + } + }); + + taskList.addEventListener('click', (e) => { + if (e.target.tagName === 'BUTTON') { + const taskItem = e.target.parentElement; + const taskText = taskItem.querySelector('.task-text').textContent; + taskList.removeChild(taskItem); + removeTask(taskText); + } else if (e.target.tagName === 'INPUT') { + const taskItem = e.target.parentElement; + const taskText = taskItem.querySelector('.task-text').textContent; + const tasks = getTasks(); + const task = tasks.find(task => task.text === taskText); + task.completed = e.target.checked; + taskItem.querySelector('.task-text').style.textDecoration = task.completed ? 'line-through' : 'none'; + localStorage.setItem('tasks', JSON.stringify(tasks)); + } else if (e.target.tagName === 'P') { + editTask(e.target); + } + }); + + function addTask(task) { + const taskItem = document.createElement('li'); + taskItem.className = 'task-item'; + + const taskPara = document.createElement('p'); + taskPara.className = 'task-text'; + taskPara.textContent = task.text; + + const dueDatePara = document.createElement('p'); + dueDatePara.className = 'task-due-date'; + dueDatePara.textContent = new Date(task.dueDateTime).toLocaleString(); + + const priorityPara = document.createElement('p'); + priorityPara.className = 'task-priority'; + priorityPara.textContent = task.priority; + + const deleteBtn = document.createElement('button'); + deleteBtn.textContent = 'Delete'; + + taskItem.appendChild(taskPara); + taskItem.appendChild(dueDatePara); + taskItem.appendChild(priorityPara); + taskItem.appendChild(deleteBtn); + taskList.appendChild(taskItem); + } + + function saveTask(task) { + const tasks = getTasks(); + tasks.push(task); + localStorage.setItem('tasks', JSON.stringify(tasks)); + } + + function loadTasks() { + const tasks = getTasks(); + tasks.forEach(task => addTask(task)); + } + + function removeTask(taskText) { + let tasks = getTasks(); + tasks = tasks.filter(task => task.text !== taskText); + localStorage.setItem('tasks', JSON.stringify(tasks)); + } + + function editTask(taskElement) { + const newTaskText = prompt('Edit task:', taskElement.textContent); + if (newTaskText !== null) { + const oldTaskText = taskElement.textContent; + taskElement.textContent = newTaskText; + updateTask(oldTaskText, newTaskText); + } + } + + function updateTask(oldTaskText, newTaskText) { + let tasks = getTasks(); + const taskIndex = tasks.findIndex(task => task.text === oldTaskText); + if (taskIndex > -1) { + tasks[taskIndex].text = newTaskText; + localStorage.setItem('tasks', JSON.stringify(tasks)); + } + } + + function getTasks() { + return JSON.parse(localStorage.getItem('tasks')) || []; + } +}); diff --git a/Vanilla-JS-Projects/Intermediate/Task-Reminder/styles.css b/src/app/(category)/javascript/(projects)/task-reminder/styles.css similarity index 94% rename from Vanilla-JS-Projects/Intermediate/Task-Reminder/styles.css rename to src/app/(category)/javascript/(projects)/task-reminder/styles.css index 5ca0f7c4..c8578402 100644 --- a/Vanilla-JS-Projects/Intermediate/Task-Reminder/styles.css +++ b/src/app/(category)/javascript/(projects)/task-reminder/styles.css @@ -1,137 +1,137 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; - font-family: 'Arial', sans-serif; -} - -body { - display: flex; - justify-content: center; - align-items: center; - height: 100vh; - background: linear-gradient(135deg, #2b2d42, #8d99ae); -} - -.container { - background-color: #edf2f4; - border-radius: 10px; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); - width: 450px; - padding: 20px; -} - -header { - text-align: center; - margin-bottom: 20px; -} - -header h1 { - font-size: 2em; - color: #2b2d42; -} - -main { - display: flex; - flex-direction: column; - align-items: center; -} - -.task-input { - display: flex; - flex-direction: column; - width: 100%; - margin-bottom: 20px; -} - -#task, #dueDate, #dueTime, #priority { - margin-bottom: 10px; - padding: 10px; - border: 1px solid #8d99ae; - border-radius: 5px; - outline: none; - width: 100%; -} - -#addTaskBtn { - padding: 10px; - border: none; - background-color: #2b2d42; - color: #edf2f4; - border-radius: 5px; - cursor: pointer; - transition: background-color 0.3s; -} - -#addTaskBtn:hover { - background-color: #8d99ae; -} - -#taskList { - list-style-type: none; - width: 100%; -} - -.task-item { - display: flex; - justify-content: space-between; - align-items: center; - background-color: #fff; - padding: 10px; - border: 1px solid #8d99ae; - border-radius: 5px; - margin-bottom: 10px; - transition: transform 0.3s; -} - -.task-item:hover { - transform: scale(1.02); -} - -.task-item p { - margin: 0; -} - -.task-item .task-text { - flex: 1; - margin-right: 10px; -} - -.task-item .task-completed { - margin-right: 10px; -} - -.task-item .task-due-date { - margin-right: 10px; - color: #ef233c; -} - -.task-item .task-priority { - margin-right: 10px; -} - -.task-item button { - background-color: #ef233c; - border: none; - color: #edf2f4; - padding: 5px 10px; - border-radius: 5px; - cursor: pointer; - transition: background-color 0.3s; -} - -.task-item button:hover { - background-color: #d90429; -} - -footer { - text-align: center; - margin-top: 20px; - color: #2b2d42; -} - -@media (max-width: 500px) { - .container { - width: 90%; - } -} +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Arial', sans-serif; +} + +body { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + background: linear-gradient(135deg, #2b2d42, #8d99ae); +} + +.container { + background-color: #edf2f4; + border-radius: 10px; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); + width: 450px; + padding: 20px; +} + +header { + text-align: center; + margin-bottom: 20px; +} + +header h1 { + font-size: 2em; + color: #2b2d42; +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +.task-input { + display: flex; + flex-direction: column; + width: 100%; + margin-bottom: 20px; +} + +#task, #dueDate, #dueTime, #priority { + margin-bottom: 10px; + padding: 10px; + border: 1px solid #8d99ae; + border-radius: 5px; + outline: none; + width: 100%; +} + +#addTaskBtn { + padding: 10px; + border: none; + background-color: #2b2d42; + color: #edf2f4; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s; +} + +#addTaskBtn:hover { + background-color: #8d99ae; +} + +#taskList { + list-style-type: none; + width: 100%; +} + +.task-item { + display: flex; + justify-content: space-between; + align-items: center; + background-color: #fff; + padding: 10px; + border: 1px solid #8d99ae; + border-radius: 5px; + margin-bottom: 10px; + transition: transform 0.3s; +} + +.task-item:hover { + transform: scale(1.02); +} + +.task-item p { + margin: 0; +} + +.task-item .task-text { + flex: 1; + margin-right: 10px; +} + +.task-item .task-completed { + margin-right: 10px; +} + +.task-item .task-due-date { + margin-right: 10px; + color: #ef233c; +} + +.task-item .task-priority { + margin-right: 10px; +} + +.task-item button { + background-color: #ef233c; + border: none; + color: #edf2f4; + padding: 5px 10px; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.3s; +} + +.task-item button:hover { + background-color: #d90429; +} + +footer { + text-align: center; + margin-top: 20px; + color: #2b2d42; +} + +@media (max-width: 500px) { + .container { + width: 90%; + } +} diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/Readme.md b/src/app/(category)/javascript/(projects)/tesla-website-clone/Readme.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/Readme.md rename to src/app/(category)/javascript/(projects)/tesla-website-clone/Readme.md diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Model-3.png b/src/app/(category)/javascript/(projects)/tesla-website-clone/img/Model-3.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Model-3.png rename to src/app/(category)/javascript/(projects)/tesla-website-clone/img/Model-3.png diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Model-S.png b/src/app/(category)/javascript/(projects)/tesla-website-clone/img/Model-S.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Model-S.png rename to src/app/(category)/javascript/(projects)/tesla-website-clone/img/Model-S.png diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Model-X.png b/src/app/(category)/javascript/(projects)/tesla-website-clone/img/Model-X.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Model-X.png rename to src/app/(category)/javascript/(projects)/tesla-website-clone/img/Model-X.png diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Model-Y.mp4 b/src/app/(category)/javascript/(projects)/tesla-website-clone/img/Model-Y.mp4 similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Model-Y.mp4 rename to src/app/(category)/javascript/(projects)/tesla-website-clone/img/Model-Y.mp4 diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Tesla-Logo.png b/src/app/(category)/javascript/(projects)/tesla-website-clone/img/Tesla-Logo.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/img/Tesla-Logo.png rename to src/app/(category)/javascript/(projects)/tesla-website-clone/img/Tesla-Logo.png diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/index.html b/src/app/(category)/javascript/(projects)/tesla-website-clone/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/index.html rename to src/app/(category)/javascript/(projects)/tesla-website-clone/index.html diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/screenshot.webp b/src/app/(category)/javascript/(projects)/tesla-website-clone/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/screenshot.webp rename to src/app/(category)/javascript/(projects)/tesla-website-clone/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/script.js b/src/app/(category)/javascript/(projects)/tesla-website-clone/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/script.js rename to src/app/(category)/javascript/(projects)/tesla-website-clone/script.js diff --git a/Vanilla-JS-Projects/Basic/Tesla-Website-Clone/style.css b/src/app/(category)/javascript/(projects)/tesla-website-clone/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Tesla-Website-Clone/style.css rename to src/app/(category)/javascript/(projects)/tesla-website-clone/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Text-Summarizer/README.md b/src/app/(category)/javascript/(projects)/text-summarizer/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-Summarizer/README.md rename to src/app/(category)/javascript/(projects)/text-summarizer/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Text-Summarizer/index.html b/src/app/(category)/javascript/(projects)/text-summarizer/index.html similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Text-Summarizer/index.html rename to src/app/(category)/javascript/(projects)/text-summarizer/index.html index 80bb4271..a147169e 100644 --- a/Vanilla-JS-Projects/Intermediate/Text-Summarizer/index.html +++ b/src/app/(category)/javascript/(projects)/text-summarizer/index.html @@ -1,36 +1,36 @@ - - - - - - Professional Text Summarizer - - - -
      -

      Text Summarizer

      -
      - - -
      - -
      - Word Count: 0 -
      - -
      -

      Summary

      -

      - -
      -
      - - - + + + + + + Professional Text Summarizer + + + +
      +

      Text Summarizer

      +
      + + +
      + +
      + Word Count: 0 +
      + +
      +

      Summary

      +

      + +
      +
      + + + diff --git a/Vanilla-JS-Projects/Intermediate/Text-Summarizer/screenshot.webp b/src/app/(category)/javascript/(projects)/text-summarizer/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-Summarizer/screenshot.webp rename to src/app/(category)/javascript/(projects)/text-summarizer/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Text-Summarizer/script.js b/src/app/(category)/javascript/(projects)/text-summarizer/script.js similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Text-Summarizer/script.js rename to src/app/(category)/javascript/(projects)/text-summarizer/script.js index 252890e9..325f240c 100644 --- a/Vanilla-JS-Projects/Intermediate/Text-Summarizer/script.js +++ b/src/app/(category)/javascript/(projects)/text-summarizer/script.js @@ -1,85 +1,85 @@ -document.getElementById('summarizeBtn').addEventListener('click', summarizeText); -document.getElementById('inputText').addEventListener('input', updateWordCount); -document.getElementById('exportBtn').addEventListener('click', exportSummary); -document.getElementById('language').addEventListener('change', updateLanguage); - -async function summarizeText() { - const inputText = document.getElementById('inputText').value; - const language = document.getElementById('language').value; - const translatedText = await translateText(inputText, language); - const summary = getSummary(translatedText); - displaySummary(summary); -} - -function updateWordCount() { - const inputText = document.getElementById('inputText').value; - const wordCount = inputText.trim().split(/\s+/).filter(word => word.length > 0).length; - document.getElementById('wordCount').textContent = `Word Count: ${wordCount}`; -} - -async function translateText(text, targetLanguage) { - if (targetLanguage === 'en') return text; - - const response = await fetch(`https://api.example.com/translate?text=${encodeURIComponent(text)}&target=${targetLanguage}`); - const data = await response.json(); - return data.translatedText; -} - -function getSummary(text) { - const sentences = text.split('. '); - const wordFrequencies = {}; - const sentenceScores = {}; - - sentences.forEach(sentence => { - const words = sentence.split(' '); - words.forEach(word => { - word = word.toLowerCase().replace(/[^a-z]/g, ''); - if (word) { - wordFrequencies[word] = (wordFrequencies[word] || 0) + 1; - } - }); - }); - - sentences.forEach(sentence => { - const words = sentence.split(' '); - let sentenceScore = 0; - words.forEach(word => { - word = word.toLowerCase().replace(/[^a-z]/g, ''); - if (wordFrequencies[word]) { - sentenceScore += wordFrequencies[word]; - } - }); - sentenceScores[sentence] = sentenceScore; - }); - - const summarySentences = Object.keys(sentenceScores) - .sort((a, b) => sentenceScores[b] - sentenceScores[a]) - .slice(0, Math.ceil(sentences.length / 3)) - .join('. '); - - return summarySentences; -} - -function displaySummary(summary) { - const summaryText = document.getElementById('summaryText'); - summaryText.textContent = summary; - summaryText.style.animation = 'none'; // Reset animation - summaryText.offsetHeight; // Trigger reflow - summaryText.style.animation = null; // Reapply animation - - const exportBtn = document.getElementById('exportBtn'); - if (summary) { - exportBtn.style.display = 'block'; - } else { - exportBtn.style.display = 'none'; - } -} - -function exportSummary() { - const summaryText = document.getElementById('summaryText').textContent; - const blob = new Blob([summaryText], { type: 'text/plain' }); - const link = document.createElement('a'); - link.href = URL.createObjectURL(blob); - link.download = 'summary.txt'; - link.click(); -} +document.getElementById('summarizeBtn').addEventListener('click', summarizeText); +document.getElementById('inputText').addEventListener('input', updateWordCount); +document.getElementById('exportBtn').addEventListener('click', exportSummary); +document.getElementById('language').addEventListener('change', updateLanguage); + +async function summarizeText() { + const inputText = document.getElementById('inputText').value; + const language = document.getElementById('language').value; + const translatedText = await translateText(inputText, language); + const summary = getSummary(translatedText); + displaySummary(summary); +} + +function updateWordCount() { + const inputText = document.getElementById('inputText').value; + const wordCount = inputText.trim().split(/\s+/).filter(word => word.length > 0).length; + document.getElementById('wordCount').textContent = `Word Count: ${wordCount}`; +} + +async function translateText(text, targetLanguage) { + if (targetLanguage === 'en') return text; + + const response = await fetch(`https://api.example.com/translate?text=${encodeURIComponent(text)}&target=${targetLanguage}`); + const data = await response.json(); + return data.translatedText; +} + +function getSummary(text) { + const sentences = text.split('. '); + const wordFrequencies = {}; + const sentenceScores = {}; + + sentences.forEach(sentence => { + const words = sentence.split(' '); + words.forEach(word => { + word = word.toLowerCase().replace(/[^a-z]/g, ''); + if (word) { + wordFrequencies[word] = (wordFrequencies[word] || 0) + 1; + } + }); + }); + + sentences.forEach(sentence => { + const words = sentence.split(' '); + let sentenceScore = 0; + words.forEach(word => { + word = word.toLowerCase().replace(/[^a-z]/g, ''); + if (wordFrequencies[word]) { + sentenceScore += wordFrequencies[word]; + } + }); + sentenceScores[sentence] = sentenceScore; + }); + + const summarySentences = Object.keys(sentenceScores) + .sort((a, b) => sentenceScores[b] - sentenceScores[a]) + .slice(0, Math.ceil(sentences.length / 3)) + .join('. '); + + return summarySentences; +} + +function displaySummary(summary) { + const summaryText = document.getElementById('summaryText'); + summaryText.textContent = summary; + summaryText.style.animation = 'none'; // Reset animation + summaryText.offsetHeight; // Trigger reflow + summaryText.style.animation = null; // Reapply animation + + const exportBtn = document.getElementById('exportBtn'); + if (summary) { + exportBtn.style.display = 'block'; + } else { + exportBtn.style.display = 'none'; + } +} + +function exportSummary() { + const summaryText = document.getElementById('summaryText').textContent; + const blob = new Blob([summaryText], { type: 'text/plain' }); + const link = document.createElement('a'); + link.href = URL.createObjectURL(blob); + link.download = 'summary.txt'; + link.click(); +} diff --git a/Vanilla-JS-Projects/Intermediate/Text-Summarizer/styles.css b/src/app/(category)/javascript/(projects)/text-summarizer/styles.css similarity index 94% rename from Vanilla-JS-Projects/Intermediate/Text-Summarizer/styles.css rename to src/app/(category)/javascript/(projects)/text-summarizer/styles.css index 18871f35..6ad38304 100644 --- a/Vanilla-JS-Projects/Intermediate/Text-Summarizer/styles.css +++ b/src/app/(category)/javascript/(projects)/text-summarizer/styles.css @@ -1,146 +1,146 @@ -@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap'); - -* { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -body { - font-family: 'Poppins', sans-serif; - display: flex; - justify-content: center; - align-items: center; - min-height: 100vh; - background-color: #E8F5FD; - padding: 20px; - color: #14171A; -} - -.container { - width: 100%; - max-width: 900px; - background: #FFFFFF; - padding: 30px; - border-radius: 15px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); - animation: fadeIn 1s ease-in-out; - text-align: center; -} - -h1 { - margin-bottom: 20px; - font-weight: 600; - font-size: 2.5em; - color: #1DA1F2; -} - -h2 { - margin-bottom: 10px; - font-weight: 400; - font-size: 1.5em; - color: #14171A; -} - -.language-selection { - margin-bottom: 20px; -} - -.language-selection label { - font-size: 1.2em; - color: #14171A; - margin-right: 10px; -} - -.language-selection select { - padding: 10px; - border: 2px solid #1DA1F2; - border-radius: 10px; - background: #E8F5FD; - color: #14171A; - font-size: 1em; - transition: background 0.3s, box-shadow 0.3s; -} - -.language-selection select:focus { - background: #DDEAF7; - outline: none; - box-shadow: 0 0 10px rgba(29, 161, 242, 0.5); -} - -textarea { - width: 100%; - height: 200px; - padding: 15px; - border: 2px solid #1DA1F2; - border-radius: 10px; - resize: none; - font-size: 16px; - margin-bottom: 10px; - background: #E8F5FD; - color: #14171A; - transition: background 0.3s, box-shadow 0.3s; -} - -textarea:focus { - background: #DDEAF7; - outline: none; - box-shadow: 0 0 10px rgba(29, 161, 242, 0.5); -} - -.info { - text-align: left; - margin-bottom: 20px; - font-size: 1.2em; - color: #657786; -} - -button { - padding: 15px 30px; - border: none; - border-radius: 10px; - background: #1DA1F2; - color: #FFFFFF; - font-size: 16px; - cursor: pointer; - transition: background 0.3s, transform 0.3s; - margin-top: 10px; -} - -button:hover { - background: #0A95DD; - transform: scale(1.1); -} - -button:active { - transform: scale(0.9); -} - -.output { - margin-top: 20px; - text-align: left; -} - -#summaryText { - background: #E8F5FD; - padding: 15px; - border-radius: 10px; - animation: slideIn 0.5s ease-out; - transition: background 0.3s; - color: #14171A; - border: 1px solid #1DA1F2; -} - -#summaryText:hover { - background: #DDEAF7; -} - -@keyframes fadeIn { - from { opacity: 0; transform: translateY(-20px); } - to { opacity: 1; transform: translateY(0); } -} - -@keyframes slideIn { - from { opacity: 0; transform: translateX(-20px); } - to { opacity: 1; transform: translateX(0); } -} +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap'); + +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +body { + font-family: 'Poppins', sans-serif; + display: flex; + justify-content: center; + align-items: center; + min-height: 100vh; + background-color: #E8F5FD; + padding: 20px; + color: #14171A; +} + +.container { + width: 100%; + max-width: 900px; + background: #FFFFFF; + padding: 30px; + border-radius: 15px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); + animation: fadeIn 1s ease-in-out; + text-align: center; +} + +h1 { + margin-bottom: 20px; + font-weight: 600; + font-size: 2.5em; + color: #1DA1F2; +} + +h2 { + margin-bottom: 10px; + font-weight: 400; + font-size: 1.5em; + color: #14171A; +} + +.language-selection { + margin-bottom: 20px; +} + +.language-selection label { + font-size: 1.2em; + color: #14171A; + margin-right: 10px; +} + +.language-selection select { + padding: 10px; + border: 2px solid #1DA1F2; + border-radius: 10px; + background: #E8F5FD; + color: #14171A; + font-size: 1em; + transition: background 0.3s, box-shadow 0.3s; +} + +.language-selection select:focus { + background: #DDEAF7; + outline: none; + box-shadow: 0 0 10px rgba(29, 161, 242, 0.5); +} + +textarea { + width: 100%; + height: 200px; + padding: 15px; + border: 2px solid #1DA1F2; + border-radius: 10px; + resize: none; + font-size: 16px; + margin-bottom: 10px; + background: #E8F5FD; + color: #14171A; + transition: background 0.3s, box-shadow 0.3s; +} + +textarea:focus { + background: #DDEAF7; + outline: none; + box-shadow: 0 0 10px rgba(29, 161, 242, 0.5); +} + +.info { + text-align: left; + margin-bottom: 20px; + font-size: 1.2em; + color: #657786; +} + +button { + padding: 15px 30px; + border: none; + border-radius: 10px; + background: #1DA1F2; + color: #FFFFFF; + font-size: 16px; + cursor: pointer; + transition: background 0.3s, transform 0.3s; + margin-top: 10px; +} + +button:hover { + background: #0A95DD; + transform: scale(1.1); +} + +button:active { + transform: scale(0.9); +} + +.output { + margin-top: 20px; + text-align: left; +} + +#summaryText { + background: #E8F5FD; + padding: 15px; + border-radius: 10px; + animation: slideIn 0.5s ease-out; + transition: background 0.3s; + color: #14171A; + border: 1px solid #1DA1F2; +} + +#summaryText:hover { + background: #DDEAF7; +} + +@keyframes fadeIn { + from { opacity: 0; transform: translateY(-20px); } + to { opacity: 1; transform: translateY(0); } +} + +@keyframes slideIn { + from { opacity: 0; transform: translateX(-20px); } + to { opacity: 1; transform: translateX(0); } +} diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/README.md b/src/app/(category)/javascript/(projects)/text-to-image-generator/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/README.md rename to src/app/(category)/javascript/(projects)/text-to-image-generator/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/index.html b/src/app/(category)/javascript/(projects)/text-to-image-generator/index.html similarity index 97% rename from Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/index.html rename to src/app/(category)/javascript/(projects)/text-to-image-generator/index.html index 73e23c5f..f31605c9 100644 --- a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/index.html +++ b/src/app/(category)/javascript/(projects)/text-to-image-generator/index.html @@ -1,39 +1,39 @@ - - - - - - - - - Text to Image Generator - - - -
      -
      -

      AI Image Generator


      -

      Write your prompt here to generate top-notch, stunningly detailed, high-definition images with the power of AI.

      -

      Example prompt: "Supreme Quality, Masterwork, Highly Intricate, High Resolution, 4K, Ultra HD, Detailed Shadows, Vivid Colors, Blended Fujifilm, Adorable, Joyful"

      -
      - - -
      - -
      -
      Generating...
      -
      -
      -
      - - - - - - - + + + + + + + + + Text to Image Generator + + + +
      +
      +

      AI Image Generator


      +

      Write your prompt here to generate top-notch, stunningly detailed, high-definition images with the power of AI.

      +

      Example prompt: "Supreme Quality, Masterwork, Highly Intricate, High Resolution, 4K, Ultra HD, Detailed Shadows, Vivid Colors, Blended Fujifilm, Adorable, Joyful"

      +
      + + +
      + +
      +
      Generating...
      +
      +
      +
      + + + + + + + \ No newline at end of file diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/particlesjs-config.json b/src/app/(category)/javascript/(projects)/text-to-image-generator/particlesjs-config.json similarity index 94% rename from Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/particlesjs-config.json rename to src/app/(category)/javascript/(projects)/text-to-image-generator/particlesjs-config.json index 6757a674..2966842b 100644 --- a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/particlesjs-config.json +++ b/src/app/(category)/javascript/(projects)/text-to-image-generator/particlesjs-config.json @@ -1,105 +1,105 @@ -{ - "particles": { - "number": { - "value": 99, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#f9f9f9" - }, - "shape": { - "type": "triangle", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 12 - } - }, - "opacity": { - "value": 0.7, - "random": true, - "anim": { - "enable": false, - "speed": 1, - "opacity_min": 0.1, - "sync": false - } - }, - "size": { - "value": 3, - "random": true, - "anim": { - "enable": false, - "speed": 40, - "size_min": 0.1, - "sync": false - } - }, - "line_linked": { - "enable": true, - "distance": 150, - "color": "#ffffff", - "opacity": 0.8, - "width": 1 - }, - "move": { - "enable": true, - "speed": 6, - "direction": "none", - "random": false, - "straight": false, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "window", - "events": { - "onhover": { - "enable": true, - "mode": "repulse" - }, - "onclick": { - "enable": true, - "mode": "repulse" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 400, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 400, - "size": 40, - "duration": 2, - "opacity": 8, - "speed": 3 - }, - "repulse": { - "distance": 200, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true +{ + "particles": { + "number": { + "value": 99, + "density": { + "enable": true, + "value_area": 800 + } + }, + "color": { + "value": "#f9f9f9" + }, + "shape": { + "type": "triangle", + "stroke": { + "width": 0, + "color": "#000000" + }, + "polygon": { + "nb_sides": 12 + } + }, + "opacity": { + "value": 0.7, + "random": true, + "anim": { + "enable": false, + "speed": 1, + "opacity_min": 0.1, + "sync": false + } + }, + "size": { + "value": 3, + "random": true, + "anim": { + "enable": false, + "speed": 40, + "size_min": 0.1, + "sync": false + } + }, + "line_linked": { + "enable": true, + "distance": 150, + "color": "#ffffff", + "opacity": 0.8, + "width": 1 + }, + "move": { + "enable": true, + "speed": 6, + "direction": "none", + "random": false, + "straight": false, + "out_mode": "out", + "bounce": false, + "attract": { + "enable": false, + "rotateX": 600, + "rotateY": 1200 + } + } + }, + "interactivity": { + "detect_on": "window", + "events": { + "onhover": { + "enable": true, + "mode": "repulse" + }, + "onclick": { + "enable": true, + "mode": "repulse" + }, + "resize": true + }, + "modes": { + "grab": { + "distance": 400, + "line_linked": { + "opacity": 1 + } + }, + "bubble": { + "distance": 400, + "size": 40, + "duration": 2, + "opacity": 8, + "speed": 3 + }, + "repulse": { + "distance": 200, + "duration": 0.4 + }, + "push": { + "particles_nb": 4 + }, + "remove": { + "particles_nb": 2 + } + } + }, + "retina_detect": true } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/screenshot.webp b/src/app/(category)/javascript/(projects)/text-to-image-generator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/screenshot.webp rename to src/app/(category)/javascript/(projects)/text-to-image-generator/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/script.js b/src/app/(category)/javascript/(projects)/text-to-image-generator/script.js similarity index 96% rename from Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/script.js rename to src/app/(category)/javascript/(projects)/text-to-image-generator/script.js index 6d52fc06..e7fb75ef 100644 --- a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/script.js +++ b/src/app/(category)/javascript/(projects)/text-to-image-generator/script.js @@ -1,87 +1,87 @@ -const apiKey = "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"; - -const maxImages = 4; // Number of images to generate for each prompt -let selectedImageNumber = null; - -// Function to generate a random number between min and max (inclusive) -function getRandomNumber(min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; -} - -// Function to disable the generate button during processing -function disableGenerateButton() { - document.getElementById("generate").disabled = true; -} - -// Function to enable the generate button after process -function enableGenerateButton() { - document.getElementById("generate").disabled = false; -} - -// Function to clear image grid -function clearImageGrid() { - const imageGrid = document.getElementById("image-grid"); - imageGrid.innerHTML = ""; -} - -// Function to generate images -async function generateImages(input) { - disableGenerateButton(); - clearImageGrid(); - - const loading = document.getElementById("loading"); - loading.style.display = "block"; - - const imageUrls = []; - - for (let i = 0; i < maxImages; i++) { - // Generate a random number between 1 and 10000 and append it to the prompt - const randomNumber = getRandomNumber(1, 10000); - const prompt = `${input} ${randomNumber}`; - // We added random number to prompt to create different results - const response = await fetch( - "https://api-inference.huggingface.co/models/prompthero/openjourney", - { - method: "POST", - headers: { - "Content-Type": "application/json", - "Authorization": `Bearer ${apiKey}`, - }, - body: JSON.stringify({ inputs: prompt }), - } - ); - - - if (!response.ok) { - alert("Failed to generate image!"); - } - - const blob = await response.blob(); - const imgUrl = URL.createObjectURL(blob); - imageUrls.push(imgUrl); - - const img = document.createElement("img"); - img.src = imgUrl; - img.alt = `art-${i + 1}`; - img.onclick = () => downloadImage(imgUrl, i); - document.getElementById("image-grid").appendChild(img); - } - - loading.style.display = "none"; - enableGenerateButton(); - - selectedImageNumber = null; // Reset selected image number -} - -document.getElementById("generate").addEventListener('click', () => { - const input = document.getElementById("user-prompt").value; - generateImages(input); -}); - -function downloadImage(imgUrl, imageNumber) { - const link = document.createElement("a"); - link.href = imgUrl; - // Set filename based on the selected image - link.download = `image-${imageNumber + 1}.jpg`; - link.click(); -} +const apiKey = "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"; + +const maxImages = 4; // Number of images to generate for each prompt +let selectedImageNumber = null; + +// Function to generate a random number between min and max (inclusive) +function getRandomNumber(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; +} + +// Function to disable the generate button during processing +function disableGenerateButton() { + document.getElementById("generate").disabled = true; +} + +// Function to enable the generate button after process +function enableGenerateButton() { + document.getElementById("generate").disabled = false; +} + +// Function to clear image grid +function clearImageGrid() { + const imageGrid = document.getElementById("image-grid"); + imageGrid.innerHTML = ""; +} + +// Function to generate images +async function generateImages(input) { + disableGenerateButton(); + clearImageGrid(); + + const loading = document.getElementById("loading"); + loading.style.display = "block"; + + const imageUrls = []; + + for (let i = 0; i < maxImages; i++) { + // Generate a random number between 1 and 10000 and append it to the prompt + const randomNumber = getRandomNumber(1, 10000); + const prompt = `${input} ${randomNumber}`; + // We added random number to prompt to create different results + const response = await fetch( + "https://api-inference.huggingface.co/models/prompthero/openjourney", + { + method: "POST", + headers: { + "Content-Type": "application/json", + "Authorization": `Bearer ${apiKey}`, + }, + body: JSON.stringify({ inputs: prompt }), + } + ); + + + if (!response.ok) { + alert("Failed to generate image!"); + } + + const blob = await response.blob(); + const imgUrl = URL.createObjectURL(blob); + imageUrls.push(imgUrl); + + const img = document.createElement("img"); + img.src = imgUrl; + img.alt = `art-${i + 1}`; + img.onclick = () => downloadImage(imgUrl, i); + document.getElementById("image-grid").appendChild(img); + } + + loading.style.display = "none"; + enableGenerateButton(); + + selectedImageNumber = null; // Reset selected image number +} + +document.getElementById("generate").addEventListener('click', () => { + const input = document.getElementById("user-prompt").value; + generateImages(input); +}); + +function downloadImage(imgUrl, imageNumber) { + const link = document.createElement("a"); + link.href = imgUrl; + // Set filename based on the selected image + link.download = `image-${imageNumber + 1}.jpg`; + link.click(); +} diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/styles.css b/src/app/(category)/javascript/(projects)/text-to-image-generator/styles.css similarity index 94% rename from Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/styles.css rename to src/app/(category)/javascript/(projects)/text-to-image-generator/styles.css index 94eb4980..b5325db6 100644 --- a/Vanilla-JS-Projects/Intermediate/Text-to-Image-Generator/styles.css +++ b/src/app/(category)/javascript/(projects)/text-to-image-generator/styles.css @@ -1,343 +1,343 @@ -@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap"); - -* { - font-family: "Poppins", sans-serif; -} - -.image-generator { - display: flex; - align-items: center; - justify-content: center; - @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap'); - position: relative; -} - -body { - background-image: linear-gradient(to right, #8e2de2, #4a00e0); -} - -#particles-js{ - position: absolute; - width: 100%; - height: 100%; -} - - -.container { - position: relative; - max-width: 40rem; - width: 100%; - margin: 0 auto; - margin-top: 100px; - padding: 20px; - color: #fff; - background: rgba(0, 0, 0, 0.44); - border-radius: 16px; - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); - backdrop-filter: blur(7.4px); - -webkit-backdrop-filter: blur(7.4px); - border: 1px solid rgba(0, 0, 0, 0.1); -} - -h1 { - font-size: 28px; - font-weight: 600; - margin-bottom: 15px; - text-align: center; -} - -p { - font-size: 14px; - color: #ccc; - line-height: 1.4rem; - text-align: justify; -} - -.gen-form { - margin-top: 20px; - display: flex; - gap: 10px; - width: 100%; -} - -input { - width: 80%; - border-radius: 5px; - outline: none; - border: none; - padding: 0 15px; - background-color: transparent; - color: #fff; - border: 1px solid #999; - transition: all 0.3s ease; -} - -input:hover, -input:focus { - border-color: #675afe; -} - -button { - width: 20%; - height: 36px; - color: #fff; - border: 1px solid #ccc; - background: #20232c; - cursor: pointer; - border-radius: 5px; - font-size: 0.9rem; - transition: all 0.3s ease; -} - -button:hover { - background: #675afe; - border-color: transparent; -} - -#loading { - display: none; - font-size: 18px; - margin: 10px 0; -} - -button:disabled, -button[disabled] { - border: 1px solid #999; - background-color: #ccc; - color: #666; - cursor: auto; -} - -.result { - margin-top: 10px; - width: 100%; - padding: 10px 0 0; - display: flex; - flex-direction: column; - align-items: center; -} - - -#image-grid { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 10px; - margin-bottom: 10px; - max-width: 80%; -} - -#image-grid img { - max-width: 100%; - border-radius: 10px; - cursor: pointer; - border: 2px solid transparent; - transition: all 0.3s ease; -} - -#image-grid img:hover { - border-color: #675afe; -} - -.image-generator::before { - content: ""; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - opacity: 0.5; - background: #121212; -} - -.image-generator .content { - position: relative; - color: #fff; - padding: 0 15px; - max-width: 760px; - text-align: center; -} - -.image-generator h1 { - font-size: 2.5rem; - font-weight: 700; -} - -.image-generator p { - margin-top: 10px; - font-size: 1.35rem; -} - -.image-generator .generate-form { - height: 56px; - padding: 6px; - display: flex; - margin-bottom: 15px; - background: #fff; - align-items: center; - border-radius: 30px; - margin-top: 45px; - justify-content: space-between; -} - -.generate-form .prompt-input { - width: 100%; - height: 100%; - outline: none; - padding: 0 17px; - border: none; - background: none; - font-size: 1rem; - border-radius: 30px; -} - -.generate-form .controls { - display: flex; - height: 100%; - gap: 15px; -} - -.generate-form .img-quantity { - outline: none; - border: none; - height: 44px; - background: none; - font-size: 1rem; -} - -.generate-form .generate-btn { - font-size: 1rem; - outline: none; - border: none; - font-weight: 500; - color: #fff; - cursor: pointer; - height: 100%; - padding: 0 25px; - border-radius: 30px; - background: #4949E7; -} - -.generate-form .generate-btn[disabled] { - opacity: 0.6; - pointer-events: none; -} - -.generate-form button:hover { - background: #1d1de2; -} - -.image-gallery { - display: flex; - gap: 15px; - padding: 0 15px; - flex-wrap: wrap; - justify-content: center; - margin: 50px auto; - max-width: 1250px; -} - -.image-gallery .img-card { - display: flex; - position: relative; - align-items: center; - justify-content: center; - background: #f2f2f2; - border-radius: 4px; - overflow: hidden; - aspect-ratio: 1 / 1; - width: 285px; -} - -.image-gallery .img-card img { - height: 100%; - width: 100%; - object-fit: cover; -} - -.image-gallery .img-card.loading img { - width: 80px; - height: 80px; -} - -.image-gallery .img-card .download-btn { - bottom: 15px; - right: 15px; - height: 36px; - width: 36px; - display: flex; - align-items: center; - justify-content: center; - text-decoration: none; - background: #fff; - border-radius: 50%; - position: absolute; - opacity: 0; - pointer-events: none; - transition: 0.2s ease; -} - -.image-gallery .img-card .download-btn img { - width: 14px; - height: 14px; -} - -.image-gallery .img-card:not(.loading):hover .download-btn { - opacity: 1; - pointer-events: auto; -} - -@media screen and (max-width: 760px) { - .image-generator { - height: 45vh; - padding-top: 30px; - align-items: flex-start; - } - - .image-generator h1 { - font-size: 1.8rem; - } - - .image-generator p { - font-size: 1rem; - } - - .image-generator .generate-form { - margin-top: 30px; - height: 52px; - display: block; - } - - .generate-form .controls { - height: 40px; - margin-top: 15px; - justify-content: end; - align-items: center; - } - - .generate-form .generate-btn[disabled] { - opacity: 1; - } - - .generate-form .img-quantity { - color: #fff; - } - - .generate-form .img-quantity option { - color: #000; - } - - .image-gallery { - margin-top: 20px; - } - - .image-gallery .img-card:not(.loading) .download-btn { - opacity: 1; - pointer-events: auto; - } -} - -@media screen and (max-width: 500px) { - .image-gallery .img-card { - width: 100%; - } +@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap"); + +* { + font-family: "Poppins", sans-serif; +} + +.image-generator { + display: flex; + align-items: center; + justify-content: center; + @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap'); + position: relative; +} + +body { + background-image: linear-gradient(to right, #8e2de2, #4a00e0); +} + +#particles-js{ + position: absolute; + width: 100%; + height: 100%; +} + + +.container { + position: relative; + max-width: 40rem; + width: 100%; + margin: 0 auto; + margin-top: 100px; + padding: 20px; + color: #fff; + background: rgba(0, 0, 0, 0.44); + border-radius: 16px; + box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); + backdrop-filter: blur(7.4px); + -webkit-backdrop-filter: blur(7.4px); + border: 1px solid rgba(0, 0, 0, 0.1); +} + +h1 { + font-size: 28px; + font-weight: 600; + margin-bottom: 15px; + text-align: center; +} + +p { + font-size: 14px; + color: #ccc; + line-height: 1.4rem; + text-align: justify; +} + +.gen-form { + margin-top: 20px; + display: flex; + gap: 10px; + width: 100%; +} + +input { + width: 80%; + border-radius: 5px; + outline: none; + border: none; + padding: 0 15px; + background-color: transparent; + color: #fff; + border: 1px solid #999; + transition: all 0.3s ease; +} + +input:hover, +input:focus { + border-color: #675afe; +} + +button { + width: 20%; + height: 36px; + color: #fff; + border: 1px solid #ccc; + background: #20232c; + cursor: pointer; + border-radius: 5px; + font-size: 0.9rem; + transition: all 0.3s ease; +} + +button:hover { + background: #675afe; + border-color: transparent; +} + +#loading { + display: none; + font-size: 18px; + margin: 10px 0; +} + +button:disabled, +button[disabled] { + border: 1px solid #999; + background-color: #ccc; + color: #666; + cursor: auto; +} + +.result { + margin-top: 10px; + width: 100%; + padding: 10px 0 0; + display: flex; + flex-direction: column; + align-items: center; +} + + +#image-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 10px; + margin-bottom: 10px; + max-width: 80%; +} + +#image-grid img { + max-width: 100%; + border-radius: 10px; + cursor: pointer; + border: 2px solid transparent; + transition: all 0.3s ease; +} + +#image-grid img:hover { + border-color: #675afe; +} + +.image-generator::before { + content: ""; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.5; + background: #121212; +} + +.image-generator .content { + position: relative; + color: #fff; + padding: 0 15px; + max-width: 760px; + text-align: center; +} + +.image-generator h1 { + font-size: 2.5rem; + font-weight: 700; +} + +.image-generator p { + margin-top: 10px; + font-size: 1.35rem; +} + +.image-generator .generate-form { + height: 56px; + padding: 6px; + display: flex; + margin-bottom: 15px; + background: #fff; + align-items: center; + border-radius: 30px; + margin-top: 45px; + justify-content: space-between; +} + +.generate-form .prompt-input { + width: 100%; + height: 100%; + outline: none; + padding: 0 17px; + border: none; + background: none; + font-size: 1rem; + border-radius: 30px; +} + +.generate-form .controls { + display: flex; + height: 100%; + gap: 15px; +} + +.generate-form .img-quantity { + outline: none; + border: none; + height: 44px; + background: none; + font-size: 1rem; +} + +.generate-form .generate-btn { + font-size: 1rem; + outline: none; + border: none; + font-weight: 500; + color: #fff; + cursor: pointer; + height: 100%; + padding: 0 25px; + border-radius: 30px; + background: #4949E7; +} + +.generate-form .generate-btn[disabled] { + opacity: 0.6; + pointer-events: none; +} + +.generate-form button:hover { + background: #1d1de2; +} + +.image-gallery { + display: flex; + gap: 15px; + padding: 0 15px; + flex-wrap: wrap; + justify-content: center; + margin: 50px auto; + max-width: 1250px; +} + +.image-gallery .img-card { + display: flex; + position: relative; + align-items: center; + justify-content: center; + background: #f2f2f2; + border-radius: 4px; + overflow: hidden; + aspect-ratio: 1 / 1; + width: 285px; +} + +.image-gallery .img-card img { + height: 100%; + width: 100%; + object-fit: cover; +} + +.image-gallery .img-card.loading img { + width: 80px; + height: 80px; +} + +.image-gallery .img-card .download-btn { + bottom: 15px; + right: 15px; + height: 36px; + width: 36px; + display: flex; + align-items: center; + justify-content: center; + text-decoration: none; + background: #fff; + border-radius: 50%; + position: absolute; + opacity: 0; + pointer-events: none; + transition: 0.2s ease; +} + +.image-gallery .img-card .download-btn img { + width: 14px; + height: 14px; +} + +.image-gallery .img-card:not(.loading):hover .download-btn { + opacity: 1; + pointer-events: auto; +} + +@media screen and (max-width: 760px) { + .image-generator { + height: 45vh; + padding-top: 30px; + align-items: flex-start; + } + + .image-generator h1 { + font-size: 1.8rem; + } + + .image-generator p { + font-size: 1rem; + } + + .image-generator .generate-form { + margin-top: 30px; + height: 52px; + display: block; + } + + .generate-form .controls { + height: 40px; + margin-top: 15px; + justify-content: end; + align-items: center; + } + + .generate-form .generate-btn[disabled] { + opacity: 1; + } + + .generate-form .img-quantity { + color: #fff; + } + + .generate-form .img-quantity option { + color: #000; + } + + .image-gallery { + margin-top: 20px; + } + + .image-gallery .img-card:not(.loading) .download-btn { + opacity: 1; + pointer-events: auto; + } +} + +@media screen and (max-width: 500px) { + .image-gallery .img-card { + width: 100%; + } } \ No newline at end of file diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Voice/download-removebg-preview.png b/src/app/(category)/javascript/(projects)/text-to-voice/download-removebg-preview.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Voice/download-removebg-preview.png rename to src/app/(category)/javascript/(projects)/text-to-voice/download-removebg-preview.png diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Voice/index.html b/src/app/(category)/javascript/(projects)/text-to-voice/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Voice/index.html rename to src/app/(category)/javascript/(projects)/text-to-voice/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Voice/readme.md b/src/app/(category)/javascript/(projects)/text-to-voice/readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Voice/readme.md rename to src/app/(category)/javascript/(projects)/text-to-voice/readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Voice/screenshot.webp b/src/app/(category)/javascript/(projects)/text-to-voice/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Voice/screenshot.webp rename to src/app/(category)/javascript/(projects)/text-to-voice/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Voice/script.js b/src/app/(category)/javascript/(projects)/text-to-voice/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Voice/script.js rename to src/app/(category)/javascript/(projects)/text-to-voice/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Voice/style.css b/src/app/(category)/javascript/(projects)/text-to-voice/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Voice/style.css rename to src/app/(category)/javascript/(projects)/text-to-voice/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Text-to-Voice/white-arrow-dropdown-list-down-world-wide-web-arrow-triangle-paper-rectangle-white-icons-thumbnail-removebg-preview.png b/src/app/(category)/javascript/(projects)/text-to-voice/white-arrow-dropdown-list-down-world-wide-web-arrow-triangle-paper-rectangle-white-icons-thumbnail-removebg-preview.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Text-to-Voice/white-arrow-dropdown-list-down-world-wide-web-arrow-triangle-paper-rectangle-white-icons-thumbnail-removebg-preview.png rename to src/app/(category)/javascript/(projects)/text-to-voice/white-arrow-dropdown-list-down-world-wide-web-arrow-triangle-paper-rectangle-white-icons-thumbnail-removebg-preview.png diff --git a/Vanilla-JS-Projects/Basic/Text-Translator/index.html b/src/app/(category)/javascript/(projects)/text-translator/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Text-Translator/index.html rename to src/app/(category)/javascript/(projects)/text-translator/index.html diff --git a/Vanilla-JS-Projects/Basic/Text-Translator/readme.md b/src/app/(category)/javascript/(projects)/text-translator/readme.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Text-Translator/readme.md rename to src/app/(category)/javascript/(projects)/text-translator/readme.md diff --git a/Vanilla-JS-Projects/Basic/Text-Translator/screenshot.webp b/src/app/(category)/javascript/(projects)/text-translator/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Text-Translator/screenshot.webp rename to src/app/(category)/javascript/(projects)/text-translator/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Text-Translator/script.js b/src/app/(category)/javascript/(projects)/text-translator/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Text-Translator/script.js rename to src/app/(category)/javascript/(projects)/text-translator/script.js diff --git a/Vanilla-JS-Projects/Basic/Text-Translator/style.css b/src/app/(category)/javascript/(projects)/text-translator/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Text-Translator/style.css rename to src/app/(category)/javascript/(projects)/text-translator/style.css diff --git a/Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/README.md b/src/app/(category)/javascript/(projects)/theme-cake-order-form/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/README.md rename to src/app/(category)/javascript/(projects)/theme-cake-order-form/README.md diff --git a/Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/cakes.jpg b/src/app/(category)/javascript/(projects)/theme-cake-order-form/cakes.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/cakes.jpg rename to src/app/(category)/javascript/(projects)/theme-cake-order-form/cakes.jpg diff --git a/Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/index.html b/src/app/(category)/javascript/(projects)/theme-cake-order-form/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/index.html rename to src/app/(category)/javascript/(projects)/theme-cake-order-form/index.html diff --git a/Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/screenshot.webp b/src/app/(category)/javascript/(projects)/theme-cake-order-form/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/screenshot.webp rename to src/app/(category)/javascript/(projects)/theme-cake-order-form/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/scripts.js b/src/app/(category)/javascript/(projects)/theme-cake-order-form/scripts.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/scripts.js rename to src/app/(category)/javascript/(projects)/theme-cake-order-form/scripts.js diff --git a/Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/styles.css b/src/app/(category)/javascript/(projects)/theme-cake-order-form/styles.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Theme-Cake-Order-Form/styles.css rename to src/app/(category)/javascript/(projects)/theme-cake-order-form/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/README.md b/src/app/(category)/javascript/(projects)/time-capsule-center/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/README.md rename to src/app/(category)/javascript/(projects)/time-capsule-center/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/index.html b/src/app/(category)/javascript/(projects)/time-capsule-center/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/index.html rename to src/app/(category)/javascript/(projects)/time-capsule-center/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/screenshot.webp b/src/app/(category)/javascript/(projects)/time-capsule-center/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/screenshot.webp rename to src/app/(category)/javascript/(projects)/time-capsule-center/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/script.js b/src/app/(category)/javascript/(projects)/time-capsule-center/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/script.js rename to src/app/(category)/javascript/(projects)/time-capsule-center/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/style.css b/src/app/(category)/javascript/(projects)/time-capsule-center/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Capsule-Center/style.css rename to src/app/(category)/javascript/(projects)/time-capsule-center/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Time-Watcher/README.md b/src/app/(category)/javascript/(projects)/time-watcher/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Watcher/README.md rename to src/app/(category)/javascript/(projects)/time-watcher/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Time-Watcher/index.html b/src/app/(category)/javascript/(projects)/time-watcher/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Watcher/index.html rename to src/app/(category)/javascript/(projects)/time-watcher/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Time-Watcher/screenshot.webp b/src/app/(category)/javascript/(projects)/time-watcher/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Watcher/screenshot.webp rename to src/app/(category)/javascript/(projects)/time-watcher/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Time-Watcher/script.js b/src/app/(category)/javascript/(projects)/time-watcher/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Watcher/script.js rename to src/app/(category)/javascript/(projects)/time-watcher/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Time-Watcher/style.css b/src/app/(category)/javascript/(projects)/time-watcher/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Time-Watcher/style.css rename to src/app/(category)/javascript/(projects)/time-watcher/style.css diff --git a/Vanilla-JS-Projects/Basic/To-Do-List/README.md b/src/app/(category)/javascript/(projects)/to-do-list/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/To-Do-List/README.md rename to src/app/(category)/javascript/(projects)/to-do-list/README.md diff --git a/Vanilla-JS-Projects/Basic/To-Do-List/index.html b/src/app/(category)/javascript/(projects)/to-do-list/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/To-Do-List/index.html rename to src/app/(category)/javascript/(projects)/to-do-list/index.html diff --git a/Vanilla-JS-Projects/Basic/To-Do-List/screenshot.webp b/src/app/(category)/javascript/(projects)/to-do-list/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/To-Do-List/screenshot.webp rename to src/app/(category)/javascript/(projects)/to-do-list/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/To-Do-List/script.js b/src/app/(category)/javascript/(projects)/to-do-list/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/To-Do-List/script.js rename to src/app/(category)/javascript/(projects)/to-do-list/script.js diff --git a/Vanilla-JS-Projects/Basic/To-Do-List/style.css b/src/app/(category)/javascript/(projects)/to-do-list/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/To-Do-List/style.css rename to src/app/(category)/javascript/(projects)/to-do-list/style.css diff --git a/Vanilla-JS-Projects/Basic/Travel-App/README.md b/src/app/(category)/javascript/(projects)/travel-app/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/README.md rename to src/app/(category)/javascript/(projects)/travel-app/README.md diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/Screenshot 2023-07-14 173347.png b/src/app/(category)/javascript/(projects)/travel-app/img/Screenshot 2023-07-14 173347.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/Screenshot 2023-07-14 173347.png rename to src/app/(category)/javascript/(projects)/travel-app/img/Screenshot 2023-07-14 173347.png diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/Screenshot 2023-07-14 173807.png b/src/app/(category)/javascript/(projects)/travel-app/img/Screenshot 2023-07-14 173807.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/Screenshot 2023-07-14 173807.png rename to src/app/(category)/javascript/(projects)/travel-app/img/Screenshot 2023-07-14 173807.png diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/Screenshot 2023-07-14 174151.png b/src/app/(category)/javascript/(projects)/travel-app/img/Screenshot 2023-07-14 174151.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/Screenshot 2023-07-14 174151.png rename to src/app/(category)/javascript/(projects)/travel-app/img/Screenshot 2023-07-14 174151.png diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-ajay-donga-2174656.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-ajay-donga-2174656.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-ajay-donga-2174656.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-ajay-donga-2174656.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-alex-azabache-3214958.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-alex-azabache-3214958.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-alex-azabache-3214958.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-alex-azabache-3214958.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-andrei-tanase-1271619.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-andrei-tanase-1271619.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-andrei-tanase-1271619.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-andrei-tanase-1271619.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-josh-hild-2422259.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-josh-hild-2422259.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-josh-hild-2422259.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-josh-hild-2422259.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-paulo-marcelo-martins-2412606.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-paulo-marcelo-martins-2412606.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-paulo-marcelo-martins-2412606.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-paulo-marcelo-martins-2412606.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-quang-nguyen-vinh-2132126.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-quang-nguyen-vinh-2132126.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-quang-nguyen-vinh-2132126.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-quang-nguyen-vinh-2132126.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-sam-kolder-2387871.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-sam-kolder-2387871.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-sam-kolder-2387871.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-sam-kolder-2387871.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-spencer-davis-4356144.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-spencer-davis-4356144.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-spencer-davis-4356144.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-spencer-davis-4356144.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-stijn-dijkstra-2499699.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-stijn-dijkstra-2499699.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-stijn-dijkstra-2499699.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-stijn-dijkstra-2499699.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/pexels-zakaria-boumliha-2827374.jpg b/src/app/(category)/javascript/(projects)/travel-app/img/pexels-zakaria-boumliha-2827374.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/pexels-zakaria-boumliha-2827374.jpg rename to src/app/(category)/javascript/(projects)/travel-app/img/pexels-zakaria-boumliha-2827374.jpg diff --git a/Vanilla-JS-Projects/Basic/Travel-App/img/video (1080p).mp4 b/src/app/(category)/javascript/(projects)/travel-app/img/video (1080p).mp4 similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/img/video (1080p).mp4 rename to src/app/(category)/javascript/(projects)/travel-app/img/video (1080p).mp4 diff --git a/Vanilla-JS-Projects/Basic/Travel-App/index.html b/src/app/(category)/javascript/(projects)/travel-app/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/index.html rename to src/app/(category)/javascript/(projects)/travel-app/index.html diff --git a/Vanilla-JS-Projects/Basic/Travel-App/screenshot.webp b/src/app/(category)/javascript/(projects)/travel-app/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/screenshot.webp rename to src/app/(category)/javascript/(projects)/travel-app/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Travel-App/styles.css b/src/app/(category)/javascript/(projects)/travel-app/styles.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Travel-App/styles.css rename to src/app/(category)/javascript/(projects)/travel-app/styles.css diff --git a/Vanilla-JS-Projects/Intermediate/Travel-Journal/README.md b/src/app/(category)/javascript/(projects)/travel-journal/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Travel-Journal/README.md rename to src/app/(category)/javascript/(projects)/travel-journal/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Travel-Journal/assets/background.jpg b/src/app/(category)/javascript/(projects)/travel-journal/assets/background.jpg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Travel-Journal/assets/background.jpg rename to src/app/(category)/javascript/(projects)/travel-journal/assets/background.jpg diff --git a/Vanilla-JS-Projects/Intermediate/Travel-Journal/index.html b/src/app/(category)/javascript/(projects)/travel-journal/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Travel-Journal/index.html rename to src/app/(category)/javascript/(projects)/travel-journal/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Travel-Journal/screenshot.webp b/src/app/(category)/javascript/(projects)/travel-journal/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Travel-Journal/screenshot.webp rename to src/app/(category)/javascript/(projects)/travel-journal/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Travel-Journal/script.js b/src/app/(category)/javascript/(projects)/travel-journal/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Travel-Journal/script.js rename to src/app/(category)/javascript/(projects)/travel-journal/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Travel-Journal/style.css b/src/app/(category)/javascript/(projects)/travel-journal/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Travel-Journal/style.css rename to src/app/(category)/javascript/(projects)/travel-journal/style.css diff --git a/Vanilla-JS-Projects/Advanced/Typing-Test/README.md b/src/app/(category)/javascript/(projects)/typing-test/README.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/Typing-Test/README.md rename to src/app/(category)/javascript/(projects)/typing-test/README.md diff --git a/Vanilla-JS-Projects/Advanced/Typing-Test/index.html b/src/app/(category)/javascript/(projects)/typing-test/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/Typing-Test/index.html rename to src/app/(category)/javascript/(projects)/typing-test/index.html diff --git a/Vanilla-JS-Projects/Advanced/Typing-Test/js/paragraph.js b/src/app/(category)/javascript/(projects)/typing-test/js/paragraph.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/Typing-Test/js/paragraph.js rename to src/app/(category)/javascript/(projects)/typing-test/js/paragraph.js diff --git a/Vanilla-JS-Projects/Advanced/Typing-Test/js/script.js b/src/app/(category)/javascript/(projects)/typing-test/js/script.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/Typing-Test/js/script.js rename to src/app/(category)/javascript/(projects)/typing-test/js/script.js diff --git a/Vanilla-JS-Projects/Advanced/Typing-Test/screenshot.webp b/src/app/(category)/javascript/(projects)/typing-test/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Typing-Test/screenshot.webp rename to src/app/(category)/javascript/(projects)/typing-test/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Typing-Test/style.css b/src/app/(category)/javascript/(projects)/typing-test/style.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/Typing-Test/style.css rename to src/app/(category)/javascript/(projects)/typing-test/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/README.md b/src/app/(category)/javascript/(projects)/valid-parenthesis-checker/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/README.md rename to src/app/(category)/javascript/(projects)/valid-parenthesis-checker/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/index.html b/src/app/(category)/javascript/(projects)/valid-parenthesis-checker/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/index.html rename to src/app/(category)/javascript/(projects)/valid-parenthesis-checker/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/screenshot.webp b/src/app/(category)/javascript/(projects)/valid-parenthesis-checker/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/screenshot.webp rename to src/app/(category)/javascript/(projects)/valid-parenthesis-checker/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/script.js b/src/app/(category)/javascript/(projects)/valid-parenthesis-checker/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/script.js rename to src/app/(category)/javascript/(projects)/valid-parenthesis-checker/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/style.css b/src/app/(category)/javascript/(projects)/valid-parenthesis-checker/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Valid-Parenthesis-Checker/style.css rename to src/app/(category)/javascript/(projects)/valid-parenthesis-checker/style.css diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/README.md b/src/app/(category)/javascript/(projects)/virtual-piano/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/README.md rename to src/app/(category)/javascript/(projects)/virtual-piano/README.md diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/image/background_image.jpg b/src/app/(category)/javascript/(projects)/virtual-piano/image/background_image.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/image/background_image.jpg rename to src/app/(category)/javascript/(projects)/virtual-piano/image/background_image.jpg diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/index.html b/src/app/(category)/javascript/(projects)/virtual-piano/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/index.html rename to src/app/(category)/javascript/(projects)/virtual-piano/index.html diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/screenshot.webp b/src/app/(category)/javascript/(projects)/virtual-piano/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/screenshot.webp rename to src/app/(category)/javascript/(projects)/virtual-piano/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/script.js b/src/app/(category)/javascript/(projects)/virtual-piano/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/script.js rename to src/app/(category)/javascript/(projects)/virtual-piano/script.js diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/styles.css b/src/app/(category)/javascript/(projects)/virtual-piano/styles.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/styles.css rename to src/app/(category)/javascript/(projects)/virtual-piano/styles.css diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/;.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/;.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/;.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/;.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/a.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/a.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/a.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/a.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/d.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/d.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/d.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/d.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/e.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/e.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/e.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/e.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/f.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/f.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/f.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/f.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/g.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/g.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/g.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/g.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/h.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/h.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/h.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/h.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/j.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/j.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/j.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/j.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/k.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/k.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/k.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/k.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/l.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/l.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/l.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/l.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/o.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/o.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/o.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/o.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/p.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/p.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/p.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/p.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/s.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/s.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/s.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/s.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/t.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/t.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/t.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/t.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/u.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/u.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/u.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/u.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/w.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/w.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/w.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/w.wav diff --git a/Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/y.wav b/src/app/(category)/javascript/(projects)/virtual-piano/tunes/y.wav similarity index 100% rename from Vanilla-JS-Projects/Basic/Virtual-Piano/tunes/y.wav rename to src/app/(category)/javascript/(projects)/virtual-piano/tunes/y.wav diff --git a/Vanilla-JS-Projects/Advanced/Vocabulary-Builder/README.md b/src/app/(category)/javascript/(projects)/vocabulary-builder/README.md similarity index 100% rename from Vanilla-JS-Projects/Advanced/Vocabulary-Builder/README.md rename to src/app/(category)/javascript/(projects)/vocabulary-builder/README.md diff --git a/Vanilla-JS-Projects/Advanced/Vocabulary-Builder/index.html b/src/app/(category)/javascript/(projects)/vocabulary-builder/index.html similarity index 100% rename from Vanilla-JS-Projects/Advanced/Vocabulary-Builder/index.html rename to src/app/(category)/javascript/(projects)/vocabulary-builder/index.html diff --git a/Vanilla-JS-Projects/Advanced/Vocabulary-Builder/screenshot.webp b/src/app/(category)/javascript/(projects)/vocabulary-builder/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Advanced/Vocabulary-Builder/screenshot.webp rename to src/app/(category)/javascript/(projects)/vocabulary-builder/screenshot.webp diff --git a/Vanilla-JS-Projects/Advanced/Vocabulary-Builder/script.js b/src/app/(category)/javascript/(projects)/vocabulary-builder/script.js similarity index 100% rename from Vanilla-JS-Projects/Advanced/Vocabulary-Builder/script.js rename to src/app/(category)/javascript/(projects)/vocabulary-builder/script.js diff --git a/Vanilla-JS-Projects/Advanced/Vocabulary-Builder/style.css b/src/app/(category)/javascript/(projects)/vocabulary-builder/style.css similarity index 100% rename from Vanilla-JS-Projects/Advanced/Vocabulary-Builder/style.css rename to src/app/(category)/javascript/(projects)/vocabulary-builder/style.css diff --git a/Vanilla-JS-Projects/Basic/Vowel-Counter/README.md b/src/app/(category)/javascript/(projects)/vowel-counter/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Vowel-Counter/README.md rename to src/app/(category)/javascript/(projects)/vowel-counter/README.md diff --git a/Vanilla-JS-Projects/Basic/Vowel-Counter/index.html b/src/app/(category)/javascript/(projects)/vowel-counter/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Vowel-Counter/index.html rename to src/app/(category)/javascript/(projects)/vowel-counter/index.html diff --git a/Vanilla-JS-Projects/Basic/Vowel-Counter/screenshot.webp b/src/app/(category)/javascript/(projects)/vowel-counter/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Vowel-Counter/screenshot.webp rename to src/app/(category)/javascript/(projects)/vowel-counter/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Vowel-Counter/script.js b/src/app/(category)/javascript/(projects)/vowel-counter/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Vowel-Counter/script.js rename to src/app/(category)/javascript/(projects)/vowel-counter/script.js diff --git a/Vanilla-JS-Projects/Basic/Vowel-Counter/style.css b/src/app/(category)/javascript/(projects)/vowel-counter/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Vowel-Counter/style.css rename to src/app/(category)/javascript/(projects)/vowel-counter/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/Images/404.png b/src/app/(category)/javascript/(projects)/weather-app/Images/404.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/Images/404.png rename to src/app/(category)/javascript/(projects)/weather-app/Images/404.png diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/Images/clear.png b/src/app/(category)/javascript/(projects)/weather-app/Images/clear.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/Images/clear.png rename to src/app/(category)/javascript/(projects)/weather-app/Images/clear.png diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/Images/cloud.png b/src/app/(category)/javascript/(projects)/weather-app/Images/cloud.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/Images/cloud.png rename to src/app/(category)/javascript/(projects)/weather-app/Images/cloud.png diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/Images/mist.png b/src/app/(category)/javascript/(projects)/weather-app/Images/mist.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/Images/mist.png rename to src/app/(category)/javascript/(projects)/weather-app/Images/mist.png diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/Images/rain.png b/src/app/(category)/javascript/(projects)/weather-app/Images/rain.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/Images/rain.png rename to src/app/(category)/javascript/(projects)/weather-app/Images/rain.png diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/Images/snow.png b/src/app/(category)/javascript/(projects)/weather-app/Images/snow.png similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/Images/snow.png rename to src/app/(category)/javascript/(projects)/weather-app/Images/snow.png diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/app.js b/src/app/(category)/javascript/(projects)/weather-app/app.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/app.js rename to src/app/(category)/javascript/(projects)/weather-app/app.js diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/index.html b/src/app/(category)/javascript/(projects)/weather-app/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/index.html rename to src/app/(category)/javascript/(projects)/weather-app/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/readme.md b/src/app/(category)/javascript/(projects)/weather-app/readme.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/readme.md rename to src/app/(category)/javascript/(projects)/weather-app/readme.md diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/screenshot.webp b/src/app/(category)/javascript/(projects)/weather-app/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/screenshot.webp rename to src/app/(category)/javascript/(projects)/weather-app/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Weather-App/style.css b/src/app/(category)/javascript/(projects)/weather-app/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Weather-App/style.css rename to src/app/(category)/javascript/(projects)/weather-app/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Wheel-Selector/README.md b/src/app/(category)/javascript/(projects)/wheel-selector/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wheel-Selector/README.md rename to src/app/(category)/javascript/(projects)/wheel-selector/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Wheel-Selector/index.html b/src/app/(category)/javascript/(projects)/wheel-selector/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wheel-Selector/index.html rename to src/app/(category)/javascript/(projects)/wheel-selector/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Wheel-Selector/screenshot.webp b/src/app/(category)/javascript/(projects)/wheel-selector/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wheel-Selector/screenshot.webp rename to src/app/(category)/javascript/(projects)/wheel-selector/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Wheel-Selector/script.js b/src/app/(category)/javascript/(projects)/wheel-selector/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wheel-Selector/script.js rename to src/app/(category)/javascript/(projects)/wheel-selector/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Wheel-Selector/style.css b/src/app/(category)/javascript/(projects)/wheel-selector/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wheel-Selector/style.css rename to src/app/(category)/javascript/(projects)/wheel-selector/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/README.md b/src/app/(category)/javascript/(projects)/wikipedia-clone/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/README.md rename to src/app/(category)/javascript/(projects)/wikipedia-clone/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/index.html b/src/app/(category)/javascript/(projects)/wikipedia-clone/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/index.html rename to src/app/(category)/javascript/(projects)/wikipedia-clone/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/screenshot.webp b/src/app/(category)/javascript/(projects)/wikipedia-clone/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/screenshot.webp rename to src/app/(category)/javascript/(projects)/wikipedia-clone/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/script.js b/src/app/(category)/javascript/(projects)/wikipedia-clone/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/script.js rename to src/app/(category)/javascript/(projects)/wikipedia-clone/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/style.css b/src/app/(category)/javascript/(projects)/wikipedia-clone/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Wikipedia-Clone/style.css rename to src/app/(category)/javascript/(projects)/wikipedia-clone/style.css diff --git a/Vanilla-JS-Projects/Basic/Word-Counter/README.md b/src/app/(category)/javascript/(projects)/word-counter/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Word-Counter/README.md rename to src/app/(category)/javascript/(projects)/word-counter/README.md diff --git a/Vanilla-JS-Projects/Basic/Word-Counter/index.html b/src/app/(category)/javascript/(projects)/word-counter/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Word-Counter/index.html rename to src/app/(category)/javascript/(projects)/word-counter/index.html diff --git a/Vanilla-JS-Projects/Basic/Word-Counter/screenshot.webp b/src/app/(category)/javascript/(projects)/word-counter/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Word-Counter/screenshot.webp rename to src/app/(category)/javascript/(projects)/word-counter/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Word-Counter/script.js b/src/app/(category)/javascript/(projects)/word-counter/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Word-Counter/script.js rename to src/app/(category)/javascript/(projects)/word-counter/script.js diff --git a/Vanilla-JS-Projects/Basic/Word-Counter/style.css b/src/app/(category)/javascript/(projects)/word-counter/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Word-Counter/style.css rename to src/app/(category)/javascript/(projects)/word-counter/style.css diff --git a/Vanilla-JS-Projects/Basic/World-Clock/README.md b/src/app/(category)/javascript/(projects)/world-clock/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Clock/README.md rename to src/app/(category)/javascript/(projects)/world-clock/README.md diff --git a/Vanilla-JS-Projects/Basic/World-Clock/index.html b/src/app/(category)/javascript/(projects)/world-clock/index.html similarity index 96% rename from Vanilla-JS-Projects/Basic/World-Clock/index.html rename to src/app/(category)/javascript/(projects)/world-clock/index.html index 0bfb4452..c237dfb3 100644 --- a/Vanilla-JS-Projects/Basic/World-Clock/index.html +++ b/src/app/(category)/javascript/(projects)/world-clock/index.html @@ -1,23 +1,23 @@ - - - - - - World Clock - - - -
      - - - - -
      -
      - - - + + + + + + World Clock + + + +
      + + + + +
      +
      + + + diff --git a/Vanilla-JS-Projects/Basic/World-Clock/screenshot.webp b/src/app/(category)/javascript/(projects)/world-clock/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Clock/screenshot.webp rename to src/app/(category)/javascript/(projects)/world-clock/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/World-Clock/script.js b/src/app/(category)/javascript/(projects)/world-clock/script.js similarity index 96% rename from Vanilla-JS-Projects/Basic/World-Clock/script.js rename to src/app/(category)/javascript/(projects)/world-clock/script.js index 5725b9fd..05088bd8 100644 --- a/Vanilla-JS-Projects/Basic/World-Clock/script.js +++ b/src/app/(category)/javascript/(projects)/world-clock/script.js @@ -1,409 +1,409 @@ -const citiesData = [ - "Africa/Abidjan", - "Africa/Algiers", - "Africa/Bissau", - "Africa/Cairo", - "Africa/Casablanca", - "Africa/Ceuta", - "Africa/El_Aaiun", - "Africa/Johannesburg", - "Africa/Juba", - "Africa/Khartoum", - "Africa/Lagos", - "Africa/Maputo", - "Africa/Monrovia", - "Africa/Nairobi", - "Africa/Ndjamena", - "Africa/Sao_Tome", - "Africa/Tripoli", - "Africa/Tunis", - "Africa/Windhoek", - "America/Adak", - "America/Anchorage", - "America/Araguaina", - "America/Argentina/Buenos_Aires", - "America/Argentina/Catamarca", - "America/Argentina/Cordoba", - "America/Argentina/Jujuy", - "America/Argentina/La_Rioja", - "America/Argentina/Mendoza", - "America/Argentina/Rio_Gallegos", - "America/Argentina/Salta", - "America/Argentina/San_Juan", - "America/Argentina/San_Luis", - "America/Argentina/Tucuman", - "America/Argentina/Ushuaia", - "America/Asuncion", - "America/Bahia", - "America/Bahia_Banderas", - "America/Barbados", - "America/Belem", - "America/Belize", - "America/Boa_Vista", - "America/Bogota", - "America/Boise", - "America/Cambridge_Bay", - "America/Campo_Grande", - "America/Cancun", - "America/Caracas", - "America/Cayenne", - "America/Chicago", - "America/Chihuahua", - "America/Ciudad_Juarez", - "America/Costa_Rica", - "America/Cuiaba", - "America/Danmarkshavn", - "America/Dawson", - "America/Dawson_Creek", - "America/Denver", - "America/Detroit", - "America/Edmonton", - "America/Eirunepe", - "America/El_Salvador", - "America/Fort_Nelson", - "America/Fortaleza", - "America/Glace_Bay", - "America/Goose_Bay", - "America/Grand_Turk", - "America/Guatemala", - "America/Guayaquil", - "America/Guyana", - "America/Halifax", - "America/Havana", - "America/Hermosillo", - "America/Indiana/Indianapolis", - "America/Indiana/Knox", - "America/Indiana/Marengo", - "America/Indiana/Petersburg", - "America/Indiana/Tell_City", - "America/Indiana/Vevay", - "America/Indiana/Vincennes", - "America/Indiana/Winamac", - "America/Inuvik", - "America/Iqaluit", - "America/Jamaica", - "America/Juneau", - "America/Kentucky/Louisville", - "America/Kentucky/Monticello", - "America/La_Paz", - "America/Lima", - "America/Los_Angeles", - "America/Maceio", - "America/Managua", - "America/Manaus", - "America/Martinique", - "America/Matamoros", - "America/Mazatlan", - "America/Menominee", - "America/Merida", - "America/Metlakatla", - "America/Mexico_City", - "America/Miquelon", - "America/Moncton", - "America/Monterrey", - "America/Montevideo", - "America/New_York", - "America/Nome", - "America/Noronha", - "America/North_Dakota/Beulah", - "America/North_Dakota/Center", - "America/North_Dakota/New_Salem", - "America/Nuuk", - "America/Ojinaga", - "America/Panama", - "America/Paramaribo", - "America/Phoenix", - "America/Port-au-Prince", - "America/Porto_Velho", - "America/Puerto_Rico", - "America/Punta_Arenas", - "America/Rankin_Inlet", - "America/Recife", - "America/Regina", - "America/Resolute", - "America/Rio_Branco", - "America/Santarem", - "America/Santiago", - "America/Santo_Domingo", - "America/Sao_Paulo", - "America/Scoresbysund", - "America/Sitka", - "America/St_Johns", - "America/Swift_Current", - "America/Tegucigalpa", - "America/Thule", - "America/Tijuana", - "America/Toronto", - "America/Vancouver", - "America/Whitehorse", - "America/Winnipeg", - "America/Yakutat", - "Antarctica/Casey", - "Antarctica/Davis", - "Antarctica/Macquarie", - "Antarctica/Mawson", - "Antarctica/Palmer", - "Antarctica/Rothera", - "Antarctica/Troll", - "Asia/Almaty", - "Asia/Amman", - "Asia/Anadyr", - "Asia/Aqtau", - "Asia/Aqtobe", - "Asia/Ashgabat", - "Asia/Atyrau", - "Asia/Baghdad", - "Asia/Baku", - "Asia/Bangkok", - "Asia/Barnaul", - "Asia/Beirut", - "Asia/Bishkek", - "Asia/Chita", - "Asia/Choibalsan", - "Asia/Colombo", - "Asia/Damascus", - "Asia/Dhaka", - "Asia/Dili", - "Asia/Dubai", - "Asia/Dushanbe", - "Asia/Famagusta", - "Asia/Gaza", - "Asia/Hebron", - "Asia/Ho_Chi_Minh", - "Asia/Hong_Kong", - "Asia/Hovd", - "Asia/Irkutsk", - "Asia/Jakarta", - "Asia/Jayapura", - "Asia/Jerusalem", - "Asia/Kabul", - "Asia/Kamchatka", - "Asia/Karachi", - "Asia/Kathmandu", - "Asia/Khandyga", - "Asia/Kolkata", - "Asia/Krasnoyarsk", - "Asia/Kuching", - "Asia/Macau", - "Asia/Magadan", - "Asia/Makassar", - "Asia/Manila", - "Asia/Nicosia", - "Asia/Novokuznetsk", - "Asia/Novosibirsk", - "Asia/Omsk", - "Asia/Oral", - "Asia/Pontianak", - "Asia/Pyongyang", - "Asia/Qatar", - "Asia/Qostanay", - "Asia/Qyzylorda", - "Asia/Riyadh", - "Asia/Sakhalin", - "Asia/Samarkand", - "Asia/Seoul", - "Asia/Shanghai", - "Asia/Singapore", - "Asia/Srednekolymsk", - "Asia/Taipei", - "Asia/Tashkent", - "Asia/Tbilisi", - "Asia/Tehran", - "Asia/Thimphu", - "Asia/Tokyo", - "Asia/Tomsk", - "Asia/Ulaanbaatar", - "Asia/Urumqi", - "Asia/Ust-Nera", - "Asia/Vladivostok", - "Asia/Yakutsk", - "Asia/Yangon", - "Asia/Yekaterinburg", - "Asia/Yerevan", - "Atlantic/Azores", - "Atlantic/Bermuda", - "Atlantic/Canary", - "Atlantic/Cape_Verde", - "Atlantic/Faroe", - "Atlantic/Madeira", - "Atlantic/South_Georgia", - "Atlantic/Stanley", - "Australia/Adelaide", - "Australia/Brisbane", - "Australia/Broken_Hill", - "Australia/Darwin", - "Australia/Eucla", - "Australia/Hobart", - "Australia/Lindeman", - "Australia/Lord_Howe", - "Australia/Melbourne", - "Australia/Perth", - "Australia/Sydney", - "Europe/Andorra", - "Europe/Astrakhan", - "Europe/Athens", - "Europe/Belgrade", - "Europe/Berlin", - "Europe/Brussels", - "Europe/Bucharest", - "Europe/Budapest", - "Europe/Chisinau", - "Europe/Dublin", - "Europe/Gibraltar", - "Europe/Helsinki", - "Europe/Istanbul", - "Europe/Kaliningrad", - "Europe/Kirov", - "Europe/Kyiv", - "Europe/Lisbon", - "Europe/London", - "Europe/Madrid", - "Europe/Malta", - "Europe/Minsk", - "Europe/Moscow", - "Europe/Paris", - "Europe/Prague", - "Europe/Riga", - "Europe/Rome", - "Europe/Samara", - "Europe/Saratov", - "Europe/Simferopol", - "Europe/Sofia", - "Europe/Tallinn", - "Europe/Tirane", - "Europe/Ulyanovsk", - "Europe/Vienna", - "Europe/Vilnius", - "Europe/Volgograd", - "Europe/Warsaw", - "Europe/Zurich", - "Indian/Chagos", - "Indian/Maldives", - "Indian/Mauritius", - "Pacific/Apia", - "Pacific/Auckland", - "Pacific/Bougainville", - "Pacific/Chatham", - "Pacific/Easter", - "Pacific/Efate", - "Pacific/Fakaofo", - "Pacific/Fiji", - "Pacific/Galapagos", - "Pacific/Gambier", - "Pacific/Guadalcanal", - "Pacific/Guam", - "Pacific/Honolulu", - "Pacific/Kanton", - "Pacific/Kiritimati", - "Pacific/Kosrae", - "Pacific/Kwajalein", - "Pacific/Marquesas", - "Pacific/Nauru", - "Pacific/Niue", - "Pacific/Norfolk", - "Pacific/Noumea", - "Pacific/Pago_Pago", - "Pacific/Palau", - "Pacific/Pitcairn", - "Pacific/Port_Moresby", - "Pacific/Rarotonga", - "Pacific/Tahiti", - "Pacific/Tarawa", - "Pacific/Tongatapu" -]; - -const regionSelect = document.getElementById('regionSelect'); -const citySelect = document.getElementById('citySelect'); - -// Populate regions dropdown -const regions = Array.from(new Set(citiesData.map(city => city.split('/')[0]))); -regions.forEach(region => { - const option = document.createElement('option'); - option.value = region; - option.textContent = region; - regionSelect.appendChild(option); -}); - -// Update cities dropdown based on selected region -regionSelect.addEventListener('change', () => { - const selectedRegion = regionSelect.value; - const filteredCities = citiesData.filter(city => city.startsWith(selectedRegion)); - citySelect.innerHTML = ''; - filteredCities.forEach(city => { - const option = document.createElement('option'); - option.value = city; - option.textContent = city.split('/').pop().replace(/_/g, ' '); - citySelect.appendChild(option); - }); -}); - -// Function to fetch current time for a city -async function fetchTime(city) { - try { - const response = await fetch(`https://worldtimeapi.org/api/timezone/${city}`); - const data = await response.json(); - return data; - } catch (error) { - console.error('Error fetching time:', error); - return null; - } -} - -// Function to add a clock for a city -async function addClock(city) { - const clockContainer = document.getElementById('clockContainer'); - const clock = document.createElement('div'); - clock.classList.add('clock'); - - const cityName = document.createElement('span'); - cityName.textContent = city.split('/').pop().replace(/_/g, ' '); - cityName.classList.add('city'); - - const clockTime = document.createElement('span'); - clockTime.classList.add('time'); - - const timeZone = document.createElement('span'); - timeZone.classList.add('timezone'); - - clock.appendChild(cityName); - clock.appendChild(clockTime); - clock.appendChild(timeZone); - clockContainer.appendChild(clock); - - const updateTime = async () => { - const timeData = await fetchTime(city); - if (timeData) { - const currentTime = new Date(timeData.datetime); - const formatter = new Intl.DateTimeFormat('en-US', { - hour: '2-digit', - minute: '2-digit', - second: '2-digit', - timeZone: city, - timeZoneName: 'short' - }); - const formattedTime = formatter.formatToParts(currentTime); - const timeString = formattedTime - .filter(part => part.type === 'hour' || part.type === 'minute' || part.type === 'second') - .map(part => part.value) - .join(':'); - const timeZoneAbbr = formattedTime.find(part => part.type === 'timeZoneName').value; - clockTime.textContent = timeString; - timeZone.textContent = timeZoneAbbr; - } else { - clockTime.textContent = 'Error fetching time'; - timeZone.textContent = ''; - } - }; - - updateTime(); - setInterval(updateTime, 1000); -} - -// Event listener for form submission -document.getElementById('cityForm').addEventListener('submit', async (event) => { - event.preventDefault(); - const selectedCity = citySelect.value; - if (selectedCity) { - await addClock(selectedCity); - } +const citiesData = [ + "Africa/Abidjan", + "Africa/Algiers", + "Africa/Bissau", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/El_Aaiun", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Khartoum", + "Africa/Lagos", + "Africa/Maputo", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Asuncion", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Chicago", + "America/Chihuahua", + "America/Ciudad_Juarez", + "America/Costa_Rica", + "America/Cuiaba", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/New_York", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Nuuk", + "America/Ojinaga", + "America/Panama", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Johns", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Tijuana", + "America/Toronto", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Troll", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuching", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/South_Georgia", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Chisinau", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Helsinki", + "Europe/Istanbul", + "Europe/Kaliningrad", + "Europe/Kirov", + "Europe/Kyiv", + "Europe/Lisbon", + "Europe/London", + "Europe/Madrid", + "Europe/Malta", + "Europe/Minsk", + "Europe/Moscow", + "Europe/Paris", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Sofia", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zurich", + "Indian/Chagos", + "Indian/Maldives", + "Indian/Mauritius", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kanton", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Marquesas", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu" +]; + +const regionSelect = document.getElementById('regionSelect'); +const citySelect = document.getElementById('citySelect'); + +// Populate regions dropdown +const regions = Array.from(new Set(citiesData.map(city => city.split('/')[0]))); +regions.forEach(region => { + const option = document.createElement('option'); + option.value = region; + option.textContent = region; + regionSelect.appendChild(option); +}); + +// Update cities dropdown based on selected region +regionSelect.addEventListener('change', () => { + const selectedRegion = regionSelect.value; + const filteredCities = citiesData.filter(city => city.startsWith(selectedRegion)); + citySelect.innerHTML = ''; + filteredCities.forEach(city => { + const option = document.createElement('option'); + option.value = city; + option.textContent = city.split('/').pop().replace(/_/g, ' '); + citySelect.appendChild(option); + }); +}); + +// Function to fetch current time for a city +async function fetchTime(city) { + try { + const response = await fetch(`https://worldtimeapi.org/api/timezone/${city}`); + const data = await response.json(); + return data; + } catch (error) { + console.error('Error fetching time:', error); + return null; + } +} + +// Function to add a clock for a city +async function addClock(city) { + const clockContainer = document.getElementById('clockContainer'); + const clock = document.createElement('div'); + clock.classList.add('clock'); + + const cityName = document.createElement('span'); + cityName.textContent = city.split('/').pop().replace(/_/g, ' '); + cityName.classList.add('city'); + + const clockTime = document.createElement('span'); + clockTime.classList.add('time'); + + const timeZone = document.createElement('span'); + timeZone.classList.add('timezone'); + + clock.appendChild(cityName); + clock.appendChild(clockTime); + clock.appendChild(timeZone); + clockContainer.appendChild(clock); + + const updateTime = async () => { + const timeData = await fetchTime(city); + if (timeData) { + const currentTime = new Date(timeData.datetime); + const formatter = new Intl.DateTimeFormat('en-US', { + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + timeZone: city, + timeZoneName: 'short' + }); + const formattedTime = formatter.formatToParts(currentTime); + const timeString = formattedTime + .filter(part => part.type === 'hour' || part.type === 'minute' || part.type === 'second') + .map(part => part.value) + .join(':'); + const timeZoneAbbr = formattedTime.find(part => part.type === 'timeZoneName').value; + clockTime.textContent = timeString; + timeZone.textContent = timeZoneAbbr; + } else { + clockTime.textContent = 'Error fetching time'; + timeZone.textContent = ''; + } + }; + + updateTime(); + setInterval(updateTime, 1000); +} + +// Event listener for form submission +document.getElementById('cityForm').addEventListener('submit', async (event) => { + event.preventDefault(); + const selectedCity = citySelect.value; + if (selectedCity) { + await addClock(selectedCity); + } }); \ No newline at end of file diff --git a/Vanilla-JS-Projects/Basic/World-Clock/styles.css b/src/app/(category)/javascript/(projects)/world-clock/styles.css similarity index 94% rename from Vanilla-JS-Projects/Basic/World-Clock/styles.css rename to src/app/(category)/javascript/(projects)/world-clock/styles.css index 0cf7dce4..1cd2c29f 100644 --- a/Vanilla-JS-Projects/Basic/World-Clock/styles.css +++ b/src/app/(category)/javascript/(projects)/world-clock/styles.css @@ -1,84 +1,84 @@ -body { - font-family: Arial, sans-serif; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - min-height: 100vh; - margin: 0; - background-image: linear-gradient(to right, #8e2de2, #4a00e0); -} - -#cityForm { - margin-bottom: 20px; - width: 400px; - height: 100px; - padding: 20px; - background: white; - border-radius: 10px; - align-items: center; - display: flex; - justify-content: center; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.8); -} - -form { - display: flex; - align-items: center; -} - -select { - padding: 5px; - font-size: 14px; - border: 1.5px solid #1b1919; - border-radius: 5px; - margin-right: 10px; -} - -button { - padding: 5px 10px; - font-size: 14px; - background-color: #007bff; - color: #fff; - border: none; - border-radius: 5px; - cursor: pointer; -} - -button:hover { - background-color: #0056b3; -} - -body.clock-container { - display: flex; - flex-direction: row; - flex-wrap: wrap; /* Allow clocks to wrap to the next row */ - justify-content: center; - gap: 10px; - margin-top: 20px; -} - -.clock { - border: 1px solid black; - padding: 10px; - margin: 10px; - background: white; - border-radius: 5px; - box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); - cursor: pointer; - width: 150px; /* Set the width of each clock */ -} -.clock span { - margin-top: 5px; - font-weight: bold; - font-size: small; -} - -.time { - display: block; -} - -.timezone { - display: block; - font-size: small; -} +body { + font-family: Arial, sans-serif; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + min-height: 100vh; + margin: 0; + background-image: linear-gradient(to right, #8e2de2, #4a00e0); +} + +#cityForm { + margin-bottom: 20px; + width: 400px; + height: 100px; + padding: 20px; + background: white; + border-radius: 10px; + align-items: center; + display: flex; + justify-content: center; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.8); +} + +form { + display: flex; + align-items: center; +} + +select { + padding: 5px; + font-size: 14px; + border: 1.5px solid #1b1919; + border-radius: 5px; + margin-right: 10px; +} + +button { + padding: 5px 10px; + font-size: 14px; + background-color: #007bff; + color: #fff; + border: none; + border-radius: 5px; + cursor: pointer; +} + +button:hover { + background-color: #0056b3; +} + +body.clock-container { + display: flex; + flex-direction: row; + flex-wrap: wrap; /* Allow clocks to wrap to the next row */ + justify-content: center; + gap: 10px; + margin-top: 20px; +} + +.clock { + border: 1px solid black; + padding: 10px; + margin: 10px; + background: white; + border-radius: 5px; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + cursor: pointer; + width: 150px; /* Set the width of each clock */ +} +.clock span { + margin-top: 5px; + font-weight: bold; + font-size: small; +} + +.time { + display: block; +} + +.timezone { + display: block; + font-size: small; +} diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/Logo.webp b/src/app/(category)/javascript/(projects)/world-population/Assets/Logo.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/Logo.webp rename to src/app/(category)/javascript/(projects)/world-population/Assets/Logo.webp diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/WorldPopGraph.webp b/src/app/(category)/javascript/(projects)/world-population/Assets/WorldPopGraph.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/WorldPopGraph.webp rename to src/app/(category)/javascript/(projects)/world-population/Assets/WorldPopGraph.webp diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/blog-1.jpg b/src/app/(category)/javascript/(projects)/world-population/Assets/blog-1.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/blog-1.jpg rename to src/app/(category)/javascript/(projects)/world-population/Assets/blog-1.jpg diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/blog-2.jpg b/src/app/(category)/javascript/(projects)/world-population/Assets/blog-2.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/blog-2.jpg rename to src/app/(category)/javascript/(projects)/world-population/Assets/blog-2.jpg diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/blog-3.jpg b/src/app/(category)/javascript/(projects)/world-population/Assets/blog-3.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/blog-3.jpg rename to src/app/(category)/javascript/(projects)/world-population/Assets/blog-3.jpg diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/blog-4.jpg b/src/app/(category)/javascript/(projects)/world-population/Assets/blog-4.jpg similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/blog-4.jpg rename to src/app/(category)/javascript/(projects)/world-population/Assets/blog-4.jpg diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/pop_control.webp b/src/app/(category)/javascript/(projects)/world-population/Assets/pop_control.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/pop_control.webp rename to src/app/(category)/javascript/(projects)/world-population/Assets/pop_control.webp diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/web_script.js b/src/app/(category)/javascript/(projects)/world-population/Assets/web_script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/web_script.js rename to src/app/(category)/javascript/(projects)/world-population/Assets/web_script.js diff --git a/Vanilla-JS-Projects/Basic/World-Population/Assets/web_style.css b/src/app/(category)/javascript/(projects)/world-population/Assets/web_style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/Assets/web_style.css rename to src/app/(category)/javascript/(projects)/world-population/Assets/web_style.css diff --git a/Vanilla-JS-Projects/Basic/World-Population/README.md b/src/app/(category)/javascript/(projects)/world-population/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/README.md rename to src/app/(category)/javascript/(projects)/world-population/README.md diff --git a/Vanilla-JS-Projects/Basic/World-Population/index.html b/src/app/(category)/javascript/(projects)/world-population/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/index.html rename to src/app/(category)/javascript/(projects)/world-population/index.html diff --git a/Vanilla-JS-Projects/Basic/World-Population/predictPopulation.html b/src/app/(category)/javascript/(projects)/world-population/predictPopulation.html similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/predictPopulation.html rename to src/app/(category)/javascript/(projects)/world-population/predictPopulation.html diff --git a/Vanilla-JS-Projects/Basic/World-Population/screenshot.webp b/src/app/(category)/javascript/(projects)/world-population/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/screenshot.webp rename to src/app/(category)/javascript/(projects)/world-population/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/World-Population/script.js b/src/app/(category)/javascript/(projects)/world-population/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/World-Population/script.js rename to src/app/(category)/javascript/(projects)/world-population/script.js diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/README.md b/src/app/(category)/javascript/(projects)/youtube-clone/README.md similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/README.md rename to src/app/(category)/javascript/(projects)/youtube-clone/README.md diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/bell.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/bell.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/bell.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/bell.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/explore.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/explore.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/explore.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/explore.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/grid.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/grid.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/grid.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/grid.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/history.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/history.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/history.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/history.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/home.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/home.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/home.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/home.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/library.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/library.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/library.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/library.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/liked video.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/liked video.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/liked video.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/liked video.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/logo.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/logo.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/logo.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/logo.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/profile-pic.png b/src/app/(category)/javascript/(projects)/youtube-clone/img/profile-pic.png similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/profile-pic.png rename to src/app/(category)/javascript/(projects)/youtube-clone/img/profile-pic.png diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/search.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/search.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/search.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/search.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/show more.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/show more.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/show more.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/show more.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/subscription.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/subscription.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/subscription.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/subscription.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/video.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/video.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/video.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/video.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/watch-later.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/watch-later.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/watch-later.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/watch-later.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/img/your-video.PNG b/src/app/(category)/javascript/(projects)/youtube-clone/img/your-video.PNG similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/img/your-video.PNG rename to src/app/(category)/javascript/(projects)/youtube-clone/img/your-video.PNG diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/index.html b/src/app/(category)/javascript/(projects)/youtube-clone/index.html similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/index.html rename to src/app/(category)/javascript/(projects)/youtube-clone/index.html diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/screenshot.webp b/src/app/(category)/javascript/(projects)/youtube-clone/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/screenshot.webp rename to src/app/(category)/javascript/(projects)/youtube-clone/screenshot.webp diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/script.js b/src/app/(category)/javascript/(projects)/youtube-clone/script.js similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/script.js rename to src/app/(category)/javascript/(projects)/youtube-clone/script.js diff --git a/Vanilla-JS-Projects/Basic/Youtube-Clone/style.css b/src/app/(category)/javascript/(projects)/youtube-clone/style.css similarity index 100% rename from Vanilla-JS-Projects/Basic/Youtube-Clone/style.css rename to src/app/(category)/javascript/(projects)/youtube-clone/style.css diff --git a/Vanilla-JS-Projects/Intermediate/Zomato-Clone/README.md b/src/app/(category)/javascript/(projects)/zomato-clone/README.md similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Zomato-Clone/README.md rename to src/app/(category)/javascript/(projects)/zomato-clone/README.md diff --git a/Vanilla-JS-Projects/Intermediate/Zomato-Clone/images/cake-1971552_1280.jpg b/src/app/(category)/javascript/(projects)/zomato-clone/images/cake-1971552_1280.jpg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Zomato-Clone/images/cake-1971552_1280.jpg rename to src/app/(category)/javascript/(projects)/zomato-clone/images/cake-1971552_1280.jpg diff --git a/Vanilla-JS-Projects/Intermediate/Zomato-Clone/images/pizza-3010062_1280.jpg b/src/app/(category)/javascript/(projects)/zomato-clone/images/pizza-3010062_1280.jpg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Zomato-Clone/images/pizza-3010062_1280.jpg rename to src/app/(category)/javascript/(projects)/zomato-clone/images/pizza-3010062_1280.jpg diff --git a/Vanilla-JS-Projects/Intermediate/Zomato-Clone/images/strawberry-dessert-2191973_1280.jpg b/src/app/(category)/javascript/(projects)/zomato-clone/images/strawberry-dessert-2191973_1280.jpg similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Zomato-Clone/images/strawberry-dessert-2191973_1280.jpg rename to src/app/(category)/javascript/(projects)/zomato-clone/images/strawberry-dessert-2191973_1280.jpg diff --git a/Vanilla-JS-Projects/Intermediate/Zomato-Clone/index.html b/src/app/(category)/javascript/(projects)/zomato-clone/index.html similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Zomato-Clone/index.html rename to src/app/(category)/javascript/(projects)/zomato-clone/index.html diff --git a/Vanilla-JS-Projects/Intermediate/Zomato-Clone/screenshot.webp b/src/app/(category)/javascript/(projects)/zomato-clone/screenshot.webp similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Zomato-Clone/screenshot.webp rename to src/app/(category)/javascript/(projects)/zomato-clone/screenshot.webp diff --git a/Vanilla-JS-Projects/Intermediate/Zomato-Clone/script.js b/src/app/(category)/javascript/(projects)/zomato-clone/script.js similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Zomato-Clone/script.js rename to src/app/(category)/javascript/(projects)/zomato-clone/script.js diff --git a/Vanilla-JS-Projects/Intermediate/Zomato-Clone/style.css b/src/app/(category)/javascript/(projects)/zomato-clone/style.css similarity index 100% rename from Vanilla-JS-Projects/Intermediate/Zomato-Clone/style.css rename to src/app/(category)/javascript/(projects)/zomato-clone/style.css diff --git a/src/app/(category)/javascript/page.tsx b/src/app/(category)/javascript/page.tsx new file mode 100644 index 00000000..69e57da1 --- /dev/null +++ b/src/app/(category)/javascript/page.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import data from '../../../database/data.json'; +import { ProjectsData } from '../../../types'; +import ProjectCard from '../../../components/shared/ProjectCard'; + +const levels = ['beginner', 'intermediate', 'advanced'] as const; + +const page = () => { + const projects = data.javascript as ProjectsData; + + return ( +
      + {levels.map((level) => ( +
      + {projects[level].map((project, index) => ( + + ))} +
      + ))} +
      + ) +} + +export default page; \ No newline at end of file diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/.env.sample b/src/app/(category)/next/(projects)/attendance-tracking-app/.env.sample similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/.env.sample rename to src/app/(category)/next/(projects)/attendance-tracking-app/.env.sample diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/.eslintrc.json b/src/app/(category)/next/(projects)/attendance-tracking-app/.eslintrc.json similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/.eslintrc.json rename to src/app/(category)/next/(projects)/attendance-tracking-app/.eslintrc.json diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/README.md b/src/app/(category)/next/(projects)/attendance-tracking-app/README.md similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/README.md rename to src/app/(category)/next/(projects)/attendance-tracking-app/README.md diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/(home)/page.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/(home)/page.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/(home)/page.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/(home)/page.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/calendar/page.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/calendar/page.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/calendar/page.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/calendar/page.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/layout.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/layout.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/layout.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/layout.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/settings/dsa/page.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/settings/dsa/page.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/settings/dsa/page.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/settings/dsa/page.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/settings/layout.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/settings/layout.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/settings/layout.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/settings/layout.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/settings/page.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/settings/page.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/(root)/settings/page.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/(root)/settings/page.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/favicon.ico b/src/app/(category)/next/(projects)/attendance-tracking-app/app/favicon.ico similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/favicon.ico rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/favicon.ico diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/globals.css b/src/app/(category)/next/(projects)/attendance-tracking-app/app/globals.css similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/globals.css rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/globals.css diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/app/layout.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/app/layout.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/app/layout.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/app/layout.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/firebase/config.ts b/src/app/(category)/next/(projects)/attendance-tracking-app/firebase/config.ts similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/firebase/config.ts rename to src/app/(category)/next/(projects)/attendance-tracking-app/firebase/config.ts diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/next.config.mjs b/src/app/(category)/next/(projects)/attendance-tracking-app/next.config.mjs similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/next.config.mjs rename to src/app/(category)/next/(projects)/attendance-tracking-app/next.config.mjs diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/package.json b/src/app/(category)/next/(projects)/attendance-tracking-app/package.json similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/package.json rename to src/app/(category)/next/(projects)/attendance-tracking-app/package.json diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/postcss.config.mjs b/src/app/(category)/next/(projects)/attendance-tracking-app/postcss.config.mjs similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/postcss.config.mjs rename to src/app/(category)/next/(projects)/attendance-tracking-app/postcss.config.mjs diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/public/assets/images/bottom-float.png b/src/app/(category)/next/(projects)/attendance-tracking-app/public/assets/images/bottom-float.png similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/public/assets/images/bottom-float.png rename to src/app/(category)/next/(projects)/attendance-tracking-app/public/assets/images/bottom-float.png diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/public/assets/images/logo.png b/src/app/(category)/next/(projects)/attendance-tracking-app/public/assets/images/logo.png similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/public/assets/images/logo.png rename to src/app/(category)/next/(projects)/attendance-tracking-app/public/assets/images/logo.png diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/public/assets/images/profile.png b/src/app/(category)/next/(projects)/attendance-tracking-app/public/assets/images/profile.png similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/public/assets/images/profile.png rename to src/app/(category)/next/(projects)/attendance-tracking-app/public/assets/images/profile.png diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/public/assets/images/top-float.png b/src/app/(category)/next/(projects)/attendance-tracking-app/public/assets/images/top-float.png similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/public/assets/images/top-float.png rename to src/app/(category)/next/(projects)/attendance-tracking-app/public/assets/images/top-float.png diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/screenshot.webp b/src/app/(category)/next/(projects)/attendance-tracking-app/screenshot.webp similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/screenshot.webp rename to src/app/(category)/next/(projects)/attendance-tracking-app/screenshot.webp diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Calendar/Calendar.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Calendar/Calendar.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Calendar/Calendar.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Calendar/Calendar.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Footer.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Footer.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Footer.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Footer.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/EditModal.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/EditModal.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/EditModal.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/EditModal.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/Home.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/Home.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/Home.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/Home.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/Modal.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/Modal.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/Modal.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/Modal.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/SubCard.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/SubCard.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/SubCard.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/SubCard.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/percentages.css b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/percentages.css similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Home/percentages.css rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Home/percentages.css diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Landing.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Landing.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Landing.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Landing.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Navbar.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Navbar.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Navbar.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Navbar.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Settings/ActivityCard.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Settings/ActivityCard.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Settings/ActivityCard.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Settings/ActivityCard.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Settings/ReportCard.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Settings/ReportCard.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Settings/ReportCard.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Settings/ReportCard.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Settings/Settings.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Settings/Settings.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Settings/Settings.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Settings/Settings.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Settings/Stamps.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Settings/Stamps.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/Components/Settings/Stamps.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/Components/Settings/Stamps.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/svg-components/HomeSvg.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/svg-components/HomeSvg.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/svg-components/HomeSvg.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/svg-components/HomeSvg.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/src/svg-components/Logo.tsx b/src/app/(category)/next/(projects)/attendance-tracking-app/src/svg-components/Logo.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/src/svg-components/Logo.tsx rename to src/app/(category)/next/(projects)/attendance-tracking-app/src/svg-components/Logo.tsx diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/tailwind.config.ts b/src/app/(category)/next/(projects)/attendance-tracking-app/tailwind.config.ts similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/tailwind.config.ts rename to src/app/(category)/next/(projects)/attendance-tracking-app/tailwind.config.ts diff --git a/Next-JS-Projects/Advanced/Attendance-Tracking-App/tsconfig.json b/src/app/(category)/next/(projects)/attendance-tracking-app/tsconfig.json similarity index 100% rename from Next-JS-Projects/Advanced/Attendance-Tracking-App/tsconfig.json rename to src/app/(category)/next/(projects)/attendance-tracking-app/tsconfig.json diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/.eslintrc.json b/src/app/(category)/next/(projects)/breaking-news-app/.eslintrc.json similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/.eslintrc.json rename to src/app/(category)/next/(projects)/breaking-news-app/.eslintrc.json diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/README.md b/src/app/(category)/next/(projects)/breaking-news-app/README.md similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/README.md rename to src/app/(category)/next/(projects)/breaking-news-app/README.md diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/assets/images/newsarticle_placeholder.png b/src/app/(category)/next/(projects)/breaking-news-app/assets/images/newsarticle_placeholder.png similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/assets/images/newsarticle_placeholder.png rename to src/app/(category)/next/(projects)/breaking-news-app/assets/images/newsarticle_placeholder.png diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/components/NavBar.tsx b/src/app/(category)/next/(projects)/breaking-news-app/components/NavBar.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/components/NavBar.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/components/NavBar.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/components/NewsArticleEntry.tsx b/src/app/(category)/next/(projects)/breaking-news-app/components/NewsArticleEntry.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/components/NewsArticleEntry.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/components/NewsArticleEntry.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/components/NewsArticlesGrid.tsx b/src/app/(category)/next/(projects)/breaking-news-app/components/NewsArticlesGrid.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/components/NewsArticlesGrid.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/components/NewsArticlesGrid.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/models/NewsArticles.d.ts b/src/app/(category)/next/(projects)/breaking-news-app/models/NewsArticles.d.ts similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/models/NewsArticles.d.ts rename to src/app/(category)/next/(projects)/breaking-news-app/models/NewsArticles.d.ts diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/next.config.js b/src/app/(category)/next/(projects)/breaking-news-app/next.config.js similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/next.config.js rename to src/app/(category)/next/(projects)/breaking-news-app/next.config.js diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/package.json b/src/app/(category)/next/(projects)/breaking-news-app/package.json similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/package.json rename to src/app/(category)/next/(projects)/breaking-news-app/package.json diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/pages/404.tsx b/src/app/(category)/next/(projects)/breaking-news-app/pages/404.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/pages/404.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/pages/404.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/pages/500.tsx b/src/app/(category)/next/(projects)/breaking-news-app/pages/500.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/pages/500.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/pages/500.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/pages/_app.tsx b/src/app/(category)/next/(projects)/breaking-news-app/pages/_app.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/pages/_app.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/pages/_app.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/pages/_document.tsx b/src/app/(category)/next/(projects)/breaking-news-app/pages/_document.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/pages/_document.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/pages/_document.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/pages/api/search-news.ts b/src/app/(category)/next/(projects)/breaking-news-app/pages/api/search-news.ts similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/pages/api/search-news.ts rename to src/app/(category)/next/(projects)/breaking-news-app/pages/api/search-news.ts diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/pages/categories/[category].tsx b/src/app/(category)/next/(projects)/breaking-news-app/pages/categories/[category].tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/pages/categories/[category].tsx rename to src/app/(category)/next/(projects)/breaking-news-app/pages/categories/[category].tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/pages/index.tsx b/src/app/(category)/next/(projects)/breaking-news-app/pages/index.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/pages/index.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/pages/index.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/pages/search.tsx b/src/app/(category)/next/(projects)/breaking-news-app/pages/search.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/pages/search.tsx rename to src/app/(category)/next/(projects)/breaking-news-app/pages/search.tsx diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/public/favicon.ico b/src/app/(category)/next/(projects)/breaking-news-app/public/favicon.ico similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/public/favicon.ico rename to src/app/(category)/next/(projects)/breaking-news-app/public/favicon.ico diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/public/next.svg b/src/app/(category)/next/(projects)/breaking-news-app/public/next.svg similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/public/next.svg rename to src/app/(category)/next/(projects)/breaking-news-app/public/next.svg diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/public/vercel.svg b/src/app/(category)/next/(projects)/breaking-news-app/public/vercel.svg similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/public/vercel.svg rename to src/app/(category)/next/(projects)/breaking-news-app/public/vercel.svg diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/screenshot.webp b/src/app/(category)/next/(projects)/breaking-news-app/screenshot.webp similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/screenshot.webp rename to src/app/(category)/next/(projects)/breaking-news-app/screenshot.webp diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/styles/NewsArticleEntry.module.css b/src/app/(category)/next/(projects)/breaking-news-app/styles/NewsArticleEntry.module.css similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/styles/NewsArticleEntry.module.css rename to src/app/(category)/next/(projects)/breaking-news-app/styles/NewsArticleEntry.module.css diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/styles/app.module.css b/src/app/(category)/next/(projects)/breaking-news-app/styles/app.module.css similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/styles/app.module.css rename to src/app/(category)/next/(projects)/breaking-news-app/styles/app.module.css diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/styles/globals.css b/src/app/(category)/next/(projects)/breaking-news-app/styles/globals.css similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/styles/globals.css rename to src/app/(category)/next/(projects)/breaking-news-app/styles/globals.css diff --git a/Next-JS-Projects/Advanced/Breaking-News-App/tsconfig.json b/src/app/(category)/next/(projects)/breaking-news-app/tsconfig.json similarity index 100% rename from Next-JS-Projects/Advanced/Breaking-News-App/tsconfig.json rename to src/app/(category)/next/(projects)/breaking-news-app/tsconfig.json diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/README.md b/src/app/(category)/next/(projects)/gen-ai-quiz-application/README.md similarity index 97% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/README.md rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/README.md index 375f03aa..a04ce9e5 100644 --- a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/README.md +++ b/src/app/(category)/next/(projects)/gen-ai-quiz-application/README.md @@ -1,82 +1,82 @@ -

      💥 Gen AI Quiz Application with Gemini LLM in Next JS 💥

      - - - -

      Tech Stack Used 🎮

      - - -
      - -![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=tailwind&logoColor=white) -![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) -![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) -![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white) -![Nextjs](https://img.shields.io/badge/Nextjs-%2320232a.svg?style=for-the-badge&logo=nextjs&logoColor=%2361DAFB) -![Gemini](https://img.shields.io/badge/gemini-a08021?style=for-the-badge&logo=gemini&logoColor=%2361DAFB) - -
      - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -## :zap: Description 📃 - -
      -

      This project is a Generative AI-powered Quiz App, built with Next.js and Gemini AI. It allows users to take personalized quizzes generated by the AI, offering dynamic questions based on user preferences or subject knowledge. The app leverages the power of AI to create an engaging and unique learning experience for users by creating quizzes on-demand with real-time feedback.

      -
      - - - - -## :zap: How to run it? 🕹️ - -1. Clone this repository: - ```bash - git clone https://github.com/YOUR-GITHUB-USERNAME/GEN-AI-QUIZ-APP.git - ``` - -2. Navigate to the repository: - ```bash - cd Gen-AI-Quiz-Application - ``` - -3. Install dependencies: - ```bash - npm install - ``` -4. Run the development server: - ```bash - npm run dev - ``` - -5. Open http://localhost:3000 to view it in the browser. - - - - -## :zap: Screenshots 📸 - -![](https://github.com/user-attachments/assets/7a6208da-ac94-436a-9e0b-ea22e1935198) -![](https://github.com/user-attachments/assets/112bd38b-0c04-46ca-9411-98e955b81401) -![](https://github.com/user-attachments/assets/2b714796-1dbc-4ed9-b65e-6bea45456a29) - - -![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) - - - -

      Developed By J B Mugundh 👦

      -

      - - - - - - -

      - -

      Happy Coding 🧑‍💻

      - -

      Show some  ❤️  by  🌟  this repository!

      +

      💥 Gen AI Quiz Application with Gemini LLM in Next JS 💥

      + + + +

      Tech Stack Used 🎮

      + + +
      + +![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=tailwind&logoColor=white) +![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) +![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) +![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white) +![Nextjs](https://img.shields.io/badge/Nextjs-%2320232a.svg?style=for-the-badge&logo=nextjs&logoColor=%2361DAFB) +![Gemini](https://img.shields.io/badge/gemini-a08021?style=for-the-badge&logo=gemini&logoColor=%2361DAFB) + +
      + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +## :zap: Description 📃 + +
      +

      This project is a Generative AI-powered Quiz App, built with Next.js and Gemini AI. It allows users to take personalized quizzes generated by the AI, offering dynamic questions based on user preferences or subject knowledge. The app leverages the power of AI to create an engaging and unique learning experience for users by creating quizzes on-demand with real-time feedback.

      +
      + + + + +## :zap: How to run it? 🕹️ + +1. Clone this repository: + ```bash + git clone https://github.com/YOUR-GITHUB-USERNAME/GEN-AI-QUIZ-APP.git + ``` + +2. Navigate to the repository: + ```bash + cd Gen-AI-Quiz-Application + ``` + +3. Install dependencies: + ```bash + npm install + ``` +4. Run the development server: + ```bash + npm run dev + ``` + +5. Open http://localhost:3000 to view it in the browser. + + + + +## :zap: Screenshots 📸 + +![](https://github.com/user-attachments/assets/7a6208da-ac94-436a-9e0b-ea22e1935198) +![](https://github.com/user-attachments/assets/112bd38b-0c04-46ca-9411-98e955b81401) +![](https://github.com/user-attachments/assets/2b714796-1dbc-4ed9-b65e-6bea45456a29) + + +![Line](https://github.com/Avdhesh-Varshney/WebMasterLog/assets/114330097/4b78510f-a941-45f8-a9d5-80ed0705e847) + + + +

      Developed By J B Mugundh 👦

      +

      + + + + + + +

      + +

      Happy Coding 🧑‍💻

      + +

      Show some  ❤️  by  🌟  this repository!

      diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/components.json b/src/app/(category)/next/(projects)/gen-ai-quiz-application/components.json similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/components.json rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/components.json diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/next.config.js b/src/app/(category)/next/(projects)/gen-ai-quiz-application/next.config.js similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/next.config.js rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/next.config.js diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/package-lock.json b/src/app/(category)/next/(projects)/gen-ai-quiz-application/package-lock.json similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/package-lock.json rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/package-lock.json diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/package.json b/src/app/(category)/next/(projects)/gen-ai-quiz-application/package.json similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/package.json rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/package.json diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/postcss.config.js b/src/app/(category)/next/(projects)/gen-ai-quiz-application/postcss.config.js similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/postcss.config.js rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/postcss.config.js diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/public/logo.ico b/src/app/(category)/next/(projects)/gen-ai-quiz-application/public/logo.ico similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/public/logo.ico rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/public/logo.ico diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/public/next.svg b/src/app/(category)/next/(projects)/gen-ai-quiz-application/public/next.svg similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/public/next.svg rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/public/next.svg diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/public/vercel.svg b/src/app/(category)/next/(projects)/gen-ai-quiz-application/public/vercel.svg similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/public/vercel.svg rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/public/vercel.svg diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/screenshot.webp b/src/app/(category)/next/(projects)/gen-ai-quiz-application/screenshot.webp similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/screenshot.webp rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/screenshot.webp diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/app/favicon.ico b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/app/favicon.ico similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/app/favicon.ico rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/app/favicon.ico diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/app/globals.css b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/app/globals.css similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/app/globals.css rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/app/globals.css diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/app/layout.tsx b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/app/layout.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/app/layout.tsx rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/app/layout.tsx diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/app/page.tsx b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/app/page.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/app/page.tsx rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/app/page.tsx diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/categories.ts b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/categories.ts similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/categories.ts rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/categories.ts diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/components/ui/button.tsx b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/components/ui/button.tsx similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/components/ui/button.tsx rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/components/ui/button.tsx diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/lib/ai.ts b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/lib/ai.ts similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/lib/ai.ts rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/lib/ai.ts diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/lib/common.ts b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/lib/common.ts similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/lib/common.ts rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/lib/common.ts diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/lib/utils.ts b/src/app/(category)/next/(projects)/gen-ai-quiz-application/src/lib/utils.ts similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/src/lib/utils.ts rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/src/lib/utils.ts diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/tailwind.config.js b/src/app/(category)/next/(projects)/gen-ai-quiz-application/tailwind.config.js similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/tailwind.config.js rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/tailwind.config.js diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/tailwind.config.ts b/src/app/(category)/next/(projects)/gen-ai-quiz-application/tailwind.config.ts similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/tailwind.config.ts rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/tailwind.config.ts diff --git a/Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/tsconfig.json b/src/app/(category)/next/(projects)/gen-ai-quiz-application/tsconfig.json similarity index 100% rename from Next-JS-Projects/Advanced/Gen-AI-Quiz-Application/tsconfig.json rename to src/app/(category)/next/(projects)/gen-ai-quiz-application/tsconfig.json diff --git a/Next-JS-Projects/Intermediate/Quiz-App/README.md b/src/app/(category)/next/(projects)/quiz-app/README.md similarity index 100% rename from Next-JS-Projects/Intermediate/Quiz-App/README.md rename to src/app/(category)/next/(projects)/quiz-app/README.md diff --git a/Next-JS-Projects/Intermediate/Quiz-App/app/globals.css b/src/app/(category)/next/(projects)/quiz-app/app/globals.css similarity index 100% rename from Next-JS-Projects/Intermediate/Quiz-App/app/globals.css rename to src/app/(category)/next/(projects)/quiz-app/app/globals.css diff --git a/Next-JS-Projects/Intermediate/Quiz-App/app/layout.js b/src/app/(category)/next/(projects)/quiz-app/app/layout.js similarity index 100% rename from Next-JS-Projects/Intermediate/Quiz-App/app/layout.js rename to src/app/(category)/next/(projects)/quiz-app/app/layout.js diff --git a/Next-JS-Projects/Intermediate/Quiz-App/app/page.js b/src/app/(category)/next/(projects)/quiz-app/app/page.js similarity index 100% rename from Next-JS-Projects/Intermediate/Quiz-App/app/page.js rename to src/app/(category)/next/(projects)/quiz-app/app/page.js diff --git a/Next-JS-Projects/Intermediate/Quiz-App/app/quiz/[id]/page.js b/src/app/(category)/next/(projects)/quiz-app/app/quiz/[id]/page.js similarity index 97% rename from Next-JS-Projects/Intermediate/Quiz-App/app/quiz/[id]/page.js rename to src/app/(category)/next/(projects)/quiz-app/app/quiz/[id]/page.js index 850e3b17..d6ac565f 100644 --- a/Next-JS-Projects/Intermediate/Quiz-App/app/quiz/[id]/page.js +++ b/src/app/(category)/next/(projects)/quiz-app/app/quiz/[id]/page.js @@ -1,57 +1,57 @@ -"use client"; - -import { useState } from 'react'; -import { useRouter, useParams } from 'next/navigation'; -import questions from '../../../public/questions.json'; - -export default function Quiz() { - - const { id } = useParams(); - const quiz = questions.filter((q) => q.category === id); - const [currentQuestion, setCurrentQuestion] = useState(0); - const [score, setScore] = useState(0); - const router = useRouter(); - - const handleAnswerClick = (answer) => { - if (answer === quiz[currentQuestion].answer) { - setScore(score + 1); - } - - const nextQuestion = currentQuestion + 1; - if (nextQuestion < quiz.length) { - setCurrentQuestion(nextQuestion); - } else { - router.push(`/results?score=${score + 1}&total=${quiz.length}`) - } - }; - - return ( -
      -

      - Question {currentQuestion+1} of {quiz.length} -

      -

      - {quiz[currentQuestion].question} -

      -
      - {quiz[currentQuestion].options.map((option, index) => ( - - ))} -
      -
      - ) +"use client"; + +import { useState } from 'react'; +import { useRouter, useParams } from 'next/navigation'; +import questions from '../../../public/questions.json'; + +export default function Quiz() { + + const { id } = useParams(); + const quiz = questions.filter((q) => q.category === id); + const [currentQuestion, setCurrentQuestion] = useState(0); + const [score, setScore] = useState(0); + const router = useRouter(); + + const handleAnswerClick = (answer) => { + if (answer === quiz[currentQuestion].answer) { + setScore(score + 1); + } + + const nextQuestion = currentQuestion + 1; + if (nextQuestion < quiz.length) { + setCurrentQuestion(nextQuestion); + } else { + router.push(`/results?score=${score + 1}&total=${quiz.length}`) + } + }; + + return ( +
      +

      + Question {currentQuestion+1} of {quiz.length} +

      +

      + {quiz[currentQuestion].question} +

      +
      + {quiz[currentQuestion].options.map((option, index) => ( + + ))} +
      +
      + ) } \ No newline at end of file diff --git a/Next-JS-Projects/Intermediate/Quiz-App/app/results/page.js b/src/app/(category)/next/(projects)/quiz-app/app/results/page.js similarity index 96% rename from Next-JS-Projects/Intermediate/Quiz-App/app/results/page.js rename to src/app/(category)/next/(projects)/quiz-app/app/results/page.js index 2d2df360..23afeb33 100644 --- a/Next-JS-Projects/Intermediate/Quiz-App/app/results/page.js +++ b/src/app/(category)/next/(projects)/quiz-app/app/results/page.js @@ -1,36 +1,36 @@ -'use client'; - -import { useSearchParams } from 'next/navigation'; -import { useRouter } from 'next/navigation'; - -const ResultsPage = () => { - const searchParams = useSearchParams(); - const router = useRouter(); - const score = searchParams.get('score'); - const total = searchParams.get('total'); - - return ( -
      -

      - Your Score: {score}/{total} -

      -

      - Thanks for taking the quiz! -

      - -
      - ); -}; - -export default ResultsPage; +'use client'; + +import { useSearchParams } from 'next/navigation'; +import { useRouter } from 'next/navigation'; + +const ResultsPage = () => { + const searchParams = useSearchParams(); + const router = useRouter(); + const score = searchParams.get('score'); + const total = searchParams.get('total'); + + return ( +
      +

      + Your Score: {score}/{total} +

      +

      + Thanks for taking the quiz! +

      + +
      + ); +}; + +export default ResultsPage; diff --git a/Next-JS-Projects/Intermediate/Quiz-App/images/home.png b/src/app/(category)/next/(projects)/quiz-app/images/home.png similarity index 100% rename from Next-JS-Projects/Intermediate/Quiz-App/images/home.png rename to src/app/(category)/next/(projects)/quiz-app/images/home.png diff --git a/Next-JS-Projects/Intermediate/Quiz-App/images/quiz.png b/src/app/(category)/next/(projects)/quiz-app/images/quiz.png similarity index 100% rename from Next-JS-Projects/Intermediate/Quiz-App/images/quiz.png rename to src/app/(category)/next/(projects)/quiz-app/images/quiz.png diff --git a/Next-JS-Projects/Intermediate/Quiz-App/images/results.png b/src/app/(category)/next/(projects)/quiz-app/images/results.png similarity index 100% rename from Next-JS-Projects/Intermediate/Quiz-App/images/results.png rename to src/app/(category)/next/(projects)/quiz-app/images/results.png diff --git a/Next-JS-Projects/Advanced/Video-Call-App/jsconfig.json b/src/app/(category)/next/(projects)/quiz-app/jsconfig.json similarity index 100% rename from Next-JS-Projects/Advanced/Video-Call-App/jsconfig.json rename to src/app/(category)/next/(projects)/quiz-app/jsconfig.json diff --git a/Next-JS-Projects/Basic/Weather-Website/next.config.mjs b/src/app/(category)/next/(projects)/quiz-app/next.config.mjs similarity index 100% rename from Next-JS-Projects/Basic/Weather-Website/next.config.mjs rename to src/app/(category)/next/(projects)/quiz-app/next.config.mjs diff --git a/Next-JS-Projects/Intermediate/Quiz-App/package.json b/src/app/(category)/next/(projects)/quiz-app/package.json similarity index 99% rename from Next-JS-Projects/Intermediate/Quiz-App/package.json rename to src/app/(category)/next/(projects)/quiz-app/package.json index 508d3451..584fe839 100644 --- a/Next-JS-Projects/Intermediate/Quiz-App/package.json +++ b/src/app/(category)/next/(projects)/quiz-app/package.json @@ -17,4 +17,4 @@ "postcss": "^8", "tailwindcss": "^3.4.1" } -} +} diff --git a/Next-JS-Projects/Basic/Weather-Website/postcss.config.mjs b/src/app/(category)/next/(projects)/quiz-app/postcss.config.mjs similarity index 100% rename from Next-JS-Projects/Basic/Weather-Website/postcss.config.mjs rename to src/app/(category)/next/(projects)/quiz-app/postcss.config.mjs diff --git a/Next-JS-Projects/Intermediate/Quiz-App/public/categories.json b/src/app/(category)/next/(projects)/quiz-app/public/categories.json similarity index 96% rename from Next-JS-Projects/Intermediate/Quiz-App/public/categories.json rename to src/app/(category)/next/(projects)/quiz-app/public/categories.json index 6b077cfe..975c27a7 100644 --- a/Next-JS-Projects/Intermediate/Quiz-App/public/categories.json +++ b/src/app/(category)/next/(projects)/quiz-app/public/categories.json @@ -1,11 +1,11 @@ -[ - { "id": "html", "name": "HTML" }, - { "id": "css", "name": "CSS" }, - { "id": "javascript", "name": "JavaScript" }, - { "id": "python", "name": "Python" }, - { "id": "java", "name": "Java" }, - { "id": "react", "name": "React" }, - { "id": "php", "name": "PHP" }, - { "id": "c", "name": "C" } - ] +[ + { "id": "html", "name": "HTML" }, + { "id": "css", "name": "CSS" }, + { "id": "javascript", "name": "JavaScript" }, + { "id": "python", "name": "Python" }, + { "id": "java", "name": "Java" }, + { "id": "react", "name": "React" }, + { "id": "php", "name": "PHP" }, + { "id": "c", "name": "C" } + ] \ No newline at end of file diff --git a/Next-JS-Projects/Intermediate/Quiz-App/public/questions.json b/src/app/(category)/next/(projects)/quiz-app/public/questions.json similarity index 99% rename from Next-JS-Projects/Intermediate/Quiz-App/public/questions.json rename to src/app/(category)/next/(projects)/quiz-app/public/questions.json index f5be8242..966087e5 100644 --- a/Next-JS-Projects/Intermediate/Quiz-App/public/questions.json +++ b/src/app/(category)/next/(projects)/quiz-app/public/questions.json @@ -1,41 +1,41 @@ -[ - { "question": "What does HTML stand for?", "options": ["HyperText Markup Language", "HighText Machine Language", "Hyperlink and Text Markup Language", "None of the above"], "answer": "HyperText Markup Language", "category": "html" }, - { "question": "What is the correct HTML element for inserting a line break?", "options": ["", "", "
      ", ""], "answer": "
      ", "category": "html" }, - { "question": "Which HTML attribute specifies an alternate text for an image, if the image cannot be displayed?", "options": ["alt", "title", "src", "href"], "answer": "alt", "category": "html" }, - { "question": "Which HTML tag is used to define an internal style sheet?", "options": ["