Genel düzeltmeler

This commit is contained in:
Sedat Öztürk 2025-06-21 00:01:38 +03:00
parent ef309d0e3f
commit ddf2eac23e
7 changed files with 82 additions and 92 deletions

View file

@ -2,7 +2,7 @@
"App": {
"SelfUrl": "https://kurs-dev-api.sozsoft.com",
"ClientUrl": "https://kurs-dev.sozsoft.com",
"CorsOrigins": "https://kurs-dev.sozsoft.com",
"CorsOrigins": "https://sozsoft.com,https://kurs-dev.sozsoft.com",
"RedirectAllowedUrls": "https://kurs-dev.sozsoft.com,https://kurs-dev.sozsoft.com/authentication/callback",
"AttachmentsPath": "/etc/api/mail-queue/attachments",
"CdnPath": "/etc/api/cdn"

View file

@ -2,7 +2,7 @@
"App": {
"SelfUrl": "https://kurs-api.sozsoft.com",
"ClientUrl": "https://kurs.sozsoft.com",
"CorsOrigins": "https://kurs.sozsoft.com,https://demo.sozsoft.com",
"CorsOrigins": "https://sozsoft.com,https://kurs.sozsoft.com,https://demo.sozsoft.com",
"RedirectAllowedUrls": "https://kurs.sozsoft.com,https://kurs.sozsoft.com/authentication/callback",
"AttachmentsPath": "/etc/api/mail-queue/attachments",
"CdnPath": "/etc/api/cdn"

View file

@ -798,7 +798,7 @@ const translations = {
"common.message": "Message",
"common.address": "Address",
"common.city": "City",
"common.company": "Company Name",
"common.company": "Organization Name",
"common.fullName": "Full Name",
"common.branchCount": "Number of Branches",
"common.userCount": "Number of Users",

View file

@ -1,54 +1,24 @@
export const team = {
en: [
{
name: "Özlem Öztürk",
name: "Özlem ÖZTÜRK",
title: "Founder",
imageUrl: "/img/women.png"
},
{
name: "Sefa Öztürk",
title: "CTO",
imageUrl: "/img/men.png"
},
{
name: "Ahmet Öztürk",
title: "Sales Director",
imageUrl: "/img/men.png"
},
{
name: "Esra Öztürk",
title: "Project Director",
imageUrl: "/img/women.png"
},
{
name: "Eva Öztürk",
name: "Burak KATAR",
title: "Tech Director",
imageUrl: "/img/women.png"
}
],
tr: [
{
name: "Özlem Öztürk",
name: "Özlem ÖZTÜRK",
title: "Kurucu",
imageUrl: "/img/women.png"
},
{
name: "Sefa Öztürk",
title: "CTO",
imageUrl: "/img/men.png"
},
{
name: "Ahmet Öztürk",
title: "Satış Direktörü",
imageUrl: "/img/men.png"
},
{
name: "Esra Öztürk",
title: "Proje Direktörü",
imageUrl: "/img/women.png"
},
{
name: "Eva Öztürk",
name: "Burak KATAR",
title: "Teknoloji Direktörü",
imageUrl: "/img/women.png"
}

View file

@ -1,7 +1,7 @@
import React from 'react';
import { Users, Award, Clock, Globe2 } from 'lucide-react';
import { useLanguage } from '../context/LanguageContext';
import { team } from '../locales/team';
import React from "react";
import { Users, Award, Clock, Globe2 } from "lucide-react";
import { useLanguage } from "../context/LanguageContext";
import { team } from "../locales/team";
const About: React.FC = () => {
const { t, language } = useLanguage();
@ -12,16 +12,18 @@ const About: React.FC = () => {
<div className="min-h-screen bg-gray-50">
{/* Hero Section */}
<div className="relative bg-blue-900 text-white py-12">
<div className="absolute inset-0 opacity-20" style={{
backgroundImage: 'url("https://images.pexels.com/photos/3183183/pexels-photo-3183183.jpeg?auto=compress&cs=tinysrgb&w=1920")',
backgroundSize: 'cover',
backgroundPosition: 'center',
}}></div>
<div
className="absolute inset-0 opacity-20"
style={{
backgroundImage:
'url("https://images.pexels.com/photos/3183183/pexels-photo-3183183.jpeg?auto=compress&cs=tinysrgb&w=1920")',
backgroundSize: "cover",
backgroundPosition: "center",
}}
></div>
<div className="container mx-auto pt-16 px-4 relative">
<h1 className="text-5xl font-bold mb-6">{t('about.title')}</h1>
<p className="text-xl max-w-3xl">
{t('about.subtitle')}
</p>
<h1 className="text-5xl font-bold mb-6">{t("about.title")}</h1>
<p className="text-xl max-w-3xl">{t("about.subtitle")}</p>
</div>
</div>
@ -32,22 +34,22 @@ const About: React.FC = () => {
<div className="text-center">
<Users className="w-12 h-12 text-blue-600 mx-auto mb-4" />
<div className="text-4xl font-bold text-gray-900 mb-2">300+</div>
<div className="text-gray-600">{t('about.stats.clients')}</div>
<div className="text-gray-600">{t("about.stats.clients")}</div>
</div>
<div className="text-center">
<Award className="w-12 h-12 text-blue-600 mx-auto mb-4" />
<div className="text-4xl font-bold text-gray-900 mb-2">20+</div>
<div className="text-gray-600">{t('about.stats.experience')}</div>
<div className="text-gray-600">{t("about.stats.experience")}</div>
</div>
<div className="text-center">
<Clock className="w-12 h-12 text-blue-600 mx-auto mb-4" />
<div className="text-4xl font-bold text-gray-900 mb-2">7/24</div>
<div className="text-gray-600">{t('about.stats.support')}</div>
<div className="text-gray-600">{t("about.stats.support")}</div>
</div>
<div className="text-center">
<Globe2 className="w-12 h-12 text-blue-600 mx-auto mb-4" />
<div className="text-4xl font-bold text-gray-900 mb-2">3</div>
<div className="text-gray-600">{t('about.stats.countries')}</div>
<div className="text-gray-600">{t("about.stats.countries")}</div>
</div>
</div>
</div>
@ -57,31 +59,34 @@ const About: React.FC = () => {
<div className="py-6">
<div className="container mx-auto px-4">
<div className="mb-6">
<div className="space-y-6 mx-auto mx-auto text-gray-800 text-lg leading-relaxed">
<p className="bg-white p-5 shadow-md border-l-4 border-blue-600">
{t('about.description.part1')}
{t("about.description.part1")}
</p>
<p className="italic text-center text-blue-700 font-semibold">
{t('about.description.motto')}
{t("about.description.motto")}
</p>
<p className="bg-white p-5 shadow-md border-l-4 border-blue-600">
{t('about.description.part2')}
{t("about.description.part2")}
</p>
<p className="text-center text-blue-700 font-medium">
{t('about.description.closing')}
{t("about.description.closing")}
</p>
</div>
</div>
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12">
<div className="bg-white p-8 rounded-xl shadow-lg">
<h3 className="text-2xl font-bold text-gray-900 mb-4">{t('about.mission')}</h3>
<p className="text-gray-700">{t('about.mission.desc')}</p>
<h3 className="text-2xl font-bold text-gray-900 mb-4">
{t("about.mission")}
</h3>
<p className="text-gray-700">{t("about.mission.desc")}</p>
</div>
<div className="bg-white p-8 rounded-xl shadow-lg">
<h3 className="text-2xl font-bold text-gray-900 mb-4">{t('about.vision')}</h3>
<p className="text-gray-700">{t('about.vision.desc')}</p>
<h3 className="text-2xl font-bold text-gray-900 mb-4">
{t("about.vision")}
</h3>
<p className="text-gray-700">{t("about.vision.desc")}</p>
</div>
</div>
</div>
@ -91,13 +96,19 @@ const About: React.FC = () => {
<div className="py-16 bg-white">
<div className="container mx-auto px-4">
<h2 className="text-3xl font-bold text-gray-900 text-center mb-12">
{t('about.team')}
{t("about.team")}
</h2>
<div className="grid grid-cols-1 md:grid-cols-5 gap-8">
<div className="flex justify-center gap-8 flex-wrap">
{teamData.map((member, index) => (
<div key={index} className="text-center">
<img src={member.imageUrl} alt={member.name} className="w-32 h-32 rounded-full mx-auto mb-4 object-cover" />
<h3 className="text-xl font-semibold text-gray-900">{member.name}</h3>
<div key={index} className="text-center w-60">
<img
src={member.imageUrl}
alt={member.name}
className="w-32 h-32 rounded-full mx-auto mb-4 object-cover"
/>
<h3 className="text-xl font-semibold text-gray-900">
{member.name}
</h3>
<p className="text-gray-600">{member.title}</p>
</div>
))}

View file

@ -10,6 +10,7 @@ import {
MessageCircle,
} from "lucide-react";
import { useLanguage } from "../context/LanguageContext";
import { demoService } from "../services/api/demo.service";
const Contact: React.FC = () => {
const { t } = useLanguage();
@ -38,18 +39,9 @@ const Contact: React.FC = () => {
const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
const apiUrl = `${import.meta.env.VITE_API_URL}/api/app/demo/demo-form`;
try {
const response = await fetch(apiUrl, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(formData),
});
await demoService.createDemoForm(formData);
if (response.ok) {
alert("Form başarıyla gönderildi.");
setFormData({
company: "",
@ -61,9 +53,6 @@ const Contact: React.FC = () => {
userCount: "",
message: "",
});
} else {
alert("Bir hata oluştu. Lütfen tekrar deneyin.");
}
} catch (error) {
console.error("Gönderim hatası:", error);
alert("Sunucuya ulaşılamıyor.");

View file

@ -0,0 +1,20 @@
import { apiClient } from './config'
export interface DemoFormRequest {
company: string
fullName: string
email: string
phone: string
address: string
branchCount: string
userCount: string
message: string
}
class DemoService {
async createDemoForm(data: DemoFormRequest): Promise<void> {
await apiClient.post('/api/app/demo/demo-form', data)
}
}
export const demoService = new DemoService()