feat(surveys): implement account setup survey functionality

- Added new database migration to create survey-related tables for storing questions and responses.
- Developed SurveyController to handle fetching and submitting survey data.
- Created survey API routes for account setup, including endpoints for retrieving the survey and submitting responses.
- Implemented frontend components for displaying the survey and capturing user responses, integrating with Redux for state management.
- Enhanced localization files to include survey-related text for multiple languages.
- Added validation middleware for survey submissions to ensure data integrity.
This commit is contained in:
chamikaJ
2025-07-24 17:12:47 +05:30
parent 15ff69a031
commit fe7c15ced1
22 changed files with 1344 additions and 204 deletions

View File

@@ -27,5 +27,43 @@
"formTitle": "Krijoni detyrën tuaj të parë.",
"step3Title": "Fto ekipin tënd të punojë me",
"maxMembers": " (Mund të ftoni deri në 5 anëtarë)",
"maxTasks": " (Mund të krijoni deri në 5 detyra)"
"maxTasks": " (Mund të krijoni deri në 5 detyra)",
"surveyStepTitle": "Na tregoni për ju",
"surveyStepLabel": "Na ndihmoni të personalizojmë eksperiencën tuaj në Worklenz duke përgjigjur disa pyetjeve.",
"organizationType": "Cila përshkruan më mirë organizatën tuaj?",
"organizationTypeFreelancer": "Freelancer",
"organizationTypeStartup": "Startup",
"organizationTypeSmallMediumBusiness": "Biznes i Vogël ose i Mesmu",
"organizationTypeAgency": "Agjensi",
"organizationTypeEnterprise": "Ndërmarrje",
"organizationTypeOther": "Tjetër",
"userRole": "Cili është roli juaj?",
"userRoleFounderCeo": "Themeluesi / CEO",
"userRoleProjectManager": "Menaxheri i Projektit",
"userRoleSoftwareDeveloper": "Zhvilluesi i Software-it",
"userRoleDesigner": "Dizajneri",
"userRoleOperations": "Operacionet",
"userRoleOther": "Tjetër",
"mainUseCases": "Për çfarë do ta përdorni kryësisht Worklenz?",
"mainUseCasesTaskManagement": "Menaxhimi i detyrave",
"mainUseCasesTeamCollaboration": "Bashkëpunimi i ekipit",
"mainUseCasesResourcePlanning": "Planifikimi i burimeve",
"mainUseCasesClientCommunication": "Komunikimi me klientët & raportet",
"mainUseCasesTimeTracking": "Ndjekja e kohës",
"mainUseCasesOther": "Tjetër",
"previousTools": "Cilat vegla përdornit para Worklenz?",
"previousToolsPlaceholder": "p.sh. Trello, Asana, Monday.com",
"howHeardAbout": "Si dëgjuat për Worklenz?",
"howHeardAboutGoogleSearch": "Kërkimi Google",
"howHeardAboutTwitter": "Twitter",
"howHeardAboutLinkedin": "LinkedIn",
"howHeardAboutFriendColleague": "Një miku ose kolegu",
"howHeardAboutBlogArticle": "Një blog ose artikulli",
"howHeardAboutOther": "Tjetër"
}

View File

@@ -27,5 +27,43 @@
"formTitle": "Erstellen Sie Ihre erste Aufgabe.",
"step3Title": "Laden Sie Ihr Team zur Zusammenarbeit ein",
"maxMembers": " (Sie können bis zu 5 Mitglieder einladen)",
"maxTasks": " (Sie können bis zu 5 Aufgaben erstellen)"
"maxTasks": " (Sie können bis zu 5 Aufgaben erstellen)",
"surveyStepTitle": "Erzählen Sie uns von sich",
"surveyStepLabel": "Helfen Sie uns, Ihre Worklenz-Erfahrung zu personalisieren, indem Sie ein paar Fragen beantworten.",
"organizationType": "Was beschreibt Ihre Organisation am besten?",
"organizationTypeFreelancer": "Freelancer",
"organizationTypeStartup": "Startup",
"organizationTypeSmallMediumBusiness": "Kleines oder mittleres Unternehmen",
"organizationTypeAgency": "Agentur",
"organizationTypeEnterprise": "Unternehmen",
"organizationTypeOther": "Andere",
"userRole": "Was ist Ihre Rolle?",
"userRoleFounderCeo": "Gründer / CEO",
"userRoleProjectManager": "Projektmanager",
"userRoleSoftwareDeveloper": "Software-Entwickler",
"userRoleDesigner": "Designer",
"userRoleOperations": "Betrieb",
"userRoleOther": "Andere",
"mainUseCases": "Wofür werden Sie Worklenz hauptsächlich verwenden?",
"mainUseCasesTaskManagement": "Aufgabenverwaltung",
"mainUseCasesTeamCollaboration": "Teamzusammenarbeit",
"mainUseCasesResourcePlanning": "Ressourcenplanung",
"mainUseCasesClientCommunication": "Kundenkommunikation & Berichterstattung",
"mainUseCasesTimeTracking": "Zeiterfassung",
"mainUseCasesOther": "Andere",
"previousTools": "Welche Tools haben Sie vor Worklenz verwendet?",
"previousToolsPlaceholder": "z.B. Trello, Asana, Monday.com",
"howHeardAbout": "Wie haben Sie von Worklenz erfahren?",
"howHeardAboutGoogleSearch": "Google-Suche",
"howHeardAboutTwitter": "Twitter",
"howHeardAboutLinkedin": "LinkedIn",
"howHeardAboutFriendColleague": "Ein Freund oder Kollege",
"howHeardAboutBlogArticle": "Ein Blog oder Artikel",
"howHeardAboutOther": "Andere"
}

View File

@@ -27,5 +27,43 @@
"formTitle": "Create your first task.",
"step3Title": "Invite your team to work with",
"maxMembers": " (You can invite up to 5 members)",
"maxTasks": " (You can create up to 5 tasks)"
"maxTasks": " (You can create up to 5 tasks)",
"surveyStepTitle": "Tell us about yourself",
"surveyStepLabel": "Help us personalize your Worklenz experience by answering a few questions.",
"organizationType": "What best describes your organization?",
"organizationTypeFreelancer": "Freelancer",
"organizationTypeStartup": "Startup",
"organizationTypeSmallMediumBusiness": "Small or Medium Business",
"organizationTypeAgency": "Agency",
"organizationTypeEnterprise": "Enterprise",
"organizationTypeOther": "Other",
"userRole": "What is your role?",
"userRoleFounderCeo": "Founder / CEO",
"userRoleProjectManager": "Project Manager",
"userRoleSoftwareDeveloper": "Software Developer",
"userRoleDesigner": "Designer",
"userRoleOperations": "Operations",
"userRoleOther": "Other",
"mainUseCases": "What will you mainly use Worklenz for?",
"mainUseCasesTaskManagement": "Task management",
"mainUseCasesTeamCollaboration": "Team collaboration",
"mainUseCasesResourcePlanning": "Resource planning",
"mainUseCasesClientCommunication": "Client communication & reporting",
"mainUseCasesTimeTracking": "Time tracking",
"mainUseCasesOther": "Other",
"previousTools": "What tool(s) were you using before Worklenz?",
"previousToolsPlaceholder": "e.g. Trello, Asana, Monday.com",
"howHeardAbout": "How did you hear about Worklenz?",
"howHeardAboutGoogleSearch": "Google Search",
"howHeardAboutTwitter": "Twitter",
"howHeardAboutLinkedin": "LinkedIn",
"howHeardAboutFriendColleague": "A friend or colleague",
"howHeardAboutBlogArticle": "A blog or article",
"howHeardAboutOther": "Other"
}

View File

@@ -28,5 +28,43 @@
"step3Title": "Invita a tu equipo a trabajar",
"maxMembers": " (Puedes invitar hasta 5 miembros)",
"maxTasks": " (Puedes crear hasta 5 tareas)"
"maxTasks": " (Puedes crear hasta 5 tareas)",
"surveyStepTitle": "Cuéntanos sobre ti",
"surveyStepLabel": "Ayúdanos a personalizar tu experiencia de Worklenz respondiendo algunas preguntas.",
"organizationType": "¿Qué describe mejor tu organización?",
"organizationTypeFreelancer": "Freelancer",
"organizationTypeStartup": "Startup",
"organizationTypeSmallMediumBusiness": "Pequeña o Mediana Empresa",
"organizationTypeAgency": "Agencia",
"organizationTypeEnterprise": "Empresa",
"organizationTypeOther": "Otro",
"userRole": "¿Cuál es tu rol?",
"userRoleFounderCeo": "Fundador / CEO",
"userRoleProjectManager": "Gerente de Proyecto",
"userRoleSoftwareDeveloper": "Desarrollador de Software",
"userRoleDesigner": "Diseñador",
"userRoleOperations": "Operaciones",
"userRoleOther": "Otro",
"mainUseCases": "¿Para qué usarás principalmente Worklenz?",
"mainUseCasesTaskManagement": "Gestión de tareas",
"mainUseCasesTeamCollaboration": "Colaboración de equipo",
"mainUseCasesResourcePlanning": "Planificación de recursos",
"mainUseCasesClientCommunication": "Comunicación con clientes e informes",
"mainUseCasesTimeTracking": "Seguimiento de tiempo",
"mainUseCasesOther": "Otro",
"previousTools": "¿Qué herramienta(s) usabas antes de Worklenz?",
"previousToolsPlaceholder": "ej. Trello, Asana, Monday.com",
"howHeardAbout": "¿Cómo conociste Worklenz?",
"howHeardAboutGoogleSearch": "Búsqueda de Google",
"howHeardAboutTwitter": "Twitter",
"howHeardAboutLinkedin": "LinkedIn",
"howHeardAboutFriendColleague": "Un amigo o colega",
"howHeardAboutBlogArticle": "Un blog o artículo",
"howHeardAboutOther": "Otro"
}

View File

@@ -28,5 +28,43 @@
"step3Title": "Convide sua equipe para trabalhar",
"maxMembers": " (Você pode convidar até 5 membros)",
"maxTasks": " (Você pode criar até 5 tarefas)"
"maxTasks": " (Você pode criar até 5 tarefas)",
"surveyStepTitle": "Conte-nos sobre você",
"surveyStepLabel": "Ajude-nos a personalizar sua experiência no Worklenz respondendo algumas perguntas.",
"organizationType": "O que melhor descreve sua organização?",
"organizationTypeFreelancer": "Freelancer",
"organizationTypeStartup": "Startup",
"organizationTypeSmallMediumBusiness": "Pequena ou Média Empresa",
"organizationTypeAgency": "Agência",
"organizationTypeEnterprise": "Empresa",
"organizationTypeOther": "Outro",
"userRole": "Qual é o seu papel?",
"userRoleFounderCeo": "Fundador / CEO",
"userRoleProjectManager": "Gerente de Projeto",
"userRoleSoftwareDeveloper": "Desenvolvedor de Software",
"userRoleDesigner": "Designer",
"userRoleOperations": "Operações",
"userRoleOther": "Outro",
"mainUseCases": "Para que você usará principalmente o Worklenz?",
"mainUseCasesTaskManagement": "Gerenciamento de tarefas",
"mainUseCasesTeamCollaboration": "Colaboração em equipe",
"mainUseCasesResourcePlanning": "Planejamento de recursos",
"mainUseCasesClientCommunication": "Comunicação com clientes e relatórios",
"mainUseCasesTimeTracking": "Controle de tempo",
"mainUseCasesOther": "Outro",
"previousTools": "Que ferramenta(s) você usava antes do Worklenz?",
"previousToolsPlaceholder": "ex. Trello, Asana, Monday.com",
"howHeardAbout": "Como você soube do Worklenz?",
"howHeardAboutGoogleSearch": "Busca no Google",
"howHeardAboutTwitter": "Twitter",
"howHeardAboutLinkedin": "LinkedIn",
"howHeardAboutFriendColleague": "Um amigo ou colega",
"howHeardAboutBlogArticle": "Um blog ou artigo",
"howHeardAboutOther": "Outro"
}

View File

@@ -23,5 +23,43 @@
"formTitle": "创建您的第一个任务。",
"step3Title": "邀请您的团队一起工作",
"maxMembers": "您最多可以邀请5名成员",
"maxTasks": "您最多可以创建5个任务"
"maxTasks": "您最多可以创建5个任务",
"surveyStepTitle": "告诉我们关于您的信息",
"surveyStepLabel": "通过回答几个问题帮助我们个性化您的Worklenz体验。",
"organizationType": "什么最能描述您的组织?",
"organizationTypeFreelancer": "自由职业者",
"organizationTypeStartup": "初创公司",
"organizationTypeSmallMediumBusiness": "中小企业",
"organizationTypeAgency": "代理机构",
"organizationTypeEnterprise": "企业",
"organizationTypeOther": "其他",
"userRole": "您的角色是什么?",
"userRoleFounderCeo": "创始人/CEO",
"userRoleProjectManager": "项目经理",
"userRoleSoftwareDeveloper": "软件开发者",
"userRoleDesigner": "设计师",
"userRoleOperations": "运营",
"userRoleOther": "其他",
"mainUseCases": "您主要将Worklenz用于什么",
"mainUseCasesTaskManagement": "任务管理",
"mainUseCasesTeamCollaboration": "团队协作",
"mainUseCasesResourcePlanning": "资源规划",
"mainUseCasesClientCommunication": "客户沟通和报告",
"mainUseCasesTimeTracking": "时间跟踪",
"mainUseCasesOther": "其他",
"previousTools": "您在使用Worklenz之前使用什么工具",
"previousToolsPlaceholder": "例如Trello、Asana、Monday.com",
"howHeardAbout": "您是如何了解Worklenz的",
"howHeardAboutGoogleSearch": "Google搜索",
"howHeardAboutTwitter": "Twitter",
"howHeardAboutLinkedin": "LinkedIn",
"howHeardAboutFriendColleague": "朋友或同事",
"howHeardAboutBlogArticle": "博客或文章",
"howHeardAboutOther": "其他"
}