On branch master

Changes to be committed:
	modified:   LICENSE
	modified:   README.md
	modified:   app/(root)/page.jsx
	modified:   app/about/components/about/about.jsx
	modified:   app/about/layout.jsx
	modified:   app/layout.jsx
	modified:   app/projects/(project-card)/index.jsx
	modified:   app/projects/components/ProjectCard.jsx
	modified:   app/projects/layout.jsx
	modified:   app/projects/page.jsx
	modified:   components/Footer.jsx
	modified:   components/Navbar.jsx
	modified:   generate-sitemap.js
	modified:   json/data.json
	modified:   package.json
	modified:   public/robots.txt
	modified:   public/sitemap2.xml
This commit is contained in:
parent e166fd3c7f
commit 4542735373
17 changed files with 71 additions and 78 deletions

View file

@ -1,4 +1,4 @@
Alvalens-porto-2-nextJs - A Next.js Portfolio Project korobtsev-NextJS01 - A Next.js Portfolio Project
Copyright (C) 2025 Alvalen Bilyunazra <alvalen.shafel04@gmail.com> Copyright (C) 2025 Alvalen Bilyunazra <alvalen.shafel04@gmail.com>
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE

View file

@ -1,6 +1,6 @@
# Мой личный сайт на основе Alvalens Porto 2 # Мой личный сайт на основе Korobtsev Porto 2
Проект построен на базе шаблона Alvalens Porto 2. Изменения будут перечислены в соответствующем разделе. Проект построен на базе шаблона Korobtsev Porto 2. Изменения будут перечислены в соответствующем разделе.
## Фишки ## Фишки
@ -18,12 +18,12 @@
2. Склонируйте репозиторий: 2. Склонируйте репозиторий:
```shell ```shell
git clone https://dev.gossys.dev/v.korobtsev/Alvalens-porto-2-nextJs.git git clone https://dev.gossys.dev/v.korobtsev/korobtsev-NextJS01.git
``` ```
3. Navigate to the project directory: 3. Navigate to the project directory:
```shell ```shell
cd Alvalens-porto-2-nextJs cd korobtsev-NextJS01
``` ```
4. Install dependencies: 4. Install dependencies:

View file

@ -1,7 +1,3 @@
//Copyright (C) 2025 Alvalen Bilonazra
// //Этот файл является частью Alvalens-Porpo-2-nextjs.
//лицензировано под GNU GPL v3.0. Смотрите лицензию для деталей.
"use client"; "use client";
import ReactFullpage from "@fullpage/react-fullpage"; import ReactFullpage from "@fullpage/react-fullpage";
import Image from "next/legacy/image"; import Image from "next/legacy/image";
@ -54,7 +50,7 @@ const MyPage = () => {
width={500} width={500}
height={500} height={500}
className="rounded-full w-full h-full object-cover " className="rounded-full w-full h-full object-cover "
alt="Alvalens" alt="Korobtsev"
placeholder="blur" placeholder="blur"
/> />
</div> </div>
@ -67,7 +63,7 @@ const MyPage = () => {
delay: 0.2, delay: 0.2,
type: "spring", type: "spring",
}}> }}>
Alvalen Shafel Виталий Коробцев
</motion.h3> </motion.h3>
<motion.h1 <motion.h1
className="text-black text-5xl md:text-6xl lg:text-7xl 2xl:text-8xl font-bold my-2 md:my-5" className="text-black text-5xl md:text-6xl lg:text-7xl 2xl:text-8xl font-bold my-2 md:my-5"
@ -77,7 +73,7 @@ const MyPage = () => {
delay: 0.3, delay: 0.3,
type: "spring", type: "spring",
}}> }}>
Full Stack Developer Разработчик, Инженер, Архитектор
</motion.h1> </motion.h1>
<motion.p <motion.p
className="title text-md 2xl:text-xl mt-4 tracking-wider text-gray-500 leading-[1.7rem]" className="title text-md 2xl:text-xl mt-4 tracking-wider text-gray-500 leading-[1.7rem]"
@ -87,11 +83,8 @@ const MyPage = () => {
delay: 0.4, delay: 0.4,
type: "spring", type: "spring",
}}> }}>
Привет! Imans Alvalen, младший разработчик Fullstack, специализирующийся на Привет! Я Виталий Коробцев. Создатель "Гибридной Офисной Системы". Под моим руководством или с моим участием создано множество крупных проектов. На данном сайте я решил собрать некоторые из них и рассказать о себе и своих проектах - завершенных, текущих, планируемых.
Современная веб -разработка с растущим акцентом на искусственном
Интеллект. Увлечен зданиями масштабируемых,
удобные веб-приложения и изучение технологий искусственного интеллекта
такие как генеративные модели и интеграция LLM.
</motion.p> </motion.p>
<motion.div <motion.div
className="buttons flex flex-row justify-center items-center space-x-4 mt-10" className="buttons flex flex-row justify-center items-center space-x-4 mt-10"
@ -129,7 +122,7 @@ const MyPage = () => {
width={400} width={400}
height={550} height={550}
placeholder="blur" placeholder="blur"
alt="Alvalens" alt="Korobtsev"
className="rounded-full w-full h-full object-cover" className="rounded-full w-full h-full object-cover"
/> />
</div> </div>
@ -161,7 +154,7 @@ const MyPage = () => {
src={MeAbout} src={MeAbout}
layout="fill" layout="fill"
className="object-cover" className="object-cover"
alt="Alvalens" alt="Korobtsev"
placeholder="blur" placeholder="blur"
/> />
</motion.div> </motion.div>
@ -227,7 +220,7 @@ const MyPage = () => {
src={ProjectAll} src={ProjectAll}
layout="fill" layout="fill"
className="object-cover" className="object-cover"
alt="Alvalens Setup" alt="Korobtsev Setup"
placeholder="blur" placeholder="blur"
/> />
</motion.div> </motion.div>
@ -297,7 +290,7 @@ const MyPage = () => {
src={Setup} src={Setup}
layout="fill" layout="fill"
className="object-cover" className="object-cover"
alt="Alvalens Setup" alt="Korobtsev Setup"
placeholder="blur" placeholder="blur"
/> />
</motion.div> </motion.div>
@ -335,14 +328,14 @@ const MyPage = () => {
delay: 0.3, delay: 0.3,
type: "spring", type: "spring",
}}> }}>
<a href="mailto:Alvalen.shafel04@gmail.com?subject=Hello&body=Hello Alvalens,"> <a href="mailto:Alvalen.shafel04@gmail.com?subject=Hello&body=Hello Korobtsev,">
alvalen.shafel04@gmail.com alvalen.shafel04@gmail.com
</a> </a>
</motion.p> </motion.p>
{/* icons */} {/* icons */}
<div className="flex justify-center items-center space-x-4"> <div className="flex justify-center items-center space-x-4">
<motion.a <motion.a
href="mailto:Alvalen.shafel04@gmail.com?subject=Hello&body=Hello Alvalens," href="mailto:Alvalen.shafel04@gmail.com?subject=Hello&body=Hello Korobtsev,"
className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300" className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300"
initial={{ y: 40, opacity: 0 }} initial={{ y: 40, opacity: 0 }}
whileInView={{ y: 0, opacity: 1 }} whileInView={{ y: 0, opacity: 1 }}
@ -354,7 +347,7 @@ const MyPage = () => {
</motion.a> </motion.a>
<motion.a <motion.a
href="https://github.com/Alvalens" href="https://github.com/Korobtsev"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300" className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300"
@ -367,7 +360,7 @@ const MyPage = () => {
<FontAwesomeIcon icon={faGithub} className="text-3xl" /> <FontAwesomeIcon icon={faGithub} className="text-3xl" />
</motion.a> </motion.a>
<motion.a <motion.a
href="https://www.instagram.com/alvalens_/" href="https://www.instagram.com/Korobtsev_/"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300" className="flex justify-center items-center bg-gray-700 w-14 h-14 rounded-full text-gray-100 hover:bg-gray-400 transition-all ease-in-out duration-300"

View file

@ -35,7 +35,7 @@ export default function About() {
className="w-full h-full"> className="w-full h-full">
<Image <Image
src={Me1} src={Me1}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"
@ -58,7 +58,7 @@ export default function About() {
className="w-full h-full"> className="w-full h-full">
<Image <Image
src={Me2} src={Me2}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"
@ -83,7 +83,7 @@ export default function About() {
className="w-full h-full"> className="w-full h-full">
<Image <Image
src={Me3} src={Me3}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"

View file

@ -1,7 +1,7 @@
import Footer from "@/components/Footer"; import Footer from "@/components/Footer";
export const metadata = { export const metadata = {
title: "Alvalens | About" title: "Korobtsev | About"
}; };
export default function Layout({ children }) { export default function Layout({ children }) {
return ( return (

View file

@ -9,17 +9,17 @@ import Chat from "@/components/Chat";
import ClientTopProgressBar from "@/components/ClientTopProgressBar"; import ClientTopProgressBar from "@/components/ClientTopProgressBar";
export const metadata = { export const metadata = {
title: "Alvalens | Portofolio", title: "Korobtsev | Portofolio",
description: description:
"My name is Alvalens, I'm a web developer and I'm passionate about it. I'm currently studying at Universitas Negeri Malang.", "My name is Korobtsev, I'm a web developer and I'm passionate about it. I'm currently studying at Universitas Negeri Malang.",
author: "Alvalen Shafelbilyunazra", author: "Alvalen Shafelbilyunazra",
siteUrl: "https://www.alvalens.my.id", siteUrl: "https://www.korobtsev.ru",
applicationName: "Alvalens", applicationName: "Korobtsev",
keywords: [ keywords: [
"alvalens", "Korobtsev",
"alvalen", "alvalen",
"alvalen shafel", "alvalen shafel",
"shafel", "shafel",
@ -32,19 +32,19 @@ export const metadata = {
openGraph: { openGraph: {
type: "website", type: "website",
url: "https://www.alvalens.my.id", url: "https://www.korobtsev.ru",
title: "Alvalens | Portofolio", title: "Korobtsev | Portofolio",
site_name: "Alvalens | Portofolio", site_name: "Korobtsev | Portofolio",
description: "My name is Alvalens, This is my portofolio website.", description: "My name is Korobtsev, This is my portofolio website.",
width: 1200, width: 1200,
height: 630, height: 630,
images: [ images: [
{ {
url: "/og-image-rev.png", url: "/og-image-rev.png",
alt: "Alvalens Portofolio", alt: "Korobtsev Portofolio",
}, },
], ],
site_name: "Alvalens | Portofolio", site_name: "Korobtsev | Portofolio",
} }
}; };

View file

@ -24,7 +24,7 @@ export default function ProjectCard({ project, index, activeCategory }) {
}}> }}>
<Image <Image
src={project.thumbnail} src={project.thumbnail}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"

View file

@ -24,7 +24,7 @@ export default function ProjectCard({ project, index, activeCategory }) {
}}> }}>
<Image <Image
src={project.thumbnail} src={project.thumbnail}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"

View file

@ -2,7 +2,7 @@
import Footer from "@/components/Footer"; import Footer from "@/components/Footer";
export const metadata = { export const metadata = {
title: "Alvalens | Projects" title: "Korobtsev | Projects"
}; };
export default function Layout({ children }) { export default function Layout({ children }) {
return ( return (

View file

@ -46,7 +46,7 @@ export default function Page() {
className="bg-slate-300 rounded-sm h-[400px] md:h-[600px] w-[80vw] md:w-[30vw] grayscale hover:grayscale-0 "> className="bg-slate-300 rounded-sm h-[400px] md:h-[600px] w-[80vw] md:w-[30vw] grayscale hover:grayscale-0 ">
<Image <Image
src={ProjectAll} src={ProjectAll}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"
@ -100,7 +100,7 @@ export default function Page() {
className="w-full h-full shadow-lg"> className="w-full h-full shadow-lg">
<Image <Image
src={Intervyou1} src={Intervyou1}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"
@ -124,7 +124,7 @@ export default function Page() {
className="w-full h-full shadow-lg "> className="w-full h-full shadow-lg ">
<Image <Image
src={Intervyou3} src={Intervyou3}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"
@ -150,7 +150,7 @@ export default function Page() {
className="w-full h-full shadow-lg"> className="w-full h-full shadow-lg">
<Image <Image
src={Intervyou2} src={Intervyou2}
alt="Alvalens" alt="Korobtsev"
layout="fill" layout="fill"
objectFit="cover" objectFit="cover"
placeholder="blur" placeholder="blur"

View file

@ -49,7 +49,7 @@ export default function Footer() {
<footer className="flex justify-center items-center flex-col my-5 self-start]"> <footer className="flex justify-center items-center flex-col my-5 self-start]">
<p className="text-gray-800 text-sm"> <p className="text-gray-800 text-sm">
&copy;{new Date().getFullYear()} -{" "} &copy;{new Date().getFullYear()} -{" "}
<span className="text-gray-700 text-lg">Alvalens</span> <span className="text-gray-700 text-lg">Korobtsev</span>
</p> </p>
</footer> </footer>
</div> </div>

View file

@ -200,7 +200,7 @@ const Navbar = () => {
className={`text-2xl ml-2 md:ml-0 transition-colors ease duration-500 ${ className={`text-2xl ml-2 md:ml-0 transition-colors ease duration-500 ${
isNavOpen ? "text-white" : "" isNavOpen ? "text-white" : ""
}`}> }`}>
Alvalens Korobtsev
</h1> </h1>
</div> </div>
<div className="flex flex-row items-center"> <div className="flex flex-row items-center">

View file

@ -5,7 +5,7 @@ const fs = require("fs");
async function generateSitemap() { async function generateSitemap() {
const sitemap = new SitemapStream({ const sitemap = new SitemapStream({
hostname: "https://alvalens.my.id/", hostname: "https://korobtsev.ru/",
}); });
// Add URLs to your sitemap // Add URLs to your sitemap

View file

@ -99,7 +99,7 @@
], ],
"year": "2024", "year": "2024",
"preview": "", "preview": "",
"code": "https://github.com/Alvalens/web-javanese-translation", "code": "https://github.com/Korobtsev/web-javanese-translation",
"thumbnail": "/image/projects/ai/javanese-translation/javanese-translation-thumbnail.jpg", "thumbnail": "/image/projects/ai/javanese-translation/javanese-translation-thumbnail.jpg",
"images": [ "images": [
"/image/projects/ai/javanese-translation/javanese-translation1.png", "/image/projects/ai/javanese-translation/javanese-translation1.png",
@ -125,7 +125,7 @@
], ],
"year": "2024", "year": "2024",
"preview": "", "preview": "",
"code": "https://github.com/Alvalens/heart-attack-prediction", "code": "https://github.com/Korobtsev/heart-attack-prediction",
"thumbnail": "/image/projects/ai/heart-attack-prediction/heart-attack-prediction-thumbnail.jpg", "thumbnail": "/image/projects/ai/heart-attack-prediction/heart-attack-prediction-thumbnail.jpg",
"images": [ "images": [
"/image/projects/ai/heart-attack-prediction/heart-attack1.png", "/image/projects/ai/heart-attack-prediction/heart-attack1.png",
@ -154,7 +154,7 @@
], ],
"year": "2024", "year": "2024",
"preview": "https://generative-trivia.vercel.app/", "preview": "https://generative-trivia.vercel.app/",
"code": "https://github.com/Alvalens/generative-trivia", "code": "https://github.com/Korobtsev/generative-trivia",
"thumbnail": "/image/projects/web/trivia/trivia-thumbnail.png", "thumbnail": "/image/projects/web/trivia/trivia-thumbnail.png",
"images": [ "images": [
"/image/projects/web/trivia/trivia1.png", "/image/projects/web/trivia/trivia1.png",
@ -234,8 +234,8 @@
"RandomZone is a feature that allows the player to get a random number of steps. The 3D dice is a feature that allows the player to roll a 3D dice. The game also has a few other features menuy screen and also loading screen.", "Beside that the game also has a audio theme that will play when the game is started. The game also has a few sound effects such as dice roll sound, and a sound when the player win the game." "RandomZone is a feature that allows the player to get a random number of steps. The 3D dice is a feature that allows the player to roll a 3D dice. The game also has a few other features menuy screen and also loading screen.", "Beside that the game also has a audio theme that will play when the game is started. The game also has a few sound effects such as dice roll sound, and a sound when the player win the game."
], ],
"year": "2023", "year": "2023",
"preview": "https://github.com/Alvalens/ludo-game/releases/tag/pre-release", "preview": "https://github.com/Korobtsev/ludo-game/releases/tag/pre-release",
"code": "https://github.com/Alvalens/ludo-game", "code": "https://github.com/Korobtsev/ludo-game",
"thumbnail": "/image/projects/other/LUDOang/ludo-thumbnail.png", "thumbnail": "/image/projects/other/LUDOang/ludo-thumbnail.png",
"images": [ "images": [
"/image/projects/other/LUDOang/ludo1.png", "/image/projects/other/LUDOang/ludo1.png",
@ -281,7 +281,7 @@
], ],
"year": "2023", "year": "2023",
"preview": "https://react-chat-rouge.vercel.app", "preview": "https://react-chat-rouge.vercel.app",
"code": "https://github.com/Alvalens/react-realtime-chat", "code": "https://github.com/Korobtsev/react-realtime-chat",
"thumbnail": "/image/projects/web/react-chat/chat-thumbnail.png", "thumbnail": "/image/projects/web/react-chat/chat-thumbnail.png",
"images": [ "images": [
"/image/projects/web/react-chat/chat1.png", "/image/projects/web/react-chat/chat1.png",
@ -311,7 +311,7 @@
], ],
"year": "2023", "year": "2023",
"preview": "https://react-tools-flax.vercel.app", "preview": "https://react-tools-flax.vercel.app",
"code": "https://github.com/Alvalens/react-tools", "code": "https://github.com/Korobtsev/react-tools",
"thumbnail": "/image/projects/web/tools/tools-thumbnail.png", "thumbnail": "/image/projects/web/tools/tools-thumbnail.png",
"images": [ "images": [
"/image/projects/web/tools/tools.png", "/image/projects/web/tools/tools.png",
@ -335,7 +335,7 @@
"Aleph is a Discord bot that I created for my dircord server to use. The bot is built using Python and the discord.py library. The bot has image grabber feauture that takes argument (keywords) and returns an image from the internet.", "Other than that this bot has a few other features such as utility command to delete a messages, and a command to get the server's ping. This bot is still in development and I plan to add more features in the future."], "Aleph is a Discord bot that I created for my dircord server to use. The bot is built using Python and the discord.py library. The bot has image grabber feauture that takes argument (keywords) and returns an image from the internet.", "Other than that this bot has a few other features such as utility command to delete a messages, and a command to get the server's ping. This bot is still in development and I plan to add more features in the future."],
"year": "2023", "year": "2023",
"preview": "", "preview": "",
"code": "https://github.com/Alvalens/aleph-discord-bot", "code": "https://github.com/Korobtsev/aleph-discord-bot",
"thumbnail": "/image/projects/other/bot/bot-thumbnail.png", "thumbnail": "/image/projects/other/bot/bot-thumbnail.png",
"images": [ "images": [
"/image/projects/other/bot/bot1.png", "/image/projects/other/bot/bot1.png",

View file

@ -3,7 +3,7 @@
"author": { "author": {
"name": "Alvalen Shafelbilyunazra", "name": "Alvalen Shafelbilyunazra",
"email": "alvalen.shafel04@gmail.com", "email": "alvalen.shafel04@gmail.com",
"url": "https://alvalens.my.id" "url": "https://korobtsev.ru"
}, },
"license": "GPL-3.0", "license": "GPL-3.0",
"copyright": "Copyright (C) 2025 Alvalen Shafelbilyunazra", "copyright": "Copyright (C) 2025 Alvalen Shafelbilyunazra",
@ -17,13 +17,13 @@
"generate-sitemap": "node generate-sitemap.js" "generate-sitemap": "node generate-sitemap.js"
}, },
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-svg-core": "^7.0.0", "@fortawesome/fontawesome-svg-core": "^7.0.1",
"@fortawesome/free-brands-svg-icons": "^7.0.0", "@fortawesome/free-brands-svg-icons": "^7.0.1",
"@fortawesome/free-regular-svg-icons": "^7.0.0", "@fortawesome/free-regular-svg-icons": "^7.0.1",
"@fortawesome/free-solid-svg-icons": "^7.0.0", "@fortawesome/free-solid-svg-icons": "^7.0.1",
"@fortawesome/react-fontawesome": "^0.2.3", "@fortawesome/react-fontawesome": "^0.2.6",
"@fullpage/react-fullpage": "^0.1.49", "@fullpage/react-fullpage": "^0.1.49",
"@tailwindcss/postcss": "^4.1.11", "@tailwindcss/postcss": "^4.1.13",
"@vercel/analytics": "^1.5.0", "@vercel/analytics": "^1.5.0",
"eslint": "9.33.0", "eslint": "9.33.0",
"eslint-config-next": "15.4.6", "eslint-config-next": "15.4.6",
@ -44,4 +44,4 @@
"@types/react": "19.1.10", "@types/react": "19.1.10",
"cross-env": "^10.0.0" "cross-env": "^10.0.0"
} }
} }

View file

@ -1,4 +1,4 @@
User-agent: * User-agent: *
Disallow: Disallow:
Sitemap: https://www.alvalens.my.id/sitemap2.xml Sitemap: https://www.korobtsev.ru/sitemap2.xml

View file

@ -8,57 +8,57 @@
<url> <url>
<loc>https://www.alvalens.my.id/</loc> <loc>https://www.korobtsev.ru/</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>1.00</priority> <priority>1.00</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/about</loc> <loc>https://www.korobtsev.ru/about</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.80</priority> <priority>0.80</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects</loc> <loc>https://www.korobtsev.ru/projects</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.80</priority> <priority>0.80</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects/react-chat</loc> <loc>https://www.korobtsev.ru/projects/react-chat</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.64</priority> <priority>0.64</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects/react-tools</loc> <loc>https://www.korobtsev.ru/projects/react-tools</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.64</priority> <priority>0.64</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects/aleph-discord-bot</loc> <loc>https://www.korobtsev.ru/projects/aleph-discord-bot</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.64</priority> <priority>0.64</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects/lptk-cup-2023</loc> <loc>https://www.korobtsev.ru/projects/lptk-cup-2023</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.64</priority> <priority>0.64</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects/nu-ino-website</loc> <loc>https://www.korobtsev.ru/projects/nu-ino-website</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.64</priority> <priority>0.64</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects/unmuh-jember-landing-page</loc> <loc>https://www.korobtsev.ru/projects/unmuh-jember-landing-page</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.64</priority> <priority>0.64</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects/my-first-portofolio-website</loc> <loc>https://www.korobtsev.ru/projects/my-first-portofolio-website</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.64</priority> <priority>0.64</priority>
</url> </url>
<url> <url>
<loc>https://www.alvalens.my.id/projects/archive</loc> <loc>https://www.korobtsev.ru/projects/archive</loc>
<lastmod>2023-09-11T14:41:56+00:00</lastmod> <lastmod>2023-09-11T14:41:56+00:00</lastmod>
<priority>0.64</priority> <priority>0.64</priority>
</url> </url>