Skip to content

Commit 8cd180d

Browse files
cansirinusirin
andauthored
feat(odin): Pages, routes and links as whole (#722)
LETS GO --------- Co-authored-by: Can Sirin <[email protected]> Co-authored-by: Umut Sirin <[email protected]>
1 parent f7cb923 commit 8cd180d

34 files changed

+801
-364
lines changed

apps/gql/next.config.mjs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
/** @type {import('next').NextConfig} */
22
const config = {
3-
transpilePackages: ["@kampus/sozluk-content", "@kampus/odin-content"],
4-
};
3+
transpilePackages: [
4+
'@kampus/sozluk-content',
5+
'@kampus/odin-content',
6+
'@kampus-content/odin',
7+
],
8+
}
59

610
export default config;
Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,257 @@
1+
export interface Curriculum {
2+
description: string;
3+
sections: Section[];
4+
}
5+
6+
export interface Section {
7+
header: string;
8+
lessons: CurriculumLesson[];
9+
}
10+
11+
interface CurriculumLesson {
12+
title: string;
13+
url: string;
14+
}
15+
16+
const foundationsCurriculum = {
17+
description: `İşte her şeyin başladığı yer! Gerçek, çalışan web siteleri oluşturmak
18+
için ihtiyacınız olan temel araçların hepsine pratik bir giriş. Web geliştiricilerinin
19+
aslında ne yaptığını ve sonraki kurslar için ihtiyacınız olan temelleri öğreneceksiniz.`,
20+
sections: [
21+
{
22+
header: "Başlangıç",
23+
lessons: [
24+
{
25+
title: "Kurs Nasıl Çalışacak?",
26+
url: "temel-bilgiler/baslangic/kurs-nasil-calisacak",
27+
},
28+
{
29+
title: "Web Geliştirmeye Giriş",
30+
url: "temel-bilgiler/baslangic/web-gelistirmeye-giris",
31+
},
32+
{
33+
title: "Motivasyon ve Düşünce Yapısı",
34+
url: "temel-bilgiler/baslangic/motivasyon-ve-dusunce-yapisi",
35+
},
36+
{
37+
title: "Yardım İstemek",
38+
url: "temel-bilgiler/baslangic/yardim-istemek",
39+
},
40+
{
41+
title: "Odin Topluluğuna Katıl",
42+
url: "temel-bilgiler/baslangic/odin-topluluguna-katil",
43+
},
44+
],
45+
},
46+
{
47+
header: "Kurulumlar",
48+
lessons: [
49+
{
50+
title: "Bilgisayar Temelleri",
51+
url: "temel-bilgiler/kurulumlar/bilgisayar-temelleri",
52+
},
53+
{
54+
title: "Web Nasıl Çalışır?",
55+
url: "temel-bilgiler/kurulumlar/web-nasil-calisir",
56+
},
57+
{
58+
title: "Kuruluma Genel Bakış",
59+
url: "temel-bilgiler/kurulumlar/kuruluma-genel-bakis",
60+
},
61+
{
62+
title: "Kurulumlar",
63+
url: "temel-bilgiler/kurulumlar/kurulumlar",
64+
},
65+
{
66+
title: "Metin Düzenleyiciler",
67+
url: "temel-bilgiler/kurulumlar/metin-duzenleyiciler",
68+
},
69+
{
70+
title: "Komut Satırı Temelleri",
71+
url: "temel-bilgiler/kurulumlar/komut-satiri-temelleri",
72+
},
73+
{ title: "Setting up Git - Çeviriye ihtiyaç duyuluyor", url: "#" },
74+
],
75+
},
76+
{
77+
header: "Git Temelleri",
78+
lessons: [
79+
{
80+
title: "Git'le Tanışın",
81+
url: "git/git-temelleri/gitle-tanisin",
82+
},
83+
{
84+
title: "Git'e Giriş",
85+
url: "git/git-temelleri/gite-giris",
86+
},
87+
],
88+
},
89+
{
90+
header: "HTML Temelleri",
91+
lessons: [
92+
{
93+
title: "HTML ve CSS'e Giriş",
94+
url: "temel-bilgiler/html-css/html-temelleri/html-ve-csse-giris",
95+
},
96+
{
97+
title: "Elementler ve Etiketler",
98+
url: "temel-bilgiler/html-css/html-temelleri/elementler-ve-etiketler",
99+
},
100+
{
101+
title: "HTML Şablonu",
102+
url: "temel-bilgiler/html-css/html-temelleri/html-sablonu",
103+
},
104+
{
105+
title: "Metin İle Çalışma",
106+
url: "temel-bilgiler/html-css/html-temelleri/metin-ile-calisma",
107+
},
108+
{
109+
title: "Listeler",
110+
url: "temel-bilgiler/html-css/html-temelleri/listeler",
111+
},
112+
{
113+
title: "Linkler ve Resimler",
114+
url: "temel-bilgiler/html-css/html-temelleri/linkler-ve-resimler",
115+
},
116+
{
117+
title: "Commit Mesajları",
118+
url: "git/git-temelleri/commit-mesajlari",
119+
},
120+
{
121+
title: "Proje: Tarifler - Çeviriye ihtiyaç duyuluyor",
122+
url: "#",
123+
},
124+
],
125+
},
126+
{
127+
header: "CSS Temelleri",
128+
lessons: [
129+
{
130+
title: "CSS'e Giriş",
131+
url: "temel-bilgiler/html-css/css-temelleri/csse-giris",
132+
},
133+
{
134+
title: "Basamaklama",
135+
url: "temel-bilgiler/html-css/css-temelleri/basamaklama",
136+
},
137+
{
138+
title: "HTML ve CSS İnceleme",
139+
url: "temel-bilgiler/html-css/css-temelleri/html-ve-css-inceleme",
140+
},
141+
{
142+
title: "Kutu Modeli",
143+
url: "temel-bilgiler/html-css/css-temelleri/kutu-modeli",
144+
},
145+
{
146+
title: "Blok ve Satır İçi Öğeler",
147+
url: "temel-bilgiler/html-css/css-temelleri/blok-ve-satir-ici-ogeler",
148+
},
149+
],
150+
},
151+
{
152+
header: "Flexbox",
153+
lessons: [
154+
{
155+
title: "Introduction to Flexbox - Çeviriye ihtiyaç duyuluyor",
156+
url: "#",
157+
},
158+
{
159+
title: "Grow ve Shrink",
160+
url: "temel-bilgiler/html-css/flexbox/grow-ve-shrink",
161+
},
162+
{
163+
title: "Eksenler",
164+
url: "temel-bilgiler/html-css/flexbox/eksenler",
165+
},
166+
{
167+
title: "Hizalama",
168+
url: "temel-bilgiler/html-css/flexbox/hizalama",
169+
},
170+
{
171+
title: "Project: Landing Page - Çeviriye ihtiyaç duyuluyor",
172+
url: "#",
173+
},
174+
],
175+
},
176+
{
177+
header: "JavaScript Temelleri",
178+
lessons: [
179+
{
180+
title: "JavaScript Temelleri Bölüm 1",
181+
url: "temel-bilgiler/javascript-temelleri/javascript-temelleri-1",
182+
},
183+
{
184+
title: "JavaScript Temelleri Bölüm 2",
185+
url: "temel-bilgiler/javascript-temelleri/javascript-temelleri-2",
186+
},
187+
{
188+
title: "JavaScript Geliştirici Araçları",
189+
url: "temel-bilgiler/javascript-temelleri/javascript-gelistirici-araclari",
190+
},
191+
{
192+
title: "JavaScript Temelleri Bölüm 3",
193+
url: "temel-bilgiler/javascript-temelleri/javascript-temelleri-3",
194+
},
195+
{
196+
title: "Problem Çözme",
197+
url: "temel-bilgiler/javascript-temelleri/problem-cozme",
198+
},
199+
{
200+
title: "Hataları Anlama",
201+
url: "temel-bilgiler/javascript-temelleri/hatalari-anlama",
202+
},
203+
{
204+
title: "Proje: Taş Kağıt Makas",
205+
url: "temel-bilgiler/javascript-temelleri/proje-tas-kagit-makas",
206+
},
207+
{
208+
title: "Temiz Kod",
209+
url: "temel-bilgiler/javascript-temelleri/temiz-kod",
210+
},
211+
{
212+
title: "Node.js Setup - Çeviriye ihtiyaç duyuluyor",
213+
url: "#",
214+
},
215+
{
216+
title: "JavaScript Temelleri Bölüm 4",
217+
url: "temel-bilgiler/javascript-temelleri/javascript-temelleri-4",
218+
},
219+
{
220+
title: "DOM Manipülasyonu ve Eventler",
221+
url: "temel-bilgiler/javascript-temelleri/dom-manipulasyonu-ve-eventler",
222+
},
223+
{
224+
title: "Taş Kağıt Makas Projesine Geri Dönüş",
225+
url: "temel-bilgiler/javascript-temelleri/tas-kagit-makas-projesine-geri-donus",
226+
},
227+
{
228+
title: "Proje: Çizim Tahtası",
229+
url: "temel-bilgiler/javascript-temelleri/proje-cizim-tahtasi",
230+
},
231+
{
232+
title: "JavaScript Temelleri Bölüm 5",
233+
url: "temel-bilgiler/javascript-temelleri/javascript-temelleri-5",
234+
},
235+
{
236+
title: "Proje: Hesap Makinesi",
237+
url: "temel-bilgiler/javascript-temelleri/proje-hesap-makinesi",
238+
},
239+
],
240+
},
241+
{
242+
header: "Her Şeyi Bir Araya Getirme",
243+
lessons: [
244+
{
245+
title: "Her Şeyi Bir Araya Getirme",
246+
url: "temel-bilgiler/her-seyi-birlestirme/her-seyi-bir-araya-getirme-sonuc",
247+
},
248+
],
249+
},
250+
],
251+
} as Curriculum;
252+
253+
const curriculumList = {
254+
foundationsCurriculum,
255+
};
256+
257+
export default curriculumList;

apps/kampus/app/odin/layout.tsx

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
import { type PropsWithChildren } from "react";
2+
import { Container, Link, Theme } from "@radix-ui/themes";
23

3-
import { MainNav, MainNavBrand, MainNavLink } from "~/features/main-nav";
4+
import { MainNav, MainNavBrand } from "~/features/main-nav";
45

56
export default function OdinRootLayout({ children }: PropsWithChildren) {
67
return (
7-
<>
8+
<Theme accentColor="teal">
89
<MainNav
9-
brand={<MainNavBrand>Turkce Odin Project</MainNavBrand>}
10-
links={
11-
<>
12-
<MainNavLink href="/sozluk">sozluk</MainNavLink>
13-
<MainNavLink href="/pano">pano</MainNavLink>
14-
</>
15-
}
10+
brand={<MainNavBrand href="/odin">Türkçe Odin Projesi</MainNavBrand>}
11+
links={[
12+
<Link key={1} href="/sozluk">
13+
sozluk
14+
</Link>,
15+
<Link key={2} href="/pano">
16+
pano
17+
</Link>,
18+
]}
1619
/>
17-
<section
18-
aria-label="PanoLayout"
19-
role="contentinfo"
20-
className="bg-background container mx-auto max-w-5xl py-10"
21-
>
20+
<Container size="3" mt="3" mb="3">
2221
{children}
23-
</section>
24-
</>
22+
</Container>
23+
</Theme>
2524
);
2625
}

apps/kampus/app/odin/page.tsx

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,68 @@
1+
import { Box, Button, Flex, Heading, Link, Text } from "@radix-ui/themes";
2+
import { BookOpenCheckIcon } from "lucide-react";
3+
14
export default function OdinHome() {
2-
return <div>Odin Home</div>;
5+
return (
6+
<Box>
7+
<WallOfText />
8+
<Flex mt="4" justify="center">
9+
<Link href="odin/seruvenler">
10+
<Button className="flex gap-2">
11+
<BookOpenCheckIcon size={16} />
12+
Çevirilere göz at
13+
</Button>
14+
</Link>
15+
</Flex>
16+
</Box>
17+
);
318
}
19+
20+
const WallOfText = () => {
21+
return (
22+
<Flex direction="column" gap="4">
23+
<Heading size="8">Merhaba!</Heading>
24+
<Text as="p" weight="medium">
25+
Biz, <Link>kamp.us</Link> olarak,{" "}
26+
<Link target="_blank" href="https://www.theodinproject.com/">
27+
TheOdinProject
28+
</Link>
29+
&apos;in Web Geliştirme Yolculuğu&apos;nun Türkçe çevirisini oluşturmak için bir araya
30+
geldik. TheOdinProject, dünya genelinde binlerce öğrenciye ücretsiz web geliştirme
31+
becerileri kazandırma fırsatı sunan bir kaynaktır. Bu projeyi Türkçe&apos;ye çevirerek, daha
32+
fazla kişinin bu değerli kaynağa erişebilmesini amaçlıyoruz.
33+
</Text>
34+
<Heading>Türkçe çevirinin önemi:</Heading>
35+
<Text as="p" weight="medium">
36+
Dil Engeli Kaldırma: İngilizce bilmeyen veya yeterince iyi bilmeyen kişiler için,
37+
TheOdinProject&apos;e erişmek zor olabilir. Türkçe çeviri, bu engeli kaldırarak daha fazla
38+
kişinin web geliştirme becerilerini geliştirmesine olanak tanır.
39+
</Text>
40+
<Text as="p" weight="medium">
41+
Topluluk Katılımı: TheOdinProject&apos;in açık kaynak yapısı sayesinde, herkesin katkıda
42+
bulunma fırsatı vardır. Türkçe çeviri yaparak, kamp.us topluluğunun bu projeye katkıda
43+
bulunmasına ve içerikleri iyileştirmesine olanak tanınır.
44+
</Text>
45+
<Text as="p" weight="medium">
46+
Eğitim Fırsatları: Türkçe konuşan öğrencilere web geliştirme eğitimi sunmak, kariyerlerini
47+
ilerletmelerine ve yeni fırsatlar yaratmalarına yardımcı olabilir.
48+
</Text>
49+
<Text as="p" weight="medium">
50+
Daha Geniş Kitleye Ulaşma: Türkçe çeviri ile, Türkçe konuşan topluluklar arasında
51+
TheOdinProject&apos;in bilinirliğini artırabiliriz.
52+
</Text>
53+
<Text as="p" weight="medium">
54+
TheOdinProject Web Geliştirme Yolculuğu&apos;nun Türkçe çevirisi, topluluğumuzun işbirliği
55+
ve katkılarıyla gerçekleştirilecektir. Herkesin bu projeye katkıda bulunması, daha fazla
56+
kişiye web geliştirme becerileri kazandırmamıza yardımcı olabilir.
57+
</Text>
58+
<Text as="p" weight="medium">
59+
Eğer siz de bu projeye katkıda bulunmak isterseniz,{" "}
60+
<Link target="_blank" href="https://github.com/kamp-us/monorepo/tree/dev/content/odin">
61+
GitHub{" "}
62+
</Link>
63+
reposunu ziyaret edebilir ve çeviri sürecine dahil olabilirsiniz. Hep birlikte daha fazla
64+
kişiye web geliştirme yolculuğuna başlamalarına ve başarılı olmalarına yardımcı olacağız.
65+
</Text>
66+
</Flex>
67+
);
68+
};

0 commit comments

Comments
 (0)