murselsen.com, React ve Vite kullanılarak geliştirilmiş hızlı, tek sayfa (SPA) uygulamasıdır. Amaç; portfolyo,
projeler ve iletişim bilgilerini sergileyen, erişilebilir ve performans odaklı bir kişisel web sitesidir.
- React + Vite ile hızlı geliştirme ve küçük üretim paketleri.
- ESLint ile kod kalitesi kontrolü.
- GitHub API'den repo listeleme ve
updated_atalanına göre sıralama. - Basit, erişilebilir ve responsive bileşenler.
- Kolay dağıtım (Vercel, Netlify, Cloudflare Pages uyumlu).
- React
- Vite
- JavaScript (ES2020+)
- ESLint
- Axios (API istekleri için)
- CSS modülleri ve basit, bileşen bazlı stiller
Aşağıdaki adımlar proje kökünde (bu README dosyasının bulunduğu yerde) çalıştırılmalıdır:
npm install
npm run devÜretim için:
npm run build
npm run previewNot: Ortamınız Windows ise varsayılan kabuk
cmd.exeolduğundan komutlar aynen yukarıdaki gibidir.
src/— Uygulama kaynak koducomponents/— Tekrar kullanılabilir bileşenlerpages/— Sayfalarredux/— Basit store ve async işlemlerassets/— Görseller
public/— Statik varlıklarvite.config.js,package.json, vs. — Yapı ve bağımlılık dosyaları
(Not: Proje yapısı zaten repository'de bulunuyor; yukarıda yalnızca özet verildi.)
Aşağıdaki örnek, GitHub API'den çekilen repoları updated_at alanına göre en güncelden en eskiye doğru sıralar. Projede
benzer bir fonksiyon redux/thunk.js veya ilgili servis dosyasında olabilir; burayı inceleyip aynısını uygulamak
yeterlidir.
import axios from 'axios';
export async function fetchRepos(username, token) {
const headers = token
? {Authorization: `token ${token}`}
: undefined;
const response = await axios.get(`https://api.github.com/users/${username}/repos`, {headers});
// updated_at alanına göre azalan sırada (en güncel ilk)
return response.data.sort((a, b) => new Date(b.updated_at) - new Date(a.updated_at));
}Kullanım notları:
- GitHub API çağrıları rate limit'e tabidir. Yoğun isteklerde
GITHUB_TOKEN/VITE_GITHUB_TOKENkullanmanız önerilir. updated_atalanı ISO 8601 formatındadır;new Date(...)ile güvenli karşılaştırma yapılır.
Projede kullanılabilecek örnek .env değişkenleri (Vite ile kullanırken VITE_ öneki gereklidir):
VITE_GITHUB_TOKEN— (opsiyonel) GitHub kişisel erişim token'ıVITE_API_BASE_URL— (opsiyonel) özel backend varsa temel URL
Projede test veya lint komutları package.json içinde tanımlıysa aşağıdaki komutlar kullanılabilir:
npm run test
npm run lint
npm run lint:fixEğer proje test altyapısı yoksa, küçük birim testleri eklemek için Vitest veya Jest + React Testing Library önerilir.
- Bileşenleri küçük, tek sorumluluklu tutun.
- Global state gerekiyorsa Redux veya Context tercih edin; basit durumlar için local state yeterlidir.
- API çağrılarında hata durumlarını (network hatası, 4xx/5xx) yakalayın ve kullanıcıya anlamlı mesaj verin.
Örnek hata yakalama:
try {
const repos = await fetchRepos('murselsen', process.env.VITE_GITHUB_TOKEN);
// işle
} catch (err) {
console.error('Repo çekme hatası', err);
}- Vercel, Netlify veya Cloudflare Pages ile kolayca deploy edilebilir.
- Build komutu:
npm run build - Output klasörü: Vite varsayılanı
dist/
- Issue açabilir veya pull request gönderebilirsiniz.
- Kod eklerken ESLint kurallarına ve mevcut stil rehberine uymanızı rica ederiz.
- Yeni özellik veya düzeltme eklerken ilgili testleri ekleyin.
MIT
- Repo: https://github.com/murselsen/murselsen.com
- Geliştirici: murselsen (GitHub üzerinden iletişim kurabilirsiniz)