Admin Paneli ve Responsive

This commit is contained in:
Şahan Hasret
2025-10-22 16:46:41 +03:00
parent c5027a997b
commit ab43ad61e9
14 changed files with 2032 additions and 215 deletions

162
data/metroStations.ts Normal file
View File

@@ -0,0 +1,162 @@
export interface MetroStation {
id: number;
name: string;
status: 'completed' | 'in-progress' | 'planned';
progress: number;
startDate: string;
expectedCompletion: string;
actualCompletion?: string;
connections?: string[];
features: string[];
dailyCapacity: string;
image?: string;
}
export const metroStations: MetroStation[] = [
{
id: 1,
name: 'Dikimevi',
status: 'in-progress',
progress: 75,
startDate: '15 Ocak 2024',
expectedCompletion: '30 Haziran 2026',
connections: ['M1', 'M3'],
features: ['Aktarma İstasyonu', 'Otopark', 'Engelsiz Erişim'],
dailyCapacity: '50,000',
image: 'https://images.pexels.com/photos/17152223/pexels-photo-17152223.jpeg'
},
{
id: 2,
name: 'Tuzluçayır',
status: 'in-progress',
progress: 65,
startDate: '1 Şubat 2024',
expectedCompletion: '15 Temmuz 2026',
connections: [],
features: ['Modern Tasarım', 'Güneş Enerjisi', 'Güvenlik Sistemleri'],
dailyCapacity: '35,000',
image: 'https://images.pexels.com/photos/17302615/pexels-photo-17302615.jpeg'
},
{
id: 3,
name: 'Yenimahalle',
status: 'in-progress',
progress: 55,
startDate: '15 Mart 2024',
expectedCompletion: '30 Ağustos 2026',
connections: ['M2'],
features: ['Aktarma Merkezi', 'Ticari Alan', 'Otopark'],
dailyCapacity: '45,000',
image: 'https://images.pexels.com/photos/33950678/pexels-photo-33950678.jpeg'
},
{
id: 4,
name: 'Demetevler',
status: 'in-progress',
progress: 45,
startDate: '1 Nisan 2024',
expectedCompletion: '15 Eylül 2026',
connections: [],
features: ['Modern Mimari', 'LED Aydınlatma', 'Havalandırma'],
dailyCapacity: '30,000',
image: 'https://images.pexels.com/photos/253647/pexels-photo-253647.jpeg'
},
{
id: 5,
name: 'Akköprü',
status: 'in-progress',
progress: 40,
startDate: '15 Nisan 2024',
expectedCompletion: '30 Eylül 2026',
connections: [],
features: ['Geniş Peronlar', 'Asansör', 'Güvenlik Kameraları'],
dailyCapacity: '28,000',
image: 'https://images.pexels.com/photos/17152223/pexels-photo-17152223.jpeg'
},
{
id: 6,
name: 'Şentepe',
status: 'planned',
progress: 25,
startDate: '1 Mayıs 2024',
expectedCompletion: '15 Ekim 2026',
connections: [],
features: ['Çevre Dostu', 'Akıllı Sistemler', 'Engelsiz Erişim'],
dailyCapacity: '25,000',
image: 'https://images.pexels.com/photos/17302615/pexels-photo-17302615.jpeg'
},
{
id: 7,
name: 'Atatürk',
status: 'planned',
progress: 20,
startDate: '15 Mayıs 2024',
expectedCompletion: '30 Ekim 2026',
connections: ['M1', 'M4'],
features: ['Ana Aktarma', 'AVM Bağlantısı', 'Geniş Alan'],
dailyCapacity: '60,000',
image: 'https://images.pexels.com/photos/33950678/pexels-photo-33950678.jpeg'
},
{
id: 8,
name: 'Sıhhiye',
status: 'planned',
progress: 15,
startDate: '1 Haziran 2024',
expectedCompletion: '15 Kasım 2026',
connections: ['M2', 'M3'],
features: ['Merkezi Konum', 'Hastane Bağlantısı', 'Yüksek Kapasite'],
dailyCapacity: '55,000',
image: 'https://images.pexels.com/photos/253647/pexels-photo-253647.jpeg'
},
{
id: 9,
name: 'Kızılay',
status: 'planned',
progress: 10,
startDate: '15 Haziran 2024',
expectedCompletion: '30 Kasım 2026',
connections: ['M1', 'M2', 'M3', 'M4'],
features: ['Merkez İstasyon', 'Çok Katlı', 'Tüm Hatlar'],
dailyCapacity: '80,000',
image: 'https://images.pexels.com/photos/17152223/pexels-photo-17152223.jpeg'
},
{
id: 10,
name: 'Kocatepe',
status: 'planned',
progress: 5,
startDate: '1 Temmuz 2024',
expectedCompletion: '15 Aralık 2026',
connections: [],
features: ['Modern Tasarım', 'Ticari Birimler', 'Güvenlik'],
dailyCapacity: '22,000',
image: 'https://images.pexels.com/photos/17302615/pexels-photo-17302615.jpeg'
}
];
export const getStatusColor = (status: MetroStation['status']) => {
switch (status) {
case 'completed':
return 'bg-green-500';
case 'in-progress':
return 'bg-blue-500';
case 'planned':
return 'bg-yellow-500';
default:
return 'bg-gray-500';
}
};
export const getStatusText = (status: MetroStation['status']) => {
switch (status) {
case 'completed':
return 'Tamamlandı';
case 'in-progress':
return 'Devam Ediyor';
case 'planned':
return 'Planlanıyor';
default:
return 'Bilinmiyor';
}
};