Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Bakı və Azərbaycan üzrə ən son vakansiyalar. Qeydiyyatsız müraciət, maaş və qrafik üzrə sürətli axtarış.
Translation pending
BusinessTypeScript · CSSGitHub @baghirovkhalil-aiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Next.js 14 (App Router) + Tailwind. Data hələlik lib/data.ts-dəki mock datadır.
npm install
cp .env.example .env.local
npm run dev
app/[locale]/ səhifələr: ana, /vakansiyalar, /vakansiya/[slug], /is-elanlari/[şəhər]/[kateqoriya], /elan-yerlesdirapp/sitemap.ts, app/robots.ts, app/api/ dil prefiksindən kənardadırlib/data.ts data qatı (sonra Supabase ilə əvəz olunacaq)lib/seo.ts JobPosting schema və formatlarcomponents/ Header, Footer, Logo, VacancyCard, SearchForm, Pagination, PostForm, LanguageSwitcher, ThemeSwitcher, ScrollFx, Reveal, CountUp, ShareButton, MobileNav, CategoryChips, PricingTable, SubscribeFormmiddleware.ts dil yönləndirməsi, lib/i18n.ts köməkçilərNEXT_PUBLIC_DEMO_MODE təyin olunmayıbsa sayt demo rejimində işləyir: bütün səhifələr noindex, robots.txt hamını bloklayır, üstdə "Test rejimi" xəbərdarlığı görünür.
Real elanlarla açılışdan əvvəl Vercel-də NEXT_PUBLIC_DEMO_MODE=false yaz.
/elan-yerlesdir forması POST /api/vacancies-ə göndərir. Hazırda yalnız yoxlayır, bazaya yazmır (Supabase növbəti addımdır).
/vakansiyalar. Digərləri: /ru/vakansiyalar, /en/vakansiyalar. /az/... avtomatik prefikssizə yönlənir.lib/dictionaries.ts-dədir (hər dil üçün eyni quruluş, TypeScript çatışmayan açarı göstərir).lib/content-i18n.ts-dədir.hreflang + canonical, sitemap-də hər URL üçün 3 dil, <html lang> və OpenGraph locale dilə görə dəyişir.lib/i18n.ts-də locales və localeMeta-ya əlavə et, lib/dictionaries.ts-də yeni obyekt yaz, lib/content-i18n.ts-də şəhər/sahə/rayon/şablon tərcümələrini əlavə et.title_ru, title_en...) və ya ayrıca tərcümə cədvəli lazım olacaq. İndi tərcümə yalnız nümunə datadadır.localStorage-də saxlanır.app/globals.css-də CSS dəyişənləridir (:root ağ, [data-theme="dark"] qara). Komponentlərdə bg-surface, text-ink, text-body, text-muted, text-on-brand, gold kimi adlardan istifadə et (bg-white, text-slate-* yox).lib/theme.ts-dəki kiçik skript temanı qoyur, ona görə yanıb-sönmə olmur.tailwind.config.ts-dədir.prefers-reduced-motion açıq olanda animasiyalar söndürülür. JS işləməsə, kontent adi halda görünür./qiymetler. 3 paket: Başlanğıc (pulsuz), Biznes, Korporativ; aylıq/illik (−20%) keçid, tez-tez verilən suallar.lib/plans.ts-dədir, paket mətnləri 3 dildə lib/dictionaries.ts-dədir (pricing)./elan-yerlesdir?plan=pro açılır və formada seçilmiş paket göstərilir.SubscribeForm var (e-poçt + istəyə bağlı sahə). POST /api/subscribe e-poçtu yoxlayır, spam üçün gizli xana var.app/api/subscribe/route.ts-dəki TODO yerinə Supabase və ya email xidməti (Resend, Mailchimp) qoşulmalıdır./vakansiyalar səhifəsində bütün sahələr çip kimi (telefonda 2 sıralı sürüşmə, kompüterdə hamısı görünür).safe-area nəzərə alınıb.lib/boosts.ts (BOOSTS). Server də oradan oxuyur./one-cixar səhifəsində xidməti seçir, karta köçürür, çekin şəklini yükləyir. POST /api/receipt çeki Gemini ilə yoxlayır.GEMINI_API_KEY — çeki oxumaq üçün (vacib)TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID — hər çek şəkli ilə Telegram-a gəlsinNEXT_PUBLIC_PAY_CARD — kart nömrəsini dəyişmək üçün (istəyə bağlı)tier, tier_until, bumped_at sahələri yazılacaq./cv-bazasi, /cv/[slug], /cv-yerlesdir. Nümunə namizədlər lib/candidates.ts-dədir. CV səhifələri şəxsi məlumat olduğu üçün noindex-dir.lib/blog/-dadır: index.ts (slug, kateqoriya, tarix, ikon, rəng), posts-az.ts, posts-ru.ts, posts-en.ts (mətn).p (abzas), h (başlıq, mündəricata düşür), ul/ol (siyahı), tip (məsləhət), quote (nümunə), cta (çağırış: cv, interview, jobs, remote, post, boost, cvdb, cvpost).index.ts-də metas siyahısına yaz, sonra 3 dil faylında eyni slug ilə mətni əlavə et. Hansısa dildə mətn yoxdursa, yazı o dildə avtomatik gizlənir. Sitemap özü yenilənir.