From 3c92a81cfeb21484b99ec8b64cc7238f44c9dd32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Wed, 27 May 2026 06:32:31 +0300 Subject: [PATCH] feat: implement full-stack awards module with Filament management, database support, and localization. --- .../Admin/Resources/Awards/AwardResource.php | 77 ++++ .../Resources/Awards/Pages/CreateAward.php | 32 ++ .../Resources/Awards/Pages/EditAward.php | 52 +++ .../Resources/Awards/Pages/ListAwards.php | 25 ++ .../Resources/Awards/Schemas/AwardForm.php | 117 +++++ .../Resources/Awards/Tables/AwardsTable.php | 100 +++++ app/Models/Award.php | 59 +++ .../2026_05_27_062656_create_awards_table.php | 42 ++ database/seeders/AwardSeeder.php | 100 +++++ database/seeders/DatabaseSeeder.php | 1 + database/seeders/PageSeeder.php | 18 + lang/en/awards.php | 47 ++ lang/tr/awards.php | 47 ++ .../views/templates/odullerimiz.blade.php | 410 ++++++++++++++++++ 14 files changed, 1127 insertions(+) create mode 100644 app/Filament/Admin/Resources/Awards/AwardResource.php create mode 100644 app/Filament/Admin/Resources/Awards/Pages/CreateAward.php create mode 100644 app/Filament/Admin/Resources/Awards/Pages/EditAward.php create mode 100644 app/Filament/Admin/Resources/Awards/Pages/ListAwards.php create mode 100644 app/Filament/Admin/Resources/Awards/Schemas/AwardForm.php create mode 100644 app/Filament/Admin/Resources/Awards/Tables/AwardsTable.php create mode 100644 app/Models/Award.php create mode 100644 database/migrations/2026_05_27_062656_create_awards_table.php create mode 100644 database/seeders/AwardSeeder.php create mode 100644 lang/en/awards.php create mode 100644 lang/tr/awards.php create mode 100644 resources/views/templates/odullerimiz.blade.php diff --git a/app/Filament/Admin/Resources/Awards/AwardResource.php b/app/Filament/Admin/Resources/Awards/AwardResource.php new file mode 100644 index 0000000..d04f9fe --- /dev/null +++ b/app/Filament/Admin/Resources/Awards/AwardResource.php @@ -0,0 +1,77 @@ + ListAwards::route('/'), + 'create' => CreateAward::route('/create'), + 'edit' => EditAward::route('/{record}/edit'), + ]; + } + + public static function getRecordRouteBindingEloquentQuery(): Builder + { + return parent::getRecordRouteBindingEloquentQuery() + ->withoutGlobalScopes([ + SoftDeletingScope::class, + ]); + } +} diff --git a/app/Filament/Admin/Resources/Awards/Pages/CreateAward.php b/app/Filament/Admin/Resources/Awards/Pages/CreateAward.php new file mode 100644 index 0000000..5b1271f --- /dev/null +++ b/app/Filament/Admin/Resources/Awards/Pages/CreateAward.php @@ -0,0 +1,32 @@ +getResource()::getUrl('index'); + } + + protected function getCreatedNotificationTitle(): ?string + { + return __('awards.created_successfully') ?? 'Ödül başarıyla eklendi.'; + } + + protected function afterCreate(): void + { + TranslationTabs::saveTranslations($this->record, $this->form->getState()); + } +} diff --git a/app/Filament/Admin/Resources/Awards/Pages/EditAward.php b/app/Filament/Admin/Resources/Awards/Pages/EditAward.php new file mode 100644 index 0000000..66ad603 --- /dev/null +++ b/app/Filament/Admin/Resources/Awards/Pages/EditAward.php @@ -0,0 +1,52 @@ +label(__('awards.delete') ?? 'Sil'), + ForceDeleteAction::make() + ->label(__('awards.force_delete') ?? 'Kalıcı Olarak Sil'), + RestoreAction::make() + ->label(__('awards.restore') ?? 'Geri Yükle'), + ]; + } + + protected function getRedirectUrl(): string + { + return $this->getResource()::getUrl('index'); + } + + protected function getSavedNotificationTitle(): ?string + { + return __('awards.updated_successfully') ?? 'Ödül başarıyla güncellendi.'; + } + + protected function mutateFormDataBeforeFill(array $data): array + { + return array_merge($data, TranslationTabs::fillFromRecord($this->record)); + } + + protected function afterSave(): void + { + TranslationTabs::saveTranslations($this->record, $this->form->getState()); + } +} diff --git a/app/Filament/Admin/Resources/Awards/Pages/ListAwards.php b/app/Filament/Admin/Resources/Awards/Pages/ListAwards.php new file mode 100644 index 0000000..f897b71 --- /dev/null +++ b/app/Filament/Admin/Resources/Awards/Pages/ListAwards.php @@ -0,0 +1,25 @@ +label(__('awards.create') ?? 'Yeni Ödül Ekle'), + ]; + } +} diff --git a/app/Filament/Admin/Resources/Awards/Schemas/AwardForm.php b/app/Filament/Admin/Resources/Awards/Schemas/AwardForm.php new file mode 100644 index 0000000..8082cbf --- /dev/null +++ b/app/Filament/Admin/Resources/Awards/Schemas/AwardForm.php @@ -0,0 +1,117 @@ + __('awards.category_hackathon') ?? 'Hackathon', + 'export' => __('awards.category_export') ?? 'İhracat', + 'innovation' => __('awards.category_innovation') ?? 'İnovasyon', + 'design' => __('awards.category_design') ?? 'Tasarım', + 'general' => __('awards.category_general') ?? 'Genel', + ]; + } + + public static function configure(Schema $schema): Schema + { + return $schema + ->columns(3) + ->schema([ + Section::make(__('awards.content_section') ?? 'Ödül İçeriği') + ->schema([ + TextInput::make('title') + ->label(__('awards.title_field') ?? 'Ödül Başlığı (Varsayılan)') + ->required() + ->maxLength(255), + + TextInput::make('issuer') + ->label(__('awards.issuer_field') ?? 'Ödülü Veren Kurum (Varsayılan)') + ->required() + ->maxLength(255), + + Textarea::make('description') + ->label(__('awards.description_field') ?? 'Açıklama (Varsayılan)') + ->required() + ->rows(5) + ->columnSpanFull(), + + TranslationTabs::make([ + 'title' => [ + 'type' => 'text', + 'label' => __('awards.title_field') ?? 'Ödül Başlığı', + 'required' => false, + 'maxLength' => 255, + ], + 'issuer' => [ + 'type' => 'text', + 'label' => __('awards.issuer_field') ?? 'Ödülü Veren Kurum', + 'required' => false, + 'maxLength' => 255, + ], + 'description' => [ + 'type' => 'textarea', + 'label' => __('awards.description_field') ?? 'Açıklama', + 'required' => false, + 'rows' => 5, + ], + ]), + ]) + ->columnSpan(2), + + Section::make(__('awards.settings_section') ?? 'Ödül Ayarları') + ->schema([ + FileUpload::make('image') + ->label(__('awards.image_field') ?? 'Ödül Görseli / Logo') + ->image() + ->disk('public') + ->directory('awards') + ->required(), + + DatePicker::make('award_date') + ->label(__('awards.date_field') ?? 'Ödül Tarihi') + ->required(), + + Select::make('category') + ->label(__('awards.category_field') ?? 'Kategori') + ->options(self::categoryOptions()) + ->default('general') + ->required() + ->native(false), + + TextInput::make('external_link') + ->label(__('awards.link_field') ?? 'Doğrulama / Haber Linki') + ->url() + ->maxLength(255), + + TextInput::make('sort_order') + ->label(__('awards.sort_order_field') ?? 'Sıralama') + ->numeric() + ->default(0) + ->minValue(0), + + Toggle::make('is_featured') + ->label(__('awards.is_featured_field') ?? 'Öne Çıkarılan Ödül') + ->default(false), + + Toggle::make('is_active') + ->label(__('awards.is_active_field') ?? 'Aktif / Görünür') + ->default(true), + ]) + ->columnSpan(1), + ]); + } +} diff --git a/app/Filament/Admin/Resources/Awards/Tables/AwardsTable.php b/app/Filament/Admin/Resources/Awards/Tables/AwardsTable.php new file mode 100644 index 0000000..aa1f654 --- /dev/null +++ b/app/Filament/Admin/Resources/Awards/Tables/AwardsTable.php @@ -0,0 +1,100 @@ +columns([ + ImageColumn::make('image') + ->label(__('awards.table_image') ?? 'Logo') + ->disk('public') + ->square() + ->size(50), + + TextColumn::make('title') + ->label(__('awards.table_title') ?? 'Ödül Başlığı') + ->searchable() + ->sortable() + ->limit(40), + + TextColumn::make('issuer') + ->label(__('awards.table_issuer') ?? 'Veren Kurum') + ->searchable() + ->sortable() + ->limit(30), + + TextColumn::make('award_date') + ->label(__('awards.table_date') ?? 'Ödül Tarihi') + ->date('d.m.Y') + ->sortable() + ->alignCenter(), + + TextColumn::make('category') + ->label(__('awards.table_category') ?? 'Kategori') + ->badge() + ->formatStateUsing(fn (string $state): string => match ($state) { + 'hackathon' => __('awards.category_hackathon') ?? 'Hackathon', + 'export' => __('awards.category_export') ?? 'İhracat', + 'innovation' => __('awards.category_innovation') ?? 'İnovasyon', + 'design' => __('awards.category_design') ?? 'Tasarım', + default => __('awards.category_general') ?? 'Genel', + }) + ->sortable() + ->alignCenter(), + + ToggleColumn::make('is_featured') + ->label(__('awards.table_is_featured') ?? 'Öne Çıkan') + ->alignCenter(), + + ToggleColumn::make('is_active') + ->label(__('awards.table_is_active') ?? 'Aktif') + ->alignCenter(), + + TextColumn::make('sort_order') + ->label(__('awards.sort_order_field') ?? 'Sıra') + ->sortable() + ->alignCenter(), + ]) + ->filters([ + TernaryFilter::make('is_active') + ->label(__('awards.is_active_field') ?? 'Aktiflik Durumu'), + TernaryFilter::make('is_featured') + ->label(__('awards.is_featured_field') ?? 'Öne Çıkarılma Durumu'), + TrashedFilter::make(), + ]) + ->recordActions([ + EditAction::make() + ->label(__('awards.edit') ?? 'Düzenle'), + ]) + ->actions([ + // Individual actions can be put here if necessary + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make() + ->label(__('awards.delete') ?? 'Sil'), + RestoreBulkAction::make() + ->label(__('awards.restore') ?? 'Geri Yükle'), + ForceDeleteBulkAction::make() + ->label(__('awards.force_delete') ?? 'Kalıcı Olarak Sil'), + ]), + ]) + ->defaultSort('sort_order', 'asc') + ->reorderable('sort_order'); + } +} diff --git a/app/Models/Award.php b/app/Models/Award.php new file mode 100644 index 0000000..a57ad59 --- /dev/null +++ b/app/Models/Award.php @@ -0,0 +1,59 @@ + + */ + protected $translatable = [ + 'title', + 'description', + 'issuer', + ]; + + protected $casts = [ + 'award_date' => 'date', + 'is_featured' => 'boolean', + 'is_active' => 'boolean', + 'sort_order' => 'integer', + ]; + + public function scopeActive($query) + { + return $query->where('is_active', true); + } + + public function scopeFeatured($query) + { + return $query->where('is_featured', true); + } + + public function scopeOrdered($query) + { + return $query + ->orderBy('sort_order', 'asc') + ->orderBy('award_date', 'desc'); + } +} diff --git a/database/migrations/2026_05_27_062656_create_awards_table.php b/database/migrations/2026_05_27_062656_create_awards_table.php new file mode 100644 index 0000000..904de48 --- /dev/null +++ b/database/migrations/2026_05_27_062656_create_awards_table.php @@ -0,0 +1,42 @@ +id(); + $table->string('title')->nullable(); // Original/fallback title + $table->text('description')->nullable(); // Original/fallback description + $table->string('issuer')->nullable(); // Original/fallback issuer + $table->date('award_date')->nullable(); + $table->string('image')->nullable(); + $table->string('external_link')->nullable(); + $table->boolean('is_featured')->default(false); + $table->boolean('is_active')->default(true); + $table->unsignedInteger('sort_order')->default(0); + $table->string('category', 64)->default('general'); + $table->timestamps(); + $table->softDeletes(); + + $table->index(['is_active', 'sort_order']); + $table->index('is_featured'); + $table->index('award_date'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('awards'); + } +}; diff --git a/database/seeders/AwardSeeder.php b/database/seeders/AwardSeeder.php new file mode 100644 index 0000000..f3ac991 --- /dev/null +++ b/database/seeders/AwardSeeder.php @@ -0,0 +1,100 @@ + 'Here & AWS & THY Hackathon Birinciliği', + 'description' => '21 Mart 2019 yılında Here, Amazon Web Services (AWS) ve Türk Hava Yolları\'nın (THY) ortaklaşa yürüttüğü Hackathon kapsamında büyük bir başarı göstererek 1. lik ödülünü almaya hak kazandık.', + 'issuer' => 'Here & AWS & THY', + 'award_date' => '2019-03-21', + 'image' => 'assets/img/awards/truncgil-hackathon-birincisi-here-aws-thy.png', + 'external_link' => 'https://truncgil.com', + 'is_featured' => true, + 'is_active' => true, + 'sort_order' => 1, + 'category' => 'hackathon', + 'translations' => [ + 'en' => [ + 'title' => 'Here & AWS & THY Hackathon First Place', + 'description' => 'On March 21, 2019, we achieved outstanding success and won the 1st place award in the Hackathon jointly organized by Here, Amazon Web Services (AWS), and Turkish Airlines (THY).', + 'issuer' => 'Here, AWS & Turkish Airlines', + ] + ], + ], + [ + 'title' => 'Gaziantep Teknopark Yılın İhracat Ödülü', + 'description' => 'İhracat faaliyetlerindeki üstün başarımızdan ötürü 26 Aralık 2019 yılında Gaziantep Teknopark tarafından "Yılın İhracat Ödülü"ne layık görüldük.', + 'issuer' => 'Gaziantep Teknopark', + 'award_date' => '2019-12-26', + 'image' => 'assets/img/awards/truncgil-teknoloji-yilin-ihracat-odulu.png', + 'external_link' => 'https://truncgil.com', + 'is_featured' => true, + 'is_active' => true, + 'sort_order' => 2, + 'category' => 'export', + 'translations' => [ + 'en' => [ + 'title' => 'Gaziantep Technopark Export of the Year Award', + 'description' => 'Due to our outstanding achievements in export activities, we were deemed worthy of the "Export of the Year Award" by Gaziantep Technopark on December 26, 2019.', + 'issuer' => 'Gaziantep Technopark', + ] + ], + ], + [ + 'title' => 'HackSmarCity Hackathon Birinciliği', + 'description' => 'Gaziantep Teknopark, Target Teknoloji Transfer Ofisi, Gaziantep Büyükşehir Belediyesi ve Gaziantep Bilişim\'in ortaklaşa düzenlediği akıllı şehir çözümleri temalı HackSmarCity Hackathon\'unda 1. lik elde ettik.', + 'issuer' => 'Gaziantep Büyükşehir Belediyesi & Teknopark', + 'award_date' => '2019-11-15', // Approximate date in 2019/2020 + 'image' => 'assets/img/awards/truncgil-teknoloji-hacksmarcity.jpg', + 'external_link' => 'https://truncgil.com', + 'is_featured' => false, + 'is_active' => true, + 'sort_order' => 3, + 'category' => 'hackathon', + 'translations' => [ + 'en' => [ + 'title' => 'HackSmarCity Hackathon First Place', + 'description' => 'We achieved 1st place in the HackSmarCity Hackathon themed around smart city solutions, jointly organized by Gaziantep Technopark, Target Technology Transfer Office, Gaziantep Metropolitan Municipality, and Gaziantep Bilisim.', + 'issuer' => 'Gaziantep Metropolitan Municipality & Technopark', + ] + ], + ], + ]; + + foreach ($awards as $awardData) { + $translations = $awardData['translations'] ?? []; + unset($awardData['translations']); + + $award = Award::updateOrCreate( + [ + 'award_date' => $awardData['award_date'], + 'image' => $awardData['image'], + ], + $awardData + ); + + // Save default (Turkish) translations in translation table too so HasTranslations resolves correctly + $award->setTranslation('title', 'tr', $awardData['title'], 'published'); + $award->setTranslation('description', 'tr', $awardData['description'], 'published'); + $award->setTranslation('issuer', 'tr', $awardData['issuer'], 'published'); + + // Save English translations + foreach ($translations as $langCode => $fields) { + foreach ($fields as $fieldName => $value) { + $award->setTranslation($fieldName, $langCode, $value, 'published'); + } + } + } + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 4705856..20f5a3d 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -27,6 +27,7 @@ class DatabaseSeeder extends Seeder DekupaiProductSeeder::class, FinanceProductSeeder::class, BlogSeeder::class, + AwardSeeder::class, ]); // User::factory(10)->create(); diff --git a/database/seeders/PageSeeder.php b/database/seeders/PageSeeder.php index a679017..c0a9e01 100644 --- a/database/seeders/PageSeeder.php +++ b/database/seeders/PageSeeder.php @@ -78,6 +78,24 @@ class PageSeeder extends Seeder ] ); + // 2.1.2 Ödüllerimiz (Child of Kurumsal) + Page::updateOrCreate( + ['slug' => 'odullerimiz'], + [ + 'author_id' => $author->id, + 'parent_id' => $corporate->id, + 'title' => 'Ödüllerimiz', + 'excerpt' => 'Yenilikçi teknolojilerimizle sektöre yön veriyor, başarılarimizi küresel ödüllerle taçlandırıyoruz.', + 'content' => '

Yenilikçi teknolojilerimizle sektöre yön veriyor, başarılarimizi küresel ödüllerle taçlandırıyoruz.

', + 'template' => 'odullerimiz', + 'status' => 'published', + 'is_homepage' => false, + 'show_in_menu' => true, + 'sort_order' => 6, // Sort order among Kurumsal children + 'published_at' => now(), + ] + ); + // 2.2 Vizyon & Misyon (Child of Kurumsal) Page::updateOrCreate( ['slug' => 'vizyon-misyon'], diff --git a/lang/en/awards.php b/lang/en/awards.php new file mode 100644 index 0000000..b299344 --- /dev/null +++ b/lang/en/awards.php @@ -0,0 +1,47 @@ + 'Corporate', + 'title' => 'Our Awards', + 'navigation_label' => 'Our Awards', + 'model_label' => 'Award', + 'plural_model_label' => 'Our Awards', + + 'create' => 'Add New Award', + 'edit' => 'Edit Award', + 'delete' => 'Delete', + 'restore' => 'Restore', + 'force_delete' => 'Force Delete', + + 'content_section' => 'Award Details', + 'settings_section' => 'Award Settings', + + 'title_field' => 'Award Title', + 'issuer_field' => 'Issuing Organization', + 'description_field' => 'Description', + 'image_field' => 'Award Logo / Badge', + 'date_field' => 'Award Date', + 'category_field' => 'Category', + 'link_field' => 'News / Verification Link', + 'sort_order_field' => 'Sort Order', + 'is_featured_field' => 'Feature Award', + 'is_active_field' => 'Active / Visible', + + 'table_image' => 'Logo', + 'table_title' => 'Award Title', + 'table_issuer' => 'Issuer', + 'table_date' => 'Date', + 'table_category' => 'Category', + 'table_is_featured' => 'Featured', + 'table_is_active' => 'Active', + + 'created_successfully' => 'Award successfully created.', + 'updated_successfully' => 'Award successfully updated.', + 'deleted_successfully' => 'Award successfully deleted.', + + 'category_hackathon' => 'Hackathon / Competition', + 'category_export' => 'Export / Success', + 'category_innovation' => 'Innovation / R&D', + 'category_design' => 'Design / UI', + 'category_general' => 'General Award', +]; diff --git a/lang/tr/awards.php b/lang/tr/awards.php new file mode 100644 index 0000000..8a47fa4 --- /dev/null +++ b/lang/tr/awards.php @@ -0,0 +1,47 @@ + 'Kurumsal', + 'title' => 'Ödüllerimiz', + 'navigation_label' => 'Ödüllerimiz', + 'model_label' => 'Ödül', + 'plural_model_label' => 'Ödüllerimiz', + + 'create' => 'Yeni Ödül Ekle', + 'edit' => 'Ödülü Düzenle', + 'delete' => 'Sil', + 'restore' => 'Geri Yükle', + 'force_delete' => 'Kalıcı Olarak Sil', + + 'content_section' => 'Ödül Bilgileri', + 'settings_section' => 'Ödül Ayarları', + + 'title_field' => 'Ödül Adı', + 'issuer_field' => 'Ödülü Veren Kurum', + 'description_field' => 'Açıklama', + 'image_field' => 'Ödül Görseli / Logo', + 'date_field' => 'Ödül Tarihi', + 'category_field' => 'Kategori', + 'link_field' => 'Haber / Doğrulama Linki', + 'sort_order_field' => 'Sıralama', + 'is_featured_field' => 'Öne Çıkar', + 'is_active_field' => 'Aktif / Görünür', + + 'table_image' => 'Logo', + 'table_title' => 'Ödül Adı', + 'table_issuer' => 'Veren Kurum', + 'table_date' => 'Tarih', + 'table_category' => 'Kategori', + 'table_is_featured' => 'Öne Çıkan', + 'table_is_active' => 'Aktif', + + 'created_successfully' => 'Ödül başarıyla eklendi.', + 'updated_successfully' => 'Ödül başarıyla güncellendi.', + 'deleted_successfully' => 'Ödül başarıyla silindi.', + + 'category_hackathon' => 'Hackathon / Yarışma', + 'category_export' => 'İhracat / Başarı', + 'category_innovation' => 'İnovasyon / Ar-Ge', + 'category_design' => 'Tasarım / Arayüz', + 'category_general' => 'Genel Ödül', +]; diff --git a/resources/views/templates/odullerimiz.blade.php b/resources/views/templates/odullerimiz.blade.php new file mode 100644 index 0000000..4121d5d --- /dev/null +++ b/resources/views/templates/odullerimiz.blade.php @@ -0,0 +1,410 @@ +@extends('layouts.site', [ + 'header' => 'partials.header-demo1', + 'footer' => 'partials.footer', +]) + +@section('content') +@php + $awards = \App\Models\Award::active()->ordered()->get(); + + // Extracted categories from active awards for dynamic filter options + $categories = $awards->pluck('category')->unique()->toArray(); + + $heroTitle = $page ? ($page->translate('title') ?: $page->title) : t('Ödüllerimiz ve Başarılarımız'); + $heroExcerpt = $page ? ($page->translate('excerpt') ?: $page->excerpt) : t('Yenilikçi teknolojilerimizle sektöre yön veriyor, başarılarımızı küresel ödüllerle taçlandırıyoruz.'); + + // Timeline color palette + $colors = ['#e31e24', '#f5a623', '#27ae60', '#2980b9', '#8e44ad', '#1abc9c']; +@endphp + +
+ + +
+
+
+
+

{{ $heroTitle }}

+

{{ $heroExcerpt }}

+ +
+
+
+
+ + +
+
+
+ + +
+ + @if(in_array('hackathon', $categories)) + + @endif + @if(in_array('export', $categories)) + + @endif + @if(in_array('innovation', $categories)) + + @endif + @if(in_array('design', $categories)) + + @endif +
+ + +
+
+ {{ t('BAŞLANGIÇ') }} +
+ +
+ @foreach($awards as $index => $award) + @php + $color = $colors[$index % count($colors)]; + $position = $index % 2 === 0 ? 'right' : 'left'; + $imgSrc = str_starts_with($award->image, 'assets/') ? asset($award->image) : asset('storage/' . $award->image); + @endphp +
+ + +
+ +
+ + +
+
+ + +
+ {{ $award->translate('title') }} + +
+ + {{ $award->category === 'hackathon' ? t('Yarışma') : ($award->category === 'export' ? t('İhracat') : t('Başarı')) }} + + @if($award->is_featured) + + {{ t('Öne Çıkan') }} + + @endif +
+
+ + +
+
+ {{ $award->award_date ? $award->award_date->translatedFormat('d F Y') : '' }} +
+ +

+ {{ $award->translate('title') }} +

+ +

+ {{ $award->translate('description') }} +

+ + +
+ + {{ $award->translate('issuer') }} + + @if($award->external_link) + + {{ t('Doğrula') }} + + @endif +
+
+ +
+
+ +
+ @endforeach +
+ +
+ {{ t('BUGÜN') }} +
+
+ + +
+
+ {{ t('GÜVEN & STANDARTLAR') }} +

{{ t('Standartlarımız ve Sertifikalarımız') }}

+

{{ t('Bir teknoloji şirketi olarak, geliştirdiğimiz tüm sistemlerde ulusal ve uluslararası güvenlik ve kalite standartlarına tam uyum sağlıyoruz.') }}

+
+ +
+ +
+
+ +
+ ISO 27001 + {{ t('Bilgi Güvenliği') }} +
+ +
+
+ +
+ ISO 9001 + {{ t('Kalite Yönetimi') }} +
+ +
+
+ +
+ KVKK / GDPR + {{ t('Veri Güvenliği') }} +
+ +
+
+ +
+ Teknopark + {{ t('Ar-Ge Liderliği') }} +
+
+
+ + +
+
+
+ +

{{ t('Bu başarıları birlikte kazandık!') }}

+

{{ t('Geleceği yenilikçi teknolojilerle şekillendiren bu harika ekibin bir parçası olmak, bizimle yeni ödüllere koşmak ister misin?') }}

+ + {{ t('Aramıza Katıl') }} + +
+ +
+
+
+
+ +@push('styles') + +@endpush + +@push('scripts') + +@endpush +@endsection