This commit is contained in:
Flatlogic Bot 2026-02-01 12:24:13 +00:00
parent 1b947c326a
commit e031b10316
7 changed files with 357 additions and 2 deletions

View File

@ -43,7 +43,72 @@
<!-- wp:group {"className":"reveal","layout":{"type":"constrained"}} -->
<div class="wp-block-group reveal">
<h2 class="wp-block-heading">ምን እሰራለሁ?</h2>
<h2 class="wp-block-heading" style="text-align:center; margin-bottom: 3rem;">ቴክኒካዊ ክህሎቶች</h2>
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-columns">
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-react"></i>
<h3 class="wp-block-heading">React / Next.js</h3>
<p>ከፍተኛ አፈጻጸም ያላቸው እና ለSEO ምቹ የሆኑ የዌብ መተግበሪያዎችን መገንባት።</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-node-js"></i>
<h3 class="wp-block-heading">Node.js</h3>
<p>ሊለኩ የሚችሉ የጀርባ አገልግሎቶችን (Backend) እና RESTful APIs ማልማት።</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-mobile-alt"></i>
<h3 class="wp-block-heading">Flutter</h3>
<p>ለiOS እና አንድሮይድ የሚያምሩ እና ሁለገብ የሞባይል መተግበሪያዎችን መፍጠር።</p>
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-columns">
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-database"></i>
<h3 class="wp-block-heading">ዳታቤዝ (Databases)</h3>
<p>በPostgreSQL፣ MongoDB እና Firebase ውህደት ላይ ያለኝ ልምድ።</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-docker"></i>
<h3 class="wp-block-heading">DevOps</h3>
<p>በDocker ኮንቴይነራይዜሽን እና CI/CD አውቶሜሽን ስራዎች።</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-cloud"></i>
<h3 class="wp-block-heading">ክላውድ (Cloud)</h3>
<p>መተግበሪያዎችን በAWS፣ Vercel እና GCP ላይ ማሰማራት እና ማስተዳደር።</p>
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
</div>
<!-- /wp:group -->
<!-- wp:spacer {"height":"80px"} -->
<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:group {"className":"reveal","layout":{"type":"constrained"}} -->
<div class="wp-block-group reveal">
<h2 class="wp-block-heading">የማከናውናቸው ተግባራት</h2>
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-columns">
<!-- wp:column {"className":"project-card"} -->

View File

@ -41,6 +41,71 @@
<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:group {"className":"reveal","layout":{"type":"constrained"}} -->
<div class="wp-block-group reveal">
<h2 class="wp-block-heading" style="text-align:center; margin-bottom: 3rem;">Technical Skills</h2>
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-columns">
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-react"></i>
<h3 class="wp-block-heading">React / Next.js</h3>
<p>Building high-performance, SEO-friendly web applications.</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-node-js"></i>
<h3 class="wp-block-heading">Node.js</h3>
<p>Developing scalable backend services and RESTful APIs.</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-mobile-alt"></i>
<h3 class="wp-block-heading">Flutter</h3>
<p>Creating beautiful cross-platform mobile apps for iOS & Android.</p>
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-columns">
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-database"></i>
<h3 class="wp-block-heading">Databases</h3>
<p>Expertise in PostgreSQL, MongoDB, and Firebase integration.</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-docker"></i>
<h3 class="wp-block-heading">DevOps</h3>
<p>Containerization with Docker and CI/CD pipeline automation.</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-cloud"></i>
<h3 class="wp-block-heading">Cloud</h3>
<p>Deploying and managing apps on AWS, Vercel, and GCP.</p>
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
</div>
<!-- /wp:group -->
<!-- wp:spacer {"height":"80px"} -->
<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:group {"className":"reveal","layout":{"type":"constrained"}} -->
<div class="wp-block-group reveal">
<h2 class="wp-block-heading">What I Do</h2>

View File

@ -75,7 +75,72 @@
<!-- wp:group {"className":"reveal","layout":{"type":"constrained"}} -->
<div class="wp-block-group reveal">
<h2 class="wp-block-heading">Dandeettiiwwan Koo</h2>
<h2 class="wp-block-heading" style="text-align:center; margin-bottom: 3rem;">Dandeettiiwwan Teknikaa</h2>
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-columns">
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-react"></i>
<h3 class="wp-block-heading">React / Next.js</h3>
<p>Appilikeeshiniiwwan weebii saffisa qaban fi SEO-f mijatan ijaaruu.</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-node-js"></i>
<h3 class="wp-block-heading">Node.js</h3>
<p>Tajaajiloota backend fi RESTful API-wwan bal'achuu danda'an ijaaruu.</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-mobile-alt"></i>
<h3 class="wp-block-heading">Flutter</h3>
<p>Appilikeeshiniiwwan moobaayilaa iOS fi Android-f ta'an bareedoo ijaaruu.</p>
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
<!-- wp:spacer {"height":"20px"} -->
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"2rem","left":"2rem"}}}} -->
<div class="wp-block-columns">
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-database"></i>
<h3 class="wp-block-heading">Kuus-dataa (Databases)</h3>
<p>PostgreSQL, MongoDB fi Firebase walitti qabuun muuxannoo qabaachuu.</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fab fa-docker"></i>
<h3 class="wp-block-heading">DevOps</h3>
<p>Docker containerization fi CI/CD pipeline automation irratti hojjechuu.</p>
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"skill-card"} -->
<div class="wp-block-column skill-card" style="text-align:center">
<i class="fas fa-cloud"></i>
<h3 class="wp-block-heading">Cloud</h3>
<p>Appilikeeshiniiwwan AWS, Vercel fi GCP irratti fe'uu fi bulchuu.</p>
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
</div>
<!-- /wp:group -->
<!-- wp:spacer {"height":"80px"} -->
<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:group {"className":"reveal","layout":{"type":"constrained"}} -->
<div class="wp-block-group reveal">
<h2 class="wp-block-heading">Hojii Koo</h2>
<!-- wp:columns {"columns":4} -->
<div class="wp-block-columns">
<div class="wp-block-column skill-card" style="text-align:center">

View File

@ -25,6 +25,9 @@
<p><strong>ቴክኖሎጂዎች:</strong> Next.js, Stripe, Tailwind CSS, PostgreSQL</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">ቀጥታ ማሳያ</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub ማከማቻ</a></div>
<!-- /wp:button -->
@ -43,6 +46,9 @@
<p><strong>ቴክኖሎጂዎች:</strong> React, Firebase, Material UI</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">ቀጥታ ማሳያ</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub ማከማቻ</a></div>
<!-- /wp:button -->
@ -69,6 +75,9 @@
<p><strong>ቴክኖሎጂዎች:</strong> Next.js, OpenWeather API, Framer Motion</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">ቀጥታ ማሳያ</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub ማከማቻ</a></div>
<!-- /wp:button -->

94
projects_content_v2.html Normal file
View File

@ -0,0 +1,94 @@
<!-- wp:group {"className":"reveal","layout":{"type":"constrained"}} -->
<div class="wp-block-group reveal">
<!-- wp:heading {"level":1} -->
<h1 class="wp-block-heading">My Projects</h1>
<!-- /wp:heading -->
<p>A selection of my recent work, ranging from full-stack web applications to cross-platform mobile apps.</p>
</div>
<!-- /wp:group -->
<!-- wp:spacer {"height":"40px"} -->
<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:group {"layout":{"type":"constrained"}} -->
<div class="wp-block-group">
<!-- wp:columns {"isStackedOnMobile":true} -->
<div class="wp-block-columns is-stacked-on-mobile">
<!-- wp:column {"className":"project-card reveal"} -->
<div class="wp-block-column project-card reveal">
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="/assets/images/projects/ecommerce.jpg" alt="E-Commerce Platform" style="border-radius:12px; margin-bottom:15px; width:100%; height:200px; object-fit:cover;"/></figure>
<!-- /wp:image -->
<h3 class="wp-block-heading">E-Commerce Platform</h3>
<p>A full-featured online store with product filtering, cart functionality, and Stripe integration.</p>
<p><strong>Tech Stack:</strong> Next.js, Stripe, Tailwind CSS, PostgreSQL</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">Live Demo</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub Repo</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:column -->
<!-- wp:column {"className":"project-card reveal"} -->
<div class="wp-block-column project-card reveal">
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="/assets/images/projects/tasks.jpg" alt="Task Management App" style="border-radius:12px; margin-bottom:15px; width:100%; height:200px; object-fit:cover;"/></figure>
<!-- /wp:image -->
<h3 class="wp-block-heading">Task Management App</h3>
<p>A productivity tool for managing daily tasks with real-time updates and team collaboration features.</p>
<p><strong>Tech Stack:</strong> React, Firebase, Material UI</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">Live Demo</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub Repo</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
<!-- wp:spacer {"height":"40px"} -->
<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:columns {"isStackedOnMobile":true} -->
<div class="wp-block-columns is-stacked-on-mobile">
<!-- wp:column {"className":"project-card reveal"} -->
<div class="wp-block-column project-card reveal">
<!-- wp:image {"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="/assets/images/projects/weather.jpg" alt="Ethiopian Weather App" style="border-radius:12px; margin-bottom:15px; width:100%; height:200px; object-fit:cover;"/></figure>
<!-- /wp:image -->
<h3 class="wp-block-heading">Ethiopian Weather App</h3>
<p>Get real-time weather updates for cities across Ethiopia using the OpenWeather API.</p>
<p><strong>Tech Stack:</strong> Next.js, OpenWeather API, Framer Motion</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">Live Demo</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub Repo</a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column"></div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
</div>
<!-- /wp:group -->

View File

@ -25,6 +25,9 @@
<p><strong>Teeknooloojii:</strong> Next.js, Stripe, Tailwind CSS, PostgreSQL</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">Maasayaa Kallattii</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub Repo</a></div>
<!-- /wp:button -->
@ -43,6 +46,9 @@
<p><strong>Teeknooloojii:</strong> React, Firebase, Material UI</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">Maasayaa Kallattii</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub Repo</a></div>
<!-- /wp:button -->
@ -69,6 +75,9 @@
<p><strong>Teeknooloojii:</strong> Next.js, OpenWeather API, Framer Motion</p>
<!-- wp:buttons -->
<div class="wp-block-buttons">
<!-- wp:button {"backgroundColor":"black","textColor":"white"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-white-color has-black-background-color has-text-color has-background wp-element-button" href="#">Maasayaa Kallattii</a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button" href="https://github.com/Bilnett">GitHub Repo</a></div>
<!-- /wp:button -->

View File

@ -0,0 +1,48 @@
<?php
/**
* Plugin Name: MailService Bridge for CF7
* Description: Redirects Contact Form 7 emails through Flatlogic MailService.
*/
add_action('wpcf7_before_send_mail', function($contact_form, &$abort, $submission) {
if ($abort) return;
require_once ABSPATH . 'mail/MailService.php';
$data = $submission->get_posted_data();
$name = $data['your-name'] ?? '';
$email = $data['your-email'] ?? '';
$subject = $data['your-subject'] ?? 'Contact Form Submission';
$message = $data['your-message'] ?? '';
$to = getenv('MAIL_TO') ?: get_option('admin_email');
$res = MailService::sendContactMessage($name, $email, $message, $to, $subject);
if (!empty($res['success'])) {
// Successfully sent via MailService.
}
}, 10);
// Override wp_mail to use MailService globally
if (!function_exists('wp_mail')) {
function wp_mail($to, $subject, $message, $headers = '', $attachments = []) {
require_once ABSPATH . 'mail/MailService.php';
// Simple conversion of HTML/Text
$is_html = false;
if (strpos($headers, 'text/html') !== false) {
$is_html = true;
}
$res = MailService::sendMail(
$to,
$subject,
$is_html ? $message : nl2br($message),
!$is_html ? $message : strip_tags($message)
);
return !empty($res['success']);
}
}