feat(01-02): migrate static data files and images to Nuxt structure
- 4 data files created in app/data/ with proper type imports from shared/types - 74 WebP images copied to public/images/ (including flowboard gallery) - All image paths migrated from @/assets/images/ to /images/ - FAQ uses i18n keys instead of direct text
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import type { FAQ } from '~~/shared/types'
|
||||
|
||||
export const homeFAQs: FAQ[] = [
|
||||
{
|
||||
questionKey: 'faq.homeFaq.delivery.question',
|
||||
answerKey: 'faq.homeFaq.delivery.answer',
|
||||
featuresKey: 'faq.homeFaq.delivery.features',
|
||||
},
|
||||
{
|
||||
questionKey: 'faq.homeFaq.maintenance.question',
|
||||
answerKey: 'faq.homeFaq.maintenance.answer',
|
||||
featuresKey: 'faq.homeFaq.maintenance.features',
|
||||
},
|
||||
{
|
||||
questionKey: 'faq.homeFaq.companies.question',
|
||||
answerKey: 'faq.homeFaq.companies.answer',
|
||||
featuresKey: 'faq.homeFaq.companies.features',
|
||||
},
|
||||
]
|
||||
@@ -0,0 +1,105 @@
|
||||
import type { Project } from '~~/shared/types'
|
||||
|
||||
// Base project data without translations
|
||||
// Titles and descriptions are resolved via i18n keys: projects.${id}.title, projects.${id}.description
|
||||
export const projects: Omit<Project, 'title' | 'description' | 'longDescription'>[] = [
|
||||
{
|
||||
id: 'virtual-tour',
|
||||
image: '/images/virtualtour.webp',
|
||||
technologies: ['Vue.js', 'Three.js', 'WebGL', 'Node.js'],
|
||||
category: 'Web Development',
|
||||
date: '2022',
|
||||
buttons: [
|
||||
{
|
||||
title: 'Visit',
|
||||
link: 'https://www.lycee-chabanne16.fr/visites/BACSN/index.htm',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'xinko',
|
||||
image: '/images/xinko.webp',
|
||||
technologies: ['Node.js', 'Discord.js', 'MongoDB', 'Express'],
|
||||
category: 'Bot Development',
|
||||
date: '2023',
|
||||
featured: true,
|
||||
buttons: [
|
||||
{
|
||||
title: 'Invite',
|
||||
link: 'https://discord.com/api/oauth2/authorize?client_id=1035571329866407976&permissions=292288982151&scope=applications.commands%20bot',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'image-manipulation',
|
||||
image: '/images/dig.webp',
|
||||
technologies: ['JavaScript', 'Node.js', 'Canvas', 'npm'],
|
||||
category: 'Open Source',
|
||||
date: '2022',
|
||||
featured: true,
|
||||
buttons: [
|
||||
{
|
||||
title: 'Repository',
|
||||
link: 'https://git.mrkayjaydee.xyz/Mr-KayJayDee/discord-image-generation',
|
||||
},
|
||||
{
|
||||
title: 'NPM Package',
|
||||
link: 'https://www.npmjs.com/package/discord-image-generation',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'primate-web-admin',
|
||||
image: '/images/primate.webp',
|
||||
technologies: ['React', 'TypeScript', 'Node.js', 'Express'],
|
||||
category: 'Enterprise Software',
|
||||
date: '2023',
|
||||
},
|
||||
{
|
||||
id: 'instagram-bot',
|
||||
image: '/images/instagram.webp',
|
||||
technologies: ['JavaScript', 'Node.js', 'Instagram API', 'Canvas'],
|
||||
category: 'Social Media Bot',
|
||||
date: '2022',
|
||||
buttons: [
|
||||
{
|
||||
title: 'Repository',
|
||||
link: 'https://git.mrkayjaydee.xyz/Mr-KayJayDee/instagram-bot',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'crowdin-status-bot',
|
||||
image: '/images/crowdin.webp',
|
||||
technologies: ['Node.js', 'Discord.js', 'Crowdin API', 'Cron'],
|
||||
category: 'Automation',
|
||||
date: '2023',
|
||||
buttons: [
|
||||
{
|
||||
title: 'Repository',
|
||||
link: 'https://git.mrkayjaydee.xyz/Mr-KayJayDee/discord-crowdin-status',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'flowboard',
|
||||
image: '/images/flowboard/flowboard_1.webp',
|
||||
technologies: ['Vue.js', 'Node.js', 'TypeScript', 'MongoDB', 'Express'],
|
||||
category: 'Web Development',
|
||||
date: '2024',
|
||||
featured: true,
|
||||
features: [
|
||||
'Organize your tasks, projects and ideas by creating thematic boards adapted to your needs',
|
||||
'Add cards for each task, assign members, set due dates, and track progress at a glance',
|
||||
'Invite colleagues and teammates to join your boards to work together, share ideas, and coordinate your efforts',
|
||||
'Keep an overview of the progress of your projects thanks to a simple and intuitive interface',
|
||||
'Use labels, lists and tables to prioritize tasks, set priorities and keep the overview clear',
|
||||
],
|
||||
gallery: [
|
||||
'/images/flowboard/flowboard_1.webp',
|
||||
'/images/flowboard/flowboard_2.webp',
|
||||
'/images/flowboard/flowboard_3.webp',
|
||||
'/images/flowboard/flowboard_4.webp',
|
||||
],
|
||||
},
|
||||
]
|
||||
@@ -0,0 +1,72 @@
|
||||
import type { TechStack } from '~~/shared/types'
|
||||
|
||||
export const techStack: TechStack = {
|
||||
programming: [
|
||||
{ name: 'JavaScript', level: 'Advanced', image: '/images/javascript.webp' },
|
||||
{ name: 'TypeScript', level: 'Advanced', image: '/images/typescript.webp' },
|
||||
{ name: 'Node.js', level: 'Advanced', image: '/images/nodejs.webp' },
|
||||
{ name: 'Bash', level: 'Intermediate', image: '/images/bash.webp' },
|
||||
{ name: 'Markdown', level: 'Advanced', image: '/images/markdown.webp' },
|
||||
{ name: 'Ruby', level: 'Intermediate', image: '/images/ruby.webp' },
|
||||
{ name: 'Ruby on Rails', level: 'Intermediate', image: '/images/rubyonrails.webp' },
|
||||
],
|
||||
front: [
|
||||
{ name: 'Vue.js', level: 'Advanced', image: '/images/vuejs.webp' },
|
||||
{ name: 'React', level: 'Intermediate', image: '/images/react.webp' },
|
||||
{ name: 'Angular', level: 'Intermediate', image: '/images/angular.webp' },
|
||||
{ name: 'HTML', level: 'Advanced', image: '/images/html.webp' },
|
||||
{ name: 'CSS', level: 'Advanced', image: '/images/css.webp' },
|
||||
{ name: 'Figma', level: 'Advanced', image: '/images/figma.webp' },
|
||||
{ name: 'WordPress', level: 'Intermediate', image: '/images/wordpress.webp' },
|
||||
],
|
||||
database: [
|
||||
{ name: 'MongoDB', level: 'Advanced', image: '/images/mongodb.webp' },
|
||||
{ name: 'MySQL', level: 'Advanced', image: '/images/mysql.webp' },
|
||||
{ name: 'Redis', level: 'Advanced', image: '/images/redis.webp' },
|
||||
{ name: 'SQLite', level: 'Advanced', image: '/images/sqlite.webp' },
|
||||
{ name: 'PostgreSQL', level: 'Advanced', image: '/images/postgresql.webp' },
|
||||
{ name: 'Bootstrap', level: 'Intermediate', image: '/images/bootstrap.webp' },
|
||||
{ name: 'Tailwind CSS', level: 'Intermediate', image: '/images/tailwindcss.webp' },
|
||||
],
|
||||
devtools: [
|
||||
{ name: 'Git', level: 'Advanced', image: '/images/git.webp' },
|
||||
{ name: 'GitHub', level: 'Advanced', image: '/images/github.webp' },
|
||||
{ name: 'GitLab', level: 'Advanced', image: '/images/gitlab.webp' },
|
||||
{ name: 'GitKraken', level: 'Advanced', image: '/images/gitkraken.webp' },
|
||||
{ name: 'Visual Studio Code', level: 'Advanced', image: '/images/vscode.webp' },
|
||||
{ name: 'Atom', level: 'Advanced', image: '/images/atom.webp' },
|
||||
{ name: 'Docker', level: 'Advanced', image: '/images/docker.webp' },
|
||||
{ name: 'npm', level: 'Advanced', image: '/images/npm.webp' },
|
||||
{ name: 'Postman', level: 'Advanced', image: '/images/postman.webp' },
|
||||
{ name: 'FileZilla', level: 'Advanced', image: '/images/filezilla.webp' },
|
||||
{ name: 'Termius', level: 'Advanced', image: '/images/termius.webp' },
|
||||
{ name: 'HeidiSQL', level: 'Advanced', image: '/images/heidisql.webp' },
|
||||
{ name: 'MySQL Workbench', level: 'Advanced', image: '/images/mysqlworkbench.webp' },
|
||||
{ name: 'Sequel Pro', level: 'Intermediate', image: '/images/sequelpro.webp' },
|
||||
],
|
||||
operating_systems: [
|
||||
{ name: 'Linux', level: 'Advanced', image: '/images/linux.webp' },
|
||||
{ name: 'Ubuntu', level: 'Advanced', image: '/images/ubuntu.webp' },
|
||||
{ name: 'Debian', level: 'Advanced', image: '/images/debian.webp' },
|
||||
{ name: 'Arch Linux', level: 'Intermediate', image: '/images/archlinux.webp' },
|
||||
{ name: 'Kali Linux', level: 'Intermediate', image: '/images/kalilinux.webp' },
|
||||
{ name: 'Deepin', level: 'Intermediate', image: '/images/deepin.webp' },
|
||||
{ name: 'Windows', level: 'Advanced', image: '/images/windows.webp' },
|
||||
{ name: 'macOS', level: 'Advanced', image: '/images/macos.webp' },
|
||||
{ name: 'Android', level: 'Advanced', image: '/images/android.webp' },
|
||||
{ name: 'iOS', level: 'Intermediate', image: '/images/ios.webp' },
|
||||
{ name: 'Wear OS', level: 'Intermediate', image: '/images/wearos.webp' },
|
||||
{ name: 'watchOS', level: 'Intermediate', image: '/images/watchos.webp' },
|
||||
],
|
||||
socials: [
|
||||
{ name: 'Discord', level: 'Advanced', image: '/images/discord.webp' },
|
||||
{ name: 'Instagram', level: 'Advanced', image: '/images/instagram.webp' },
|
||||
{ name: 'LinkedIn', level: 'Advanced', image: '/images/linkedin.webp' },
|
||||
{ name: 'Twitter', level: 'Advanced', image: '/images/twitter.webp' },
|
||||
{ name: 'Reddit', level: 'Advanced', image: '/images/reddit.webp' },
|
||||
{ name: 'Facebook', level: 'Advanced', image: '/images/facebook.webp' },
|
||||
{ name: 'Messenger', level: 'Advanced', image: '/images/messenger.webp' },
|
||||
{ name: 'WhatsApp', level: 'Advanced', image: '/images/whatsapp.webp' },
|
||||
{ name: 'Telegram', level: 'Advanced', image: '/images/telegram.webp' },
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
import type { Testimonial, TestimonialsStats } from '~~/shared/types'
|
||||
|
||||
export const testimonials: Testimonial[] = [
|
||||
{
|
||||
name: 'unqlf_',
|
||||
role: 'Client',
|
||||
company: 'France',
|
||||
avatar: 'https://ui-avatars.com/api/?name=U&background=3b82f6&color=ffffff&size=128',
|
||||
rating: 5,
|
||||
content:
|
||||
"Je conseil ce vendeur il écoute clairement les conseils, les informations qu'on lui donne, il mérite clairement son niveau dans le développement et prend en compte chaque erreur.",
|
||||
date: '15/03/2023',
|
||||
platform: 'Fiverr',
|
||||
featured: true,
|
||||
project_type: 'Plugin Minecraft',
|
||||
results: ["Prix: Jusqu'à 50€", 'Durée: 10 jours', 'Écoute client excellente'],
|
||||
},
|
||||
{
|
||||
name: 'colo263',
|
||||
role: 'Client',
|
||||
company: 'France',
|
||||
avatar: 'https://ui-avatars.com/api/?name=C&background=059669&color=ffffff&size=128',
|
||||
rating: 5,
|
||||
content:
|
||||
"Travail excellent, Communication au top, Disponible en tout temps, réactif et à l'écoute je le recommande vivement et reviendrai vers lui si je dois refaire un projet similaire !",
|
||||
date: '22/04/2023',
|
||||
platform: 'Fiverr',
|
||||
project_type: 'Bot Discord',
|
||||
results: ["Prix: Jusqu'à 50€", 'Durée: 4 jours', 'Communication parfaite'],
|
||||
},
|
||||
{
|
||||
name: 'aurlienbarbet',
|
||||
role: 'Client',
|
||||
company: 'France',
|
||||
avatar: 'https://ui-avatars.com/api/?name=A&background=dc2626&color=ffffff&size=128',
|
||||
rating: 5,
|
||||
content:
|
||||
"Le prestataire est très professionnel, prêt à faire l'offre la plus juste et à ajuster un prix pour votre commande. Réponds à tout les questions ! une bonne expérience pour ma part",
|
||||
date: '08/06/2023',
|
||||
platform: 'Fiverr',
|
||||
project_type: 'Bot Discord',
|
||||
results: ["Prix: Jusqu'à 50€", 'Durée: 1 jour', 'Prix ajusté sur mesure'],
|
||||
},
|
||||
{
|
||||
name: 'cobra2',
|
||||
role: 'Client',
|
||||
company: 'France',
|
||||
avatar: 'https://ui-avatars.com/api/?name=C&background=7c3aed&color=ffffff&size=128',
|
||||
rating: 5,
|
||||
content:
|
||||
'Excellent développeur, la commande fut plus rapide que prévu la communication est instantané et le résultat est parfait. Je recommande fortement et reviendrai sûrement pour des mise à jour !',
|
||||
date: '12/11/2022',
|
||||
platform: 'Fiverr',
|
||||
project_type: 'Bot Discord',
|
||||
results: [
|
||||
'Livraison plus rapide que prévu',
|
||||
'Communication instantanée',
|
||||
'Résultat parfait',
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'botuhuh',
|
||||
role: 'Client',
|
||||
company: 'France',
|
||||
avatar: 'https://ui-avatars.com/api/?name=B&background=ea580c&color=ffffff&size=128',
|
||||
rating: 5,
|
||||
content: 'awesome guy, I recommend, thanks again !!!!',
|
||||
date: '28/09/2022',
|
||||
platform: 'Fiverr',
|
||||
project_type: 'Bot Discord',
|
||||
results: ['Client international satisfait', 'Recommandation forte', 'Service apprécié'],
|
||||
},
|
||||
]
|
||||
|
||||
export const testimonialsStats: TestimonialsStats = {
|
||||
totalReviews: 10,
|
||||
averageRating: 5.0,
|
||||
projectsCompleted: 25,
|
||||
}
|
||||
Reference in New Issue
Block a user