Tebrikler, Frontend konularını tamamladın. Backend konularına geçmeden, şimdiye kadar öğrendiğin her konuyu kullanarak, kişisel web sayfası yapacaksın. Yaptığın siteyi kendi profil sayfanda da yayınlayacaksın. Bu senin Frontend konusunda ne seviyede olduğunu gösterecek.
Workintech programını tamamladığında, görüştüğün şirketler yaptığın bu projeye de bakacaklar. O yüzden öğrendiğin her konuyu kullanmaya çalışman önemli. Projeni, tam çalışır durumda, gramer hatası olmayan bir proje yapmanı tavsiye ederiz.
S12 içinde de Workintech eğitmenlerine, adeta bir teknik mülakttaymış gibi, bu projeyi sunmanı istiyoruz. Bu sunumda, 4 dk içerisinde, CSS'e döktüğün arayüzü ve de geliştirdiğin Reach JS sistemi anlatacaksın. İlk önce arayüzde nasıl bir kullanıcı deneyimi sunduğunu kısaca özetleyip, sonra altta kodların nasıl çalıştığını, nasıl bir veri akışı kurduğunu, açık bir şekilde ifade edebilmelisin.
Kısaca: 4 dk içinde, önce arayüzü anlatıp, sonra kodun nasıl çalıştığını ifade edebilmelisin. Zaman kullanımı ve sunum tekniğin de değerlendirme kriterlerinde yer alıyor. Öncesinde, kendini videoya çekerek, sunum pratiği yapabilirsin.
Not* Bu dökümanın en sonunda da, sunumda seni değerlendireceğimiz başlıkları da bulabilirsin.
-
npx create-react-app web-sayfam
komutuyla boş bir çalışma başlatabilirsin. -
Oluşturulan
web-sayfam
klasörüne gir. -
npm
i kullanarak, gerekli gördüğün kütüphaneleri projene ekleyebilirsin. Örneğin: -
axios
-
yup
-
toastify
-
tailwind
-
cypress.io
v.b.
Bu bağlantıda 3 farklı tasarım var. Hangisini beğenirsen onu kullanabilirsin. CSS stillerini ve HTML/JSX iskeletini geliştirirken, tasarımı bire bir yaptığını emin olana kadar kesinlikle özelleştirmemeni tavsiye ediyoruz.
- Tasarımdaki her bir section için ayrı bir component oluşturun.
- Her component'in style'ını ayarlayın.
- Verilerinizi kendi oluşturduğunuz, mock (örnek) verileri statik bir js dosyasından çekin.
-
axios
ve reqres.in gibi bir servisle, web API simüle et. - Dark Mode tasarımı da entegre edin.
- Türkçe-İngilizce içerik oluşturun.
- Responsive özelleştirmelerini yapın.
- Tasarımı birebir uygulamalısın.
- Resimleri ve projeleri kendi projelerinle güncelleyebilirsin. Yine de kesinlikle renkler ve yerleşimde değişiklik istemiyoruz.
- Sunumdan sonra dilersen sonrasında kendi portföyün için özelleştirebilirsin.
- Mobil ve tablet gibi farklı cihaz boyutları için, tasarımda biraz değişiklik insiyatif kullanmak zorunda kalabilirsin
- Axios ile API request simple etmelisin.
- https://reqres.in/api/workintech veya benzeri
ücretsiz bir mock api servisine,
axios
ile POST ile kendi datanızı atıp, gelen mock datayı arayüze basabilirsin.
- https://reqres.in/api/workintech veya benzeri
ücretsiz bir mock api servisine,
Böylece backende geçince de yönetim paneli yazıp, hem kod kalitesi hem yapabildiğiniz her şeyi tek projede birleştirmiş olacaksınız.
graph LR
A((Start)) -->B{Dil?}-- EN --> C([EN Mock Data])
A --> G{Renk?}
B-- TR --> D([TR Mock Data])
C --> E[Axios] -- POST --> I([Mock API])
I -- Response --> E --> F((Uygulama))
G -- Açık/Koyu --> H([Görsel Değişiklik]) --> F
D --> E
Projenizi vercel'de yayınlayın.
Öncesinde geliştirdiğiniz bütün projelerin de vercel'deki linklerini eklediğinize dikkat edin.
Frontend'de ne kadar yetenekli olduğunu, hünerlerini göstermek için ekstra yapabileceklerin.
- Site ilk açıldığında, kullanıcın görünüm tercihini okuyup, ona göre dil ve renk temasını aktifleştirebilirsin. Kullanıcı tercihini, tarayıcı belleğine (localstorage) kaydedebilirsin.
- Dark Mode geliştirmesi,
- Türkçe/İngilizce içerik ve dil seçimi.
Değerlendirme Kriteri | Puan |
---|---|
Projesini sunma becerisi | |
Kodun nasıl çalıştığını ifade edebilme becerisi | |
Süre kullanımı Max: 4 dk | |
DESIGN, CSS | |
Tasarımda tutarlı bir layout kullanılmış mı? | |
CSS selector kullanımı kalitesi? | |
CSS flex becerisi ortalama ve hizalamalar doğru mu? | |
HTML yapısı anlamlı mı? Semantik tagler kullanılmış mı? | |
Figmadaki tasarıma benzerlik (1-5) | |
Responsive davranış | Bonus |
Responsive uyarlama kabiliyeti (1-5) | Bonus |
Gece Modu eklenmiş mi? Form vs | Bonus |
Gece Modu'nun ana tasarımla uyumu (1-5) | Bonus |
React JS | |
İçerik componentlere bölünmüş mü? | |
Prop/export/import gibi React JS özellikleri kullanılmış mı? | |
Temel paketler dışında ek bir paket kullanılmış mı? Toastify/Tailwind | Bonus |
Kodda Türkçe karakter olmamasına dikkat edilmiş mi? | |
Genel React JS anlayışı (1-5) | |
Veri Yönetimi | |
Veriler state'te tutuluyor mu? | |
Verileri bir js dosyasından, dinamik eklemiş mi? | Bonus |
Tekrar eden bileşenler için map kullanmış mı? | |
Kullandığı verileri, axios ve mock bir API'ye atıp, response'u kullanıyor mu? | Bonus |
Gece Modu | Bonus |
Gece Modu tasarımı eklenmiş mi? | Bonus |
Kullanıcının bilgisayarındaki sistem renk modu tercihi önden okunuyor mu? | Bonus |
Renk modu değiştikçe, tarayıcı ön belleğine (localstorage) kaydediliyor ve sayfa yenilendiğinde okunuyor mu? | Bonus |
Dil Değiştirme | Bonus |
Dil değişimi kodlara eklenmiş mi? | Bonus |
Kullanıcının bilgisayarındaki sistem dili önden okunuyor mu? | Bonus |
Dil tercihi değiştikçe, tarayıcı ön belleğine (localstorage) kaydediliyor ve sayfa yenilendiğinde okunuyor mu? | Bonus |
Vercel | |
Bu proje sunumdan önce vercele yüklenmiş mi? | |
Önceki projeleri vercele yüklenmiş mi? | |
Soru-Cevap Sorular | |
useState'ten Redux Store'a ne zaman geçmek gerekir? | |
useContext ile state/store farklı mıdır? | |
Açık Uçlu Sorular |