diff --git a/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.ts b/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.ts
new file mode 100644
index 00000000..1b17d371
--- /dev/null
+++ b/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.ts
@@ -0,0 +1,49 @@
+import QRCode from 'qrcode';
+
+interface ContactInfo {
+ firstName: string;
+ lastName: string;
+ role: string;
+ phoneNumber: string;
+ email: string;
+ companyName: string;
+ companyWebsite: string;
+ companyAddress: string;
+}
+
+const generateContactInfoQRCode = (contactInfo: ContactInfo): void => {
+ const vCard = `
+BEGIN:VCARD
+VERSION:3.0
+N:${contactInfo.lastName};${contactInfo.firstName}
+FN:${contactInfo.firstName} ${contactInfo.lastName}
+ORG:${contactInfo.companyName}
+TITLE:${contactInfo.role}
+TEL;TYPE=WORK,VOICE:${contactInfo.phoneNumber}
+EMAIL;TYPE=PREF,INTERNET:${contactInfo.email}
+URL:${contactInfo.companyWebsite}
+ADR;TYPE=WORK,PREF:;;${contactInfo.companyAddress}
+END:VCARD
+ `;
+
+ QRCode.toDataURL(vCard, { errorCorrectionLevel: 'H' }, (err: Error | null, url: string) => {
+ if (err) {
+ console.error(err);
+ return;
+ }
+ console.log(url);
+ });
+};
+
+const contactInfo: ContactInfo = {
+ firstName: 'John',
+ lastName: 'Doe',
+ role: 'Software Engineer',
+ phoneNumber: '+1234567890',
+ email: 'john.doe@example.com',
+ companyName: 'Example Inc.',
+ companyWebsite: 'https://www.example.com',
+ companyAddress: '123 Example Street, City, Country'
+};
+
+generateContactInfoQRCode(contactInfo);
\ No newline at end of file
diff --git a/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.vue b/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.vue
new file mode 100644
index 00000000..46eb10d9
--- /dev/null
+++ b/src/tools/qr-contact-info-generator/contact-info-qr-code-generator.vue
@@ -0,0 +1,160 @@
+
+
+
Contact Info QR Code Generator
+
+
+
QR Code:
+
![Contact Info QR Code]()
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/tools/qr-contact-info-generator/index.ts b/src/tools/qr-contact-info-generator/index.ts
new file mode 100644
index 00000000..fd467b19
--- /dev/null
+++ b/src/tools/qr-contact-info-generator/index.ts
@@ -0,0 +1,5 @@
+import ContactInfoQRCodeGenerator from './contact-info-qr-code-generator.vue';
+
+export {
+ ContactInfoQRCodeGenerator,
+};
\ No newline at end of file