Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 1m9s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🏗️ Build (push) Failing after 30m21s
Build & Deploy / 🧪 QA (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 4s
338 lines
7.7 KiB
TypeScript
338 lines
7.7 KiB
TypeScript
import { FormState } from "./types";
|
|
|
|
export const PRICING = {
|
|
BASE_WEBSITE: 4000,
|
|
PAGE: 600,
|
|
FEATURE: 1500,
|
|
FUNCTION: 800,
|
|
NEW_DATASET: 450,
|
|
HOSTING_MONTHLY: 250,
|
|
STORAGE_EXPANSION_MONTHLY: 10,
|
|
CMS_SETUP: 1500,
|
|
CMS_CONNECTION_PER_FEATURE: 1500,
|
|
API_INTEGRATION: 800,
|
|
APP_HOURLY: 120,
|
|
};
|
|
|
|
export const initialState: FormState = {
|
|
projectType: "website",
|
|
// Company
|
|
companyName: "",
|
|
employeeCount: "",
|
|
// Existing Presence
|
|
existingWebsite: "",
|
|
socialMedia: [],
|
|
socialMediaUrls: {},
|
|
existingDomain: "",
|
|
wishedDomain: "",
|
|
// Project
|
|
websiteTopic: "",
|
|
selectedPages: ["Home"],
|
|
otherPages: [],
|
|
otherPagesCount: 0,
|
|
features: [],
|
|
otherFeatures: [],
|
|
otherFeaturesCount: 0,
|
|
functions: [],
|
|
otherFunctions: [],
|
|
otherFunctionsCount: 0,
|
|
apiSystems: [],
|
|
otherTech: [],
|
|
otherTechCount: 0,
|
|
assets: [],
|
|
otherAssets: [],
|
|
otherAssetsCount: 0,
|
|
newDatasets: 0,
|
|
cmsSetup: false,
|
|
storageExpansion: 0,
|
|
name: "",
|
|
email: "",
|
|
phone: "",
|
|
role: "",
|
|
message: "",
|
|
sitemapFile: null,
|
|
contactFiles: [],
|
|
// Design
|
|
designVibe: "minimal",
|
|
colorScheme: ["#ffffff", "#f8fafc", "#0f172a"],
|
|
references: [],
|
|
designWishes: "",
|
|
// Maintenance
|
|
expectedAdjustments: "low",
|
|
languagesList: ["Deutsch"],
|
|
personName: "",
|
|
// Timeline
|
|
deadline: "flexible",
|
|
// Web App specific
|
|
targetAudience: "internal",
|
|
userRoles: [],
|
|
dataSensitivity: "standard",
|
|
platformType: "web-only",
|
|
// Meta
|
|
dontKnows: [],
|
|
visualStaging: "standard",
|
|
complexInteractions: "standard",
|
|
// AI generated / Post-processed
|
|
briefingSummary: "",
|
|
designVision: "",
|
|
positionDescriptions: {},
|
|
taxId: "",
|
|
sitemap: [],
|
|
};
|
|
|
|
export const PAGE_SAMPLES = [
|
|
{ id: "Home", label: "Startseite", desc: "Der erste Eindruck Ihrer Marke." },
|
|
{ id: "About", label: "Über uns", desc: "Ihre Geschichte und Ihr Team." },
|
|
{ id: "Services", label: "Leistungen", desc: "Übersicht Ihres Angebots." },
|
|
{ id: "Contact", label: "Kontakt", desc: "Anlaufstelle für Ihre Kunden." },
|
|
{
|
|
id: "Landing",
|
|
label: "Landingpage",
|
|
desc: "Optimiert für Marketing-Kampagnen.",
|
|
},
|
|
{ id: "Legal", label: "Rechtliches", desc: "Impressum & Datenschutz." },
|
|
];
|
|
|
|
export const FEATURE_OPTIONS = [
|
|
{
|
|
id: "blog_news",
|
|
label: "News & Artikel",
|
|
desc: "Ein Bereich für aktuelle Beiträge.",
|
|
},
|
|
{
|
|
id: "products",
|
|
label: "Produkte / Leistungen",
|
|
desc: "Katalog Ihres Angebots.",
|
|
},
|
|
{
|
|
id: "jobs",
|
|
label: "Jobs & Karriere",
|
|
desc: "Stellenanzeigen schalten.",
|
|
},
|
|
{
|
|
id: "refs",
|
|
label: "Projekte / Cases",
|
|
desc: "Ihre Arbeiten präsentieren.",
|
|
},
|
|
{ id: "events", label: "Termine & Events", desc: "Veranstaltungskalender." },
|
|
];
|
|
|
|
export const FUNCTION_OPTIONS = [
|
|
{ id: "search", label: "Suchfunktion", desc: "Inhalte schnell finden." },
|
|
{
|
|
id: "filter",
|
|
label: "Filterung",
|
|
desc: "Inhalte sortieren & filtern.",
|
|
},
|
|
{
|
|
id: "pdf",
|
|
label: "Automatische PDFs",
|
|
desc: "Rechnungen oder Datenblätter.",
|
|
},
|
|
{
|
|
id: "forms",
|
|
label: "Smarte Formulare",
|
|
desc: "Anfragen mit Logik prüfen.",
|
|
},
|
|
];
|
|
|
|
export const API_OPTIONS = [
|
|
{
|
|
id: "crm",
|
|
label: "CRM System",
|
|
desc: "HubSpot, Salesforce, Pipedrive etc.",
|
|
},
|
|
{
|
|
id: "erp",
|
|
label: "ERP / Warenwirtschaft",
|
|
desc: "SAP, Microsoft Dynamics, Xentral etc.",
|
|
},
|
|
{
|
|
id: "stripe",
|
|
label: "Stripe / Payment",
|
|
desc: "Zahlungsabwicklung und Abonnements.",
|
|
},
|
|
{
|
|
id: "newsletter",
|
|
label: "Newsletter / Marketing",
|
|
desc: "Mailchimp, Brevo, ActiveCampaign etc.",
|
|
},
|
|
{
|
|
id: "ecommerce",
|
|
label: "E-Commerce / Shop",
|
|
desc: "Shopify, WooCommerce, Shopware Sync.",
|
|
},
|
|
{
|
|
id: "hr",
|
|
label: "HR / Recruiting",
|
|
desc: "Personio, Workday, Recruitee etc.",
|
|
},
|
|
{
|
|
id: "realestate",
|
|
label: "Immobilien",
|
|
desc: "OpenImmo, FlowFact, Immowelt Sync.",
|
|
},
|
|
{
|
|
id: "calendar",
|
|
label: "Termine / Booking",
|
|
desc: "Calendly, Shore, Doctolib etc.",
|
|
},
|
|
{
|
|
id: "social",
|
|
label: "Social Media Sync",
|
|
desc: "Automatisierte Posts oder Feeds.",
|
|
},
|
|
{
|
|
id: "maps",
|
|
label: "Google Maps / Places",
|
|
desc: "Standortsuche und Kartenintegration.",
|
|
},
|
|
{
|
|
id: "analytics",
|
|
label: "Custom Analytics",
|
|
desc: "Anbindung an spezialisierte Tracking-Tools.",
|
|
},
|
|
];
|
|
|
|
export const ASSET_OPTIONS = [
|
|
{
|
|
id: "existing_website",
|
|
label: "Bestehende Website",
|
|
desc: "Inhalte oder Struktur können übernommen werden.",
|
|
},
|
|
{ id: "logo", label: "Logo", desc: "Vektordatei Ihres Logos." },
|
|
{
|
|
id: "styleguide",
|
|
label: "Styleguide",
|
|
desc: "Farben, Schriften, Design-Vorgaben.",
|
|
},
|
|
{
|
|
id: "content_concept",
|
|
label: "Inhalts-Konzept",
|
|
desc: "Struktur und Texte sind bereits geplant.",
|
|
},
|
|
{
|
|
id: "media",
|
|
label: "Bild/Video-Material",
|
|
desc: "Professionelles Bildmaterial vorhanden.",
|
|
},
|
|
{ id: "icons", label: "Icons", desc: "Eigene Icon-Sets vorhanden." },
|
|
{
|
|
id: "illustrations",
|
|
label: "Illustrationen",
|
|
desc: "Eigene Illustrationen vorhanden.",
|
|
},
|
|
{
|
|
id: "fonts",
|
|
label: "Fonts",
|
|
desc: "Lizenzen für Hausschriften vorhanden.",
|
|
},
|
|
];
|
|
|
|
export const DESIGN_OPTIONS = [
|
|
{
|
|
id: "minimal",
|
|
label: "Minimalistisch",
|
|
desc: "Viel Weißraum, klare Typografie.",
|
|
},
|
|
{
|
|
id: "bold",
|
|
label: "Mutig & Laut",
|
|
desc: "Starke Kontraste, große Schriften.",
|
|
},
|
|
{
|
|
id: "nature",
|
|
label: "Natürlich",
|
|
desc: "Sanfte Erdtöne, organische Formen.",
|
|
},
|
|
{ id: "tech", label: "Technisch", desc: "Präzise Linien, dunkle Akzente." },
|
|
];
|
|
|
|
export const EMPLOYEE_OPTIONS = [
|
|
{ id: "1-5", label: "1-5 Mitarbeiter" },
|
|
{ id: "6-20", label: "6-20 Mitarbeiter" },
|
|
{ id: "21-100", label: "21-100 Mitarbeiter" },
|
|
{ id: "100+", label: "100+ Mitarbeiter" },
|
|
];
|
|
|
|
export const SOCIAL_MEDIA_OPTIONS = [
|
|
{ id: "instagram", label: "Instagram" },
|
|
{ id: "linkedin", label: "LinkedIn" },
|
|
{ id: "facebook", label: "Facebook" },
|
|
{ id: "twitter", label: "Twitter / X" },
|
|
{ id: "tiktok", label: "TikTok" },
|
|
{ id: "youtube", label: "YouTube" },
|
|
];
|
|
|
|
export const VIBE_LABELS: Record<string, string> = {
|
|
minimal: "Minimalistisch",
|
|
bold: "Mutig & Laut",
|
|
nature: "Natürlich",
|
|
tech: "Technisch",
|
|
};
|
|
|
|
export const DEADLINE_LABELS: Record<string, string> = {
|
|
asap: "So schnell wie möglich",
|
|
"2-3-months": "In 2-3 Monaten",
|
|
"3-6-months": "In 3-6 Monaten",
|
|
flexible: "Flexibel",
|
|
};
|
|
|
|
export const ASSET_LABELS: Record<string, string> = {
|
|
existing_website: "Bestehende Website",
|
|
logo: "Logo",
|
|
styleguide: "Styleguide",
|
|
content_concept: "Inhalts-Konzept",
|
|
media: "Bild/Video-Material",
|
|
icons: "Icons",
|
|
illustrations: "Illustrationen",
|
|
fonts: "Fonts",
|
|
};
|
|
|
|
export const FEATURE_LABELS: Record<string, string> = {
|
|
blog_news: "Blog / News",
|
|
products: "Produktbereich",
|
|
jobs: "Karriere / Jobs",
|
|
refs: "Referenzen / Cases",
|
|
events: "Events / Termine",
|
|
};
|
|
|
|
export const FUNCTION_LABELS: Record<string, string> = {
|
|
search: "Suche",
|
|
filter: "Filter-Systeme",
|
|
pdf: "PDF-Export",
|
|
forms: "Individuelle Formular-Logik",
|
|
members: "Mitgliederbereich",
|
|
calendar: "Event-Kalender",
|
|
multilang: "Mehrsprachigkeit",
|
|
chat: "Echtzeit-Chat",
|
|
};
|
|
|
|
export const API_LABELS: Record<string, string> = {
|
|
crm_erp: "CRM / ERP",
|
|
payment: "Payment",
|
|
marketing: "Marketing",
|
|
ecommerce: "E-Commerce",
|
|
maps: "Google Maps / Places",
|
|
social: "Social Media Sync",
|
|
analytics: "Custom Analytics",
|
|
};
|
|
|
|
export const SOCIAL_LABELS: Record<string, string> = {
|
|
instagram: "Instagram",
|
|
linkedin: "LinkedIn",
|
|
facebook: "Facebook",
|
|
twitter: "Twitter / X",
|
|
tiktok: "TikTok",
|
|
youtube: "YouTube",
|
|
};
|
|
|
|
export const PAGE_LABELS: Record<string, string> = {
|
|
Home: "Startseite",
|
|
About: "Über uns",
|
|
Services: "Leistungen",
|
|
Contact: "Kontakt",
|
|
Landing: "Landingpage",
|
|
Legal: "Impressum & Datenschutz",
|
|
};
|