Skip to content

Commit 0bbe989

Browse files
committed
Update site information and add new photos
1 parent 5857e5b commit 0bbe989

File tree

6 files changed

+128
-124
lines changed

6 files changed

+128
-124
lines changed

app/layout.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ import { IBMPlexSerif } from '@/utils/fonts';
66
const inter = Inter({ subsets: ['latin'] });
77

88
export const metadata: Metadata = {
9-
title: 'Ashvin Ranjan',
10-
description: 'A webpage by Ashvin Ranjan',
9+
title: 'Ashvin Ranjan',
10+
description: 'A webpage by Ashvin Ranjan',
1111
};
1212

1313
export default function RootLayout({
14-
children,
14+
children,
1515
}: Readonly<{
16-
children: React.ReactNode;
16+
children: React.ReactNode;
1717
}>) {
18-
return (
19-
<html lang='en'>
20-
<body className={IBMPlexSerif.className}>{children}</body>
21-
</html>
22-
);
18+
return (
19+
<html lang="en">
20+
<body className={IBMPlexSerif.className}>{children}</body>
21+
</html>
22+
);
2323
}

app/not-found.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ import { IBMPlexSans } from '@/utils/fonts';
44
import Link from 'next/link';
55

66
export default function Page404() {
7-
8-
return (
9-
<main className='flex justify-center items-center w-full flex-col p-10 md:h-screen'>
10-
<div className={`text-3xl ${IBMPlexSans.className} text-center`}>The page you are looking for does not exist</div>
11-
<Link className={`underline m-3 text-lg text-center`} href="/">Return to home</Link>
12-
</main>
13-
);
7+
return (
8+
<main className="flex justify-center items-center w-full flex-col p-10 md:h-screen">
9+
<div className={`text-3xl ${IBMPlexSans.className} text-center`}>
10+
The page you are looking for does not exist
11+
</div>
12+
<Link className={`underline m-3 text-lg text-center`} href="/">
13+
Return to home
14+
</Link>
15+
</main>
16+
);
1417
}

app/page.tsx

Lines changed: 107 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -6,114 +6,115 @@ import Link from 'next/link';
66
import { IBMPlexSans, IBMPlexSansJP } from '@/utils/fonts';
77

88
export default function Home() {
9-
let [imageIndex, setImageIndex] = useState<number | null>(null);
10-
let [isEnglish, setIsEnglish] = useState(true);
11-
let [loadedLanguage, setLoadedLanguage] = useState(false);
12-
let [currentText, setCurrentText] = useState(TextData.english);
9+
let [imageIndex, setImageIndex] = useState<number | null>(null);
10+
let [isEnglish, setIsEnglish] = useState(true);
11+
let [loadedLanguage, setLoadedLanguage] = useState(false);
12+
let [currentText, setCurrentText] = useState(TextData.english);
1313

14-
const imagesArray = [
15-
<div
16-
key='workspace_reflection'
17-
className="w-full animate-fade md:w-1/3 min-h-56 align-text-bottom bg-[url('/images/workspace_reflections.jpg')] bg-[75%_50%] bg-cover text-black"
18-
/>,
19-
<div
20-
key='bedroom'
21-
className="w-full animate-fade md:w-1/3 min-h-56 bg-[url('/images/bedroom.jpg')] bg-[20%_50%] bg-cover"
22-
/>,
23-
<div
24-
key='bioluminecent_water'
25-
className="w-full animate-fade md:w-1/3 min-h-56 bg-[url('/images/bioluminecent_water.jpg')] bg-[50%_25%] md:bg-[50%_50%] bg-cover"
26-
/>,
27-
];
14+
const imagesArray = [
15+
<div
16+
key="workspace_reflection"
17+
className="w-full animate-fade md:w-1/3 min-h-56 align-text-bottom bg-[url('/images/workspace_reflections.jpg')] bg-[75%_50%] bg-cover"
18+
/>,
19+
<div
20+
key="bedroom"
21+
className="w-full animate-fade md:w-1/3 min-h-56 bg-[url('/images/bedroom.jpg')] bg-[20%_50%] bg-cover"
22+
/>,
23+
<div
24+
key="bioluminecent_water"
25+
className="w-full animate-fade md:w-1/3 min-h-56 bg-[url('/images/bioluminecent_water.jpg')] bg-[50%_25%] md:bg-[50%_50%] bg-cover"
26+
/>,
27+
<div
28+
key="sunset"
29+
className="w-full animate-fade md:w-1/3 min-h-56 bg-[url('/images/sunset.jpg')] bg-[20%_50%] bg-cover"
30+
/>,
31+
<div
32+
key="building_1"
33+
className="w-full animate-fade md:w-1/3 min-h-56 align-text-bottom bg-[url('/images/building_1.jpg')] bg-[50%_60%] bg-cover"
34+
/>,
35+
];
2836

29-
useEffect(() => {
30-
setCurrentText(isEnglish ? TextData.english : TextData.japanese);
31-
if (loadedLanguage)
32-
localStorage.setItem('lang', isEnglish ? 'en' : 'jp');
33-
}, [isEnglish]);
34-
useEffect(() => {
35-
const lang = localStorage.getItem('lang');
36-
if (lang) setIsEnglish(lang === 'en');
37-
setLoadedLanguage(true);
38-
setImageIndex(Math.floor(Math.random() * 3));
39-
}, []);
37+
useEffect(() => {
38+
setCurrentText(isEnglish ? TextData.english : TextData.japanese);
39+
if (loadedLanguage) localStorage.setItem('lang', isEnglish ? 'en' : 'jp');
40+
}, [isEnglish]);
41+
useEffect(() => {
42+
const lang = localStorage.getItem('lang');
43+
if (lang) setIsEnglish(lang === 'en');
44+
setLoadedLanguage(true);
45+
setImageIndex(Math.floor(Math.random() * imagesArray.length));
46+
}, []);
4047

41-
return (
42-
<main className='flex md:h-screen md:justify-between w-full flex-col md:flex-row'>
43-
{imageIndex === null ? null : imagesArray[imageIndex]}
44-
<div
45-
className={`w-full md:w-2/3 flex flex-col justify-between overflow-y-auto animate-fadeDelay opacity-0 ${
46-
loadedLanguage ? '' : 'hidden'
47-
}`}
48+
return (
49+
<main className="flex md:h-screen md:justify-between w-full flex-col md:flex-row">
50+
{imageIndex === null ? null : imagesArray[imageIndex]}
51+
<div
52+
className={`w-full md:w-2/3 flex flex-col justify-between overflow-y-auto animate-fadeDelay opacity-0 ${
53+
loadedLanguage ? '' : 'hidden'
54+
}`}
55+
>
56+
<div
57+
className={`p-[6%_12%] pb-0 font-light ${
58+
isEnglish ? '' : IBMPlexSansJP.className
59+
}`}
60+
>
61+
<div
62+
className={`text-4xl font-normal ${
63+
isEnglish ? IBMPlexSans.className : ''
64+
}`}
65+
>
66+
{currentText.name}
67+
</div>
68+
<div className="text-2xl mb-14">{currentText.position}</div>
69+
<div className="text-lg mb-14 whitespace-pre-wrap">
70+
{currentText.about}
71+
</div>
72+
<div className="text-lg mb-14 whitespace-pre-wrap">
73+
{currentText.email}
74+
</div>
75+
<div
76+
className={`text-lg flex flex-wrap justify-between underline ${
77+
!isEnglish ? 'mb-14' : ''
78+
}`}
79+
>
80+
<Link
81+
target="_blank"
82+
className="px-2"
83+
href={'https://linkedin.com/in/asra31'}
4884
>
49-
<div
50-
className={`p-[6%_12%] pb-0 font-light ${
51-
isEnglish ? '' : IBMPlexSansJP.className
52-
}`}
53-
>
54-
<div
55-
className={`text-4xl font-normal ${
56-
isEnglish ? IBMPlexSans.className : ''
57-
}`}
58-
>
59-
{currentText.name}
60-
</div>
61-
<div className='text-2xl mb-14'>{currentText.position}</div>
62-
<div className='text-lg mb-14 whitespace-pre-wrap'>
63-
{currentText.about}
64-
</div>
65-
<div className='text-lg mb-14 whitespace-pre-wrap'>
66-
{currentText.email}
67-
</div>
68-
<div
69-
className={`text-lg flex flex-wrap justify-between underline ${
70-
!isEnglish ? 'mb-14' : ''
71-
}`}
72-
>
73-
<Link
74-
target='_blank'
75-
className='px-2'
76-
href={'https://linkedin.com/in/asra31'}
77-
>
78-
{currentText.links.linkedin}
79-
</Link>
80-
<Link
81-
target='_blank'
82-
className='px-2'
83-
href={'https://instagram.com/gedatsu.ara/'}
84-
>
85-
{currentText.links.instagram}
86-
</Link>
87-
<Link
88-
target='_blank'
89-
className='px-2'
90-
href={'/resume.pdf'}
91-
>
92-
{currentText.links.resume}
93-
</Link>
94-
<Link
95-
target='_blank'
96-
className='px-2'
97-
href={'https://github.com/Ashvin-Ranjan'}
98-
>
99-
{currentText.links.github}
100-
</Link>
101-
</div>
102-
{!isEnglish && (
103-
<div className={`text-lg`}>
104-
{TextData.japanese.apology}
105-
</div>
106-
)}
107-
</div>
108-
<div
109-
className={`text-lg text-right p-5 select-none ${IBMPlexSansJP.className}`}
110-
onClick={() => {
111-
setIsEnglish((v) => !v);
112-
}}
113-
>
114-
{currentText.toggle}
115-
</div>
116-
</div>
117-
</main>
118-
);
85+
{currentText.links.linkedin}
86+
</Link>
87+
<Link
88+
target="_blank"
89+
className="px-2"
90+
href={'https://instagram.com/gedatsu.ara/'}
91+
>
92+
{currentText.links.instagram}
93+
</Link>
94+
<Link target="_blank" className="px-2" href={'/resume.pdf'}>
95+
{currentText.links.resume}
96+
</Link>
97+
<Link
98+
target="_blank"
99+
className="px-2"
100+
href={'https://github.com/Ashvin-Ranjan'}
101+
>
102+
{currentText.links.github}
103+
</Link>
104+
</div>
105+
{!isEnglish && (
106+
<div className={`text-lg`}>{TextData.japanese.apology}</div>
107+
)}
108+
</div>
109+
<div
110+
className={`text-lg text-right p-5 select-none ${IBMPlexSansJP.className}`}
111+
onClick={() => {
112+
setIsEnglish((v) => !v);
113+
}}
114+
>
115+
{currentText.toggle}
116+
</div>
117+
</div>
118+
</main>
119+
);
119120
}

public/images/building_1.jpg

2.2 MB
Loading

public/images/sunset.jpg

2.1 MB
Loading

public/page_data/main_page.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"english": {
33
"name": "Ashvin Ranjan",
44
"position": "Computer Science Student @ The University of Washington",
5-
"about": "Ashvin is a Computer Science student currently focused on the field of Computational Linguistics, with specific applications in the languages of Hindi and Japanese. He has work experience in Next.js-based front-end development and creating developer tools. Furthermore, he consistently builds large-scale projects with other developers on GitHub.\n\nOutside of Computer Science he likes to create and think about media. He often writes blog posts and posts photos online. He is also a big fan of Ginger Root, JPEGMAFIA, and Ghais Guevara.",
5+
"about": "I am a Computer Science student currently focused on the field of Computational Linguistics, with specific applications in Semantic Typology and Machine Learning architecture. I have experience in Next.js-based front-end development and creating developer tools in a professional environment. Furthermore, I also build large-scale projects with other developers on GitHub.\n\nOutside of Computer Science I like photography, games, and listening to music. I occasionally write blog posts about various topics and post photos online. Furthermore, I also occasionally create games, which I have published online.",
66
"email": "Email: me@ash.vin",
77
"toggle": "English/日本語",
88
"links": {
@@ -15,7 +15,7 @@
1515
"japanese": {
1616
"name": "アシュヴィン・ランジャン",
1717
"position": "ワシントン大学のコンピューターサイエンス学科の学生",
18-
"about": "アシュヴィンは日本語とかヒンディー語の計算言語学に興味があるコンピューターサイエンス学科の生徒です。Next.jsでのサイトとデベロッパーのプログラムを作る仕事をしたことがあります。なお、自分のGitHubでほかのデベロッパーと大きなプロジェクトをよく作ります\n\nコンピューターサイエンス以外にいろいろなことを作ったり考えたりすることが好きです。ブログを書いたりインスタで写真をよく投稿したりします。音楽も大好きです。姜根やJPEGMAFIAやGhais Guevaraの音楽をよく聞きます。",
18+
"about": "私は意味類型論や機械学習構造を専門して計算言語学に興味があるコンピューターサイエンス学科の学生です。Next.jsでのサイトとデベロッパーのプログラムを作る仕事をしたことがあります。なお、自分のGitHubでほかのデベロッパーと大きなプロジェクトを作ります\n\nコンピューターサイエンス以外にいろいろなことを作ったり考えたりすることが好きです。ブログを書いたりインスタで写真をよく投稿したりします。音楽とゲームも大好きです。姜根やJPEGMAFIAやGhais Guevaraの音楽をよく聞きます。それに、時々ゲームを作って発行します",
1919
"email": "メール: me@ash.vin",
2020
"toggle": "日本語/English",
2121
"apology": "私は日本語をまだ勉強しているので間違いがあればすみません。ある場合は間違いについてメールを送ってください。",

0 commit comments

Comments
 (0)