From e9cf32971f8794fe4d3ad0d7dfb4b6b761403042 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:14:24 +0000 Subject: [PATCH 1/6] Initial plan From 251b2ecedaeecc948a290067901d1a643a13d391 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:21:49 +0000 Subject: [PATCH 2/6] Create complete static personal website structure Co-authored-by: adab-tech <179881660+adab-tech@users.noreply.github.com> --- assets/css/style.css | 590 +++++++++++++++++++++++++++++++++++ assets/js/main.js | 138 ++++++++ contact/index.html | 171 ++++++++++ cv/index.html | 335 ++++++++++++++++++++ index.html | 141 +++++++++ projects/index.html | 203 ++++++++++++ projects/sample-project.html | 262 ++++++++++++++++ writing/index.html | 134 ++++++++ writing/sample-post.html | 251 +++++++++++++++ 9 files changed, 2225 insertions(+) create mode 100644 assets/css/style.css create mode 100644 assets/js/main.js create mode 100644 contact/index.html create mode 100644 cv/index.html create mode 100644 index.html create mode 100644 projects/index.html create mode 100644 projects/sample-project.html create mode 100644 writing/index.html create mode 100644 writing/sample-post.html diff --git a/assets/css/style.css b/assets/css/style.css new file mode 100644 index 0000000..77e3bc5 --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,590 @@ +/* ========================================================================== + Reset & Base Styles + ========================================================================== */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + /* Colors */ + --color-bg: #ffffff; + --color-text: #1a1a1a; + --color-text-secondary: #4a4a4a; + --color-accent: #2563eb; + --color-accent-hover: #1d4ed8; + --color-border: #e5e5e5; + --color-code-bg: #f5f5f5; + + /* Typography */ + --font-serif: Georgia, 'Times New Roman', serif; + --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + --font-mono: 'Courier New', Courier, monospace; + + /* Spacing */ + --spacing-xs: 0.5rem; + --spacing-sm: 1rem; + --spacing-md: 1.5rem; + --spacing-lg: 2rem; + --spacing-xl: 3rem; + --spacing-2xl: 4rem; + + /* Layout */ + --max-width: 720px; + --line-height-tight: 1.3; + --line-height-normal: 1.6; + --line-height-loose: 1.8; +} + +html { + font-size: 16px; + scroll-behavior: smooth; +} + +body { + font-family: var(--font-serif); + font-size: 1.125rem; + line-height: var(--line-height-loose); + color: var(--color-text); + background-color: var(--color-bg); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +h1, h2, h3, h4, h5, h6 { + font-family: var(--font-sans); + font-weight: 700; + line-height: var(--line-height-tight); + margin-bottom: var(--spacing-md); + color: var(--color-text); +} + +h1 { + font-size: 2.5rem; + margin-bottom: var(--spacing-lg); +} + +h2 { + font-size: 2rem; + margin-top: var(--spacing-xl); + margin-bottom: var(--spacing-md); +} + +h3 { + font-size: 1.5rem; + margin-top: var(--spacing-lg); +} + +h4 { + font-size: 1.25rem; +} + +h5, h6 { + font-size: 1.125rem; +} + +p { + margin-bottom: var(--spacing-md); +} + +a { + color: var(--color-accent); + text-decoration: none; + transition: color 0.2s ease; +} + +a:hover { + color: var(--color-accent-hover); + text-decoration: underline; +} + +strong, b { + font-weight: 700; +} + +em, i { + font-style: italic; +} + +code { + font-family: var(--font-mono); + background-color: var(--color-code-bg); + padding: 0.2em 0.4em; + border-radius: 3px; + font-size: 0.9em; +} + +pre { + font-family: var(--font-mono); + background-color: var(--color-code-bg); + padding: var(--spacing-md); + border-radius: 5px; + overflow-x: auto; + margin-bottom: var(--spacing-md); + line-height: var(--line-height-normal); +} + +pre code { + padding: 0; + background: none; +} + +blockquote { + border-left: 4px solid var(--color-border); + padding-left: var(--spacing-md); + margin: var(--spacing-lg) 0; + font-style: italic; + color: var(--color-text-secondary); +} + +/* ========================================================================== + Layout Components + ========================================================================== */ + +.container { + max-width: var(--max-width); + margin: 0 auto; + padding: var(--spacing-lg) var(--spacing-md); +} + +.header { + border-bottom: 1px solid var(--color-border); + margin-bottom: var(--spacing-xl); + padding-bottom: var(--spacing-md); +} + +.nav { + display: flex; + gap: var(--spacing-md); + flex-wrap: wrap; + margin-top: var(--spacing-md); +} + +.nav a { + font-family: var(--font-sans); + font-size: 1rem; + font-weight: 500; + text-decoration: none; +} + +.nav a:hover { + text-decoration: underline; +} + +.site-title { + font-size: 1.5rem; + margin-bottom: var(--spacing-xs); +} + +.site-title a { + color: var(--color-text); + text-decoration: none; +} + +.site-title a:hover { + color: var(--color-accent); +} + +.footer { + border-top: 1px solid var(--color-border); + margin-top: var(--spacing-2xl); + padding-top: var(--spacing-lg); + padding-bottom: var(--spacing-lg); + font-size: 0.9rem; + color: var(--color-text-secondary); +} + +/* ========================================================================== + Content Sections + ========================================================================== */ + +.intro { + margin-bottom: var(--spacing-2xl); +} + +.intro p { + font-size: 1.25rem; + line-height: var(--line-height-loose); +} + +.cta { + display: inline-block; + padding: var(--spacing-sm) var(--spacing-lg); + background-color: var(--color-accent); + color: white; + font-family: var(--font-sans); + font-weight: 600; + border-radius: 5px; + text-decoration: none; + transition: background-color 0.2s ease; + margin-top: var(--spacing-sm); + margin-right: var(--spacing-sm); +} + +.cta:hover { + background-color: var(--color-accent-hover); + text-decoration: none; +} + +.cta-secondary { + background-color: transparent; + color: var(--color-accent); + border: 2px solid var(--color-accent); +} + +.cta-secondary:hover { + background-color: var(--color-accent); + color: white; +} + +.section { + margin-bottom: var(--spacing-2xl); +} + +.section-title { + font-size: 1.75rem; + margin-bottom: var(--spacing-lg); + padding-bottom: var(--spacing-sm); + border-bottom: 2px solid var(--color-border); +} + +/* ========================================================================== + Card Components + ========================================================================== */ + +.card-list { + list-style: none; + display: grid; + gap: var(--spacing-lg); +} + +.card { + border: 1px solid var(--color-border); + padding: var(--spacing-lg); + border-radius: 5px; + transition: box-shadow 0.2s ease; +} + +.card:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.card-title { + font-family: var(--font-sans); + font-size: 1.5rem; + margin-bottom: var(--spacing-sm); +} + +.card-title a { + color: var(--color-text); + text-decoration: none; +} + +.card-title a:hover { + color: var(--color-accent); + text-decoration: none; +} + +.card-meta { + font-family: var(--font-sans); + font-size: 0.9rem; + color: var(--color-text-secondary); + margin-bottom: var(--spacing-sm); +} + +.card-description { + font-size: 1rem; + line-height: var(--line-height-normal); +} + +.card-tags { + display: flex; + gap: var(--spacing-xs); + flex-wrap: wrap; + margin-top: var(--spacing-sm); +} + +.tag { + font-family: var(--font-sans); + font-size: 0.85rem; + padding: 0.25rem 0.75rem; + background-color: var(--color-code-bg); + border-radius: 3px; + color: var(--color-text-secondary); +} + +/* ========================================================================== + Social Links + ========================================================================== */ + +.social-links { + display: flex; + gap: var(--spacing-md); + flex-wrap: wrap; + margin-top: var(--spacing-md); +} + +.social-links a { + font-family: var(--font-sans); + font-size: 1rem; +} + +/* ========================================================================== + CV Specific Styles + ========================================================================== */ + +.cv-section { + margin-bottom: var(--spacing-xl); +} + +.cv-section h3 { + margin-top: var(--spacing-lg); +} + +.cv-entry { + margin-bottom: var(--spacing-lg); +} + +.cv-entry-header { + display: flex; + justify-content: space-between; + align-items: baseline; + flex-wrap: wrap; + gap: var(--spacing-sm); + margin-bottom: var(--spacing-xs); +} + +.cv-entry-title { + font-family: var(--font-sans); + font-weight: 600; + font-size: 1.125rem; +} + +.cv-entry-date { + font-family: var(--font-sans); + font-size: 0.95rem; + color: var(--color-text-secondary); +} + +.cv-entry-org { + font-style: italic; + margin-bottom: var(--spacing-xs); +} + +.cv-entry-description { + font-size: 1rem; +} + +.cv-entry-description ul { + margin-left: var(--spacing-lg); + margin-top: var(--spacing-sm); +} + +.cv-entry-description li { + margin-bottom: var(--spacing-xs); +} + +.skills-list { + display: flex; + flex-wrap: wrap; + gap: var(--spacing-xs); + list-style: none; +} + +.skills-list li { + font-family: var(--font-sans); + font-size: 0.95rem; + padding: 0.5rem 1rem; + background-color: var(--color-code-bg); + border-radius: 5px; +} + +/* ========================================================================== + Contact Form Styles + ========================================================================== */ + +.contact-info { + margin-bottom: var(--spacing-xl); +} + +.contact-info p { + font-size: 1.125rem; +} + +.contact-methods { + list-style: none; + margin-top: var(--spacing-lg); +} + +.contact-methods li { + margin-bottom: var(--spacing-md); + font-family: var(--font-sans); +} + +/* ========================================================================== + Multilingual Support + ========================================================================== */ + +.lang-indicator { + font-family: var(--font-sans); + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; + color: var(--color-text-secondary); + margin-top: var(--spacing-lg); + margin-bottom: var(--spacing-xs); +} + +.multilingual-content { + margin-bottom: var(--spacing-xl); +} + +/* ========================================================================== + Article/Post Specific Styles + ========================================================================== */ + +article { + font-size: 1.125rem; + line-height: var(--line-height-loose); +} + +article h1 { + margin-bottom: var(--spacing-md); +} + +article .post-meta { + font-family: var(--font-sans); + font-size: 0.95rem; + color: var(--color-text-secondary); + margin-bottom: var(--spacing-xl); + padding-bottom: var(--spacing-md); + border-bottom: 1px solid var(--color-border); +} + +article p { + margin-bottom: var(--spacing-lg); +} + +article ul, article ol { + margin-left: var(--spacing-lg); + margin-bottom: var(--spacing-lg); +} + +article li { + margin-bottom: var(--spacing-sm); +} + +/* ========================================================================== + Print Styles + ========================================================================== */ + +@media print { + body { + font-size: 12pt; + line-height: 1.5; + color: #000; + } + + .container { + max-width: 100%; + padding: 0; + } + + .nav, .cta, .footer { + display: none; + } + + a { + color: #000; + text-decoration: underline; + } + + .card { + border: none; + page-break-inside: avoid; + } + + h1, h2, h3 { + page-break-after: avoid; + } +} + +/* ========================================================================== + Responsive Design + ========================================================================== */ + +@media (max-width: 768px) { + html { + font-size: 15px; + } + + h1 { + font-size: 2rem; + } + + h2 { + font-size: 1.75rem; + } + + h3 { + font-size: 1.35rem; + } + + .container { + padding: var(--spacing-md) var(--spacing-sm); + } + + .cv-entry-header { + flex-direction: column; + align-items: flex-start; + } + + .nav { + gap: var(--spacing-sm); + } +} + +@media (max-width: 480px) { + html { + font-size: 14px; + } + + .cta { + display: block; + text-align: center; + margin-bottom: var(--spacing-sm); + } +} + +/* ========================================================================== + Utility Classes + ========================================================================== */ + +.text-center { + text-align: center; +} + +.mt-0 { margin-top: 0; } +.mb-0 { margin-bottom: 0; } + +.hidden { + display: none; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..9accd13 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,138 @@ +/** + * Main JavaScript for Personal Website + * Optional interactive features and enhancements + */ + +(function() { + 'use strict'; + + /** + * Initialize on DOM ready + */ + function init() { + setupSmoothScrolling(); + setupFilterFeatures(); + highlightCurrentNavLink(); + } + + /** + * Setup smooth scrolling for anchor links + */ + function setupSmoothScrolling() { + const links = document.querySelectorAll('a[href^="#"]'); + + links.forEach(link => { + link.addEventListener('click', function(e) { + const href = this.getAttribute('href'); + + if (href === '#') return; + + const target = document.querySelector(href); + if (target) { + e.preventDefault(); + target.scrollIntoView({ + behavior: 'smooth', + block: 'start' + }); + } + }); + }); + } + + /** + * Setup filtering for project/writing lists + */ + function setupFilterFeatures() { + const filterButtons = document.querySelectorAll('[data-filter]'); + + if (filterButtons.length === 0) return; + + filterButtons.forEach(button => { + button.addEventListener('click', function() { + const filterValue = this.getAttribute('data-filter'); + const items = document.querySelectorAll('[data-category]'); + + // Update active button + filterButtons.forEach(btn => btn.classList.remove('active')); + this.classList.add('active'); + + // Filter items + items.forEach(item => { + const categories = item.getAttribute('data-category').split(' '); + + if (filterValue === 'all' || categories.includes(filterValue)) { + item.style.display = ''; + } else { + item.style.display = 'none'; + } + }); + }); + }); + } + + /** + * Highlight current navigation link based on page + */ + function highlightCurrentNavLink() { + const currentPath = window.location.pathname; + const navLinks = document.querySelectorAll('.nav a'); + + navLinks.forEach(link => { + const linkPath = link.getAttribute('href'); + + if (currentPath.includes(linkPath) && linkPath !== '/') { + link.style.fontWeight = '700'; + link.style.color = 'var(--color-accent)'; + } + }); + } + + /** + * Utility: Copy text to clipboard + */ + function copyToClipboard(text) { + if (navigator.clipboard && navigator.clipboard.writeText) { + navigator.clipboard.writeText(text).then(() => { + console.log('Copied to clipboard'); + }).catch(err => { + console.error('Failed to copy:', err); + }); + } + } + + /** + * Add copy buttons to code blocks + */ + function addCopyButtonsToCodeBlocks() { + const codeBlocks = document.querySelectorAll('pre code'); + + codeBlocks.forEach(block => { + const button = document.createElement('button'); + button.textContent = 'Copy'; + button.className = 'copy-button'; + button.style.cssText = 'position:absolute;top:0.5rem;right:0.5rem;padding:0.25rem 0.5rem;font-size:0.8rem;'; + + const pre = block.parentElement; + pre.style.position = 'relative'; + pre.appendChild(button); + + button.addEventListener('click', () => { + copyToClipboard(block.textContent); + button.textContent = 'Copied!'; + setTimeout(() => { + button.textContent = 'Copy'; + }, 2000); + }); + }); + } + + /** + * Initialize everything when DOM is ready + */ + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', init); + } else { + init(); + } + +})(); diff --git a/contact/index.html b/contact/index.html new file mode 100644 index 0000000..04ee54b --- /dev/null +++ b/contact/index.html @@ -0,0 +1,171 @@ + + + + + + + + Contact | Adab Tech + + + +
+
+

+ Adab Tech +

+ +
+ +
+

Contact

+ +
+

+ I'm always interested in connecting with researchers, technologists, and organizations + working at the intersection of language, culture, and artificial intelligence. +

+

+ I'm particularly interested in: +

+
    +
  • Research collaboration on African language NLP and LLMs
  • +
  • Opportunities in language technology and computational linguistics
  • +
  • Digital humanities projects focused on cultural preservation
  • +
  • Speaking engagements and workshops on multilingual AI
  • +
  • Consulting on ethical AI development for under-resourced languages
  • +
+
+ +
+

Get In Touch

+ +
+ +
+
+ +
+

Professional Networks

+ + +
+ +
+

Open Source & Community

+

+ I'm committed to open-source development and knowledge sharing. You can find my + code, research projects, and educational materials on GitHub. I welcome + contributions, feedback, and collaboration on all public repositories. +

+

+ + View GitHub Profile → + +

+
+ +
+

Current Availability

+
+

+ Employment: Open to full-time opportunities in NLP research, + language technology, or computational linguistics roles. Particularly interested + in positions that allow for work on African languages and ethical AI development. +

+

+ Consulting: Available for consulting projects related to + multilingual NLP, low-resource language technology, and digital humanities + methodologies. +

+

+ Speaking: Available for conference presentations, workshops, + and guest lectures on topics including African language technology, ethical AI, + and digital preservation of oral traditions. +

+
+
+ +
+

Response Time

+

+ I typically respond to professional inquiries within 2-3 business days. For urgent + matters, please indicate this in your subject line. For general questions about my + work or projects, feel free to reach out via social media or open an issue on the + relevant GitHub repository. +

+
+ +
+

Languages

+

+ I'm comfortable communicating in: +

+
    +
  • English (Native)
  • +
  • French (Fluent)
  • +
  • Hausa (Advanced)
  • +
  • Fulfulde (Intermediate)
  • +
+
+ +
+

Alternative Contact Methods

+

+ If you prefer not to use email, you can also connect with me through: +

+
    +
  • LinkedIn direct messaging (best for professional networking)
  • +
  • Twitter DMs (for quick questions or informal conversation)
  • +
  • GitHub issues or discussions (for technical questions about specific projects)
  • +
+
+ +
+ + +
+ + + + diff --git a/cv/index.html b/cv/index.html new file mode 100644 index 0000000..c2ed266 --- /dev/null +++ b/cv/index.html @@ -0,0 +1,335 @@ + + + + + + + + CV | Adab Tech + + + +
+
+

+ Adab Tech +

+ +
+ +
+

Curriculum Vitae

+ +
+

+ Humanities-trained researcher specializing in computational linguistics, natural + language processing, and language technology for under-resourced African languages. + Combining deep cultural and linguistic knowledge with technical expertise in AI and machine learning. +

+

+ Download PDF Version +

+
+ + +
+

Education

+ +
+
+ Master of Arts in Computational Linguistics + +
+

University of Example, Department of Linguistics

+
+

+ Thesis: "Developing NLP Tools for Hausa: Challenges and Opportunities + in Low-Resource Language Processing" +

+
    +
  • Specialized in natural language processing and machine learning
  • +
  • Coursework in statistical methods, neural networks, and language modeling
  • +
  • Research focus on African languages and multilingual NLP
  • +
+
+
+ +
+
+ Bachelor of Arts in Comparative Literature & African Studies + +
+

University of Example

+
+
    +
  • Double major in Comparative Literature and African Studies
  • +
  • Minor in Computer Science
  • +
  • Honors thesis on oral literary traditions in West Africa
  • +
  • Study abroad: Kano, Nigeria (Hausa language immersion)
  • +
+
+
+
+ + +
+

Professional Experience

+ +
+
+ NLP Research Assistant + +
+

African Language Technology Initiative

+
+
    +
  • Develop and fine-tune language models for Hausa and Fulfulde
  • +
  • Create annotated datasets for NER, POS tagging, and sentiment analysis
  • +
  • Collaborate with native speakers to ensure linguistic and cultural accuracy
  • +
  • Publish research on multilingual NLP challenges and solutions
  • +
  • Tools: Python, PyTorch, Transformers, spaCy, Git
  • +
+
+
+ +
+
+ Digital Humanities Research Fellow + +
+

Center for Digital Scholarship

+
+
    +
  • Built digital archives of West African oral literature and historical texts
  • +
  • Developed web-based tools for linguistic annotation and analysis
  • +
  • Conducted workshops on computational methods for humanities research
  • +
  • Managed project documentation and version control with Git/GitHub
  • +
+
+
+ +
+
+ French Language Instructor + +
+

University Language Center

+
+
    +
  • Taught intermediate French language courses (FR102, FR201)
  • +
  • Developed automated attendance and grading systems using Python
  • +
  • Integrated technology and multimedia resources into curriculum
  • +
  • Mentored students on language learning strategies and cultural competency
  • +
+
+
+
+ + +
+

Selected Projects

+ +
+
+ Hausa Language Explorer + +
+
+

+ Interactive web application for learning Hausa language and culture. + Features 500+ word dictionary, structured lessons, cultural content, and quizzes. +

+

Tech: JavaScript, HTML/CSS, Tailwind, GitHub Pages

+

View project details →

+
+
+ +
+
+ Multilingual Text Processing Pipeline + +
+
+

+ NLP pipeline for African language processing including tokenization, + morphological analysis, and semantic understanding for Hausa and Fulfulde. +

+

Tech: Python, spaCy, NLTK, Machine Learning

+
+
+ +
+
+ Digital Archive of Hausa Oral Literature + +
+
+

+ Searchable digital archive of Hausa proverbs, folktales, and oral narratives + with metadata tagging and full-text search capabilities. +

+

Tech: Database Design, Web Development, Community Engagement

+
+
+
+ + +
+

Publications & Presentations

+ +
+
+

+ "Bridging Oral Tradition and Digital Archives: Computational Approaches + to West African Literature" (2024). Journal of Digital Humanities, + Vol. 12, No. 3. +

+
+
+ +
+
+

+ "Challenges in Developing NLP Tools for Under-Resourced African Languages" + (2024). Presentation at Conference on African Language Technology, Accra, Ghana. +

+
+
+ +
+
+

+ "Ethics and Community Engagement in Language Technology Development" + (2023). ACL Workshop on Ethics in NLP. +

+
+
+
+ + +
+

Technical Skills

+ +

Programming Languages

+
    +
  • Python (Advanced)
  • +
  • JavaScript/TypeScript (Proficient)
  • +
  • HTML/CSS (Advanced)
  • +
  • SQL (Intermediate)
  • +
  • Bash/Shell Scripting
  • +
+ +

NLP & Machine Learning

+
    +
  • PyTorch
  • +
  • TensorFlow
  • +
  • Transformers (Hugging Face)
  • +
  • spaCy
  • +
  • NLTK
  • +
  • scikit-learn
  • +
  • Fine-tuning LLMs
  • +
  • Named Entity Recognition
  • +
  • POS Tagging
  • +
  • Sentiment Analysis
  • +
+ +

Tools & Technologies

+
    +
  • Git & GitHub
  • +
  • Jupyter Notebooks
  • +
  • VS Code
  • +
  • Docker
  • +
  • APIs & Web Services
  • +
  • Database Management
  • +
  • Data Visualization
  • +
  • Linux/Unix Systems
  • +
+ +

Research & Writing

+
    +
  • Academic Writing
  • +
  • Technical Documentation
  • +
  • Research Design
  • +
  • Data Analysis
  • +
  • Literature Review
  • +
  • LaTeX
  • +
  • Markdown
  • +
+
+ + +
+

Languages

+
    +
  • English (Native)
  • +
  • French (Fluent)
  • +
  • Hausa (Advanced)
  • +
  • Fulfulde (Intermediate)
  • +
  • Arabic (Basic)
  • +
+
+ + +
+

Awards & Recognition

+ +
+
+ Outstanding Graduate Research Award + +
+

Department of Linguistics

+
+ +
+
+ Digital Humanities Fellowship + +
+

Center for Digital Scholarship

+
+ +
+
+ Best Undergraduate Thesis in Comparative Literature + +
+

Department of Comparative Literature

+
+
+ + +
+

Professional Affiliations

+
    +
  • Association for Computational Linguistics (ACL)
  • +
  • African Language Technology Association
  • +
  • Digital Humanities Association
  • +
  • African Studies Association
  • +
+
+ + +
+

+ + Download PDF Version + +

+
+
+ + +
+ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..9d858b3 --- /dev/null +++ b/index.html @@ -0,0 +1,141 @@ + + + + + + + + + Adab Tech | Language & AI Researcher + + + +
+
+

+ Adab Tech +

+ +
+ +
+ +
+

Languages, Literature & AI

+

+ I'm a humanities-trained researcher working at the intersection of languages, + literature, and artificial intelligence. My work focuses on developing NLP + tools and language models for under-resourced languages, bridging the gap + between literary tradition and computational linguistics. +

+

+ With expertise in multilingual text processing (English, French, Hausa, Fulfulde), + I explore how large language models can be leveraged to preserve, analyze, and + make accessible the rich linguistic and cultural heritage of African languages. +

+
+ View Projects + Download CV +
+
+ + +
+

Featured Projects

+
    +
  • +

    + Hausa Language Explorer +

    +

    Interactive Web Application

    +

    + A comprehensive educational platform for learning Hausa language and culture, + featuring structured lessons, an extensive dictionary with 500+ entries, + and interactive quizzes. Built as a lightweight static application. +

    +
    + JavaScript + NLP + Educational Technology + Hausa +
    +
  • +
  • +

    + Multilingual Text Processing Pipeline +

    +

    Research & Development

    +

    + Development of NLP pipelines for African language processing, focusing on + tokenization, morphological analysis, and semantic understanding for Hausa + and Fulfulde languages. +

    +
    + Python + NLP + Machine Learning + Multilingual +
    +
  • +
+
+ + +
+

Recent Writing

+
    +
  • +

    + Bridging Oral Tradition and Digital Archives +

    +

    Published: December 2024

    +

    + Exploring how computational methods can help preserve and analyze oral + literary traditions from West Africa, with a focus on Hausa proverbs + and storytelling techniques. +

    +
  • +
  • +

    + The Ethics of Language Models for Under-Resourced Languages +

    +

    Published: November 2024

    +

    + A critical examination of the ethical considerations when developing + AI tools for languages with limited digital resources and the importance + of community-centered approaches. +

    +
  • +
+

+ View all writing → +

+
+ + +
+

Connect

+ +
+
+ + +
+ + + + diff --git a/projects/index.html b/projects/index.html new file mode 100644 index 0000000..48b7bcb --- /dev/null +++ b/projects/index.html @@ -0,0 +1,203 @@ + + + + + + + + Projects | Adab Tech + + + +
+
+

+ Adab Tech +

+ +
+ +
+

Projects

+

+ A portfolio of work at the intersection of language technology, artificial intelligence, + and digital humanities. These projects demonstrate expertise in NLP, language model development, + multilingual text processing, and educational technology. +

+ +
+
    +
  • +

    + Hausa Language Explorer +

    +

    Interactive Educational Platform • 2024

    +

    + A comprehensive web application for learning Hausa language and culture. + Features structured lessons, an extensive 500+ word dictionary with search + functionality, interactive quizzes, and cultural content including proverbs + and traditions. Built as a lightweight, zero-dependency static site for + maximum accessibility. +

    +
    + JavaScript + HTML/CSS + Educational Technology + Hausa + UX Design +
    +

    + View project details → | + Live demo ↗ +

    +
  • + +
  • +

    + Multilingual Text Processing Pipeline +

    +

    NLP Research & Development • 2024

    +

    + Development of natural language processing tools for under-resourced African + languages, specifically Hausa and Fulfulde. Includes tokenization, morphological + analysis, named entity recognition, and semantic processing. Addresses unique + challenges such as tonal marking, complex verb morphology, and code-switching. +

    +
    + Python + NLP + spaCy + Machine Learning + Multilingual +
    +
  • + +
  • +

    + Fine-tuning LLMs for African Languages +

    +

    Large Language Model Development • 2023-2024

    +

    + Research project exploring fine-tuning approaches for large language models + to improve performance on Hausa and other West African languages. Investigates + optimal training data collection, ethical considerations, and evaluation metrics + for low-resource language models. Collaboration with native speakers to ensure + cultural and linguistic accuracy. +

    +
    + Python + PyTorch + Transformers + LLMs + Ethics +
    +
  • + +
  • +

    + Digital Archive of Hausa Oral Literature +

    +

    Digital Humanities • 2023

    +

    + Creation of a searchable digital archive of Hausa proverbs, folktales, and + oral narratives. Features metadata tagging, thematic classification, and + full-text search. Developed with community input to ensure appropriate + handling of cultural materials and accessibility for both researchers and + community members. +

    +
    + Digital Humanities + Cultural Heritage + Database Design + Community Engagement +
    +
  • + +
  • +

    + Hausa-French-English Translation Tool +

    +

    Machine Translation • 2023

    +

    + Development of a specialized translation tool for Hausa-French-English + trilingual contexts, addressing the unique linguistic situation in West + Africa where these languages interact. Implements custom dictionaries, + handles code-switching, and provides context-aware translations for + educational and professional use. +

    +
    + Machine Translation + Python + Multilingual NLP + Web API +
    +
  • + +
  • +

    + French Language Attendance Tracker +

    +

    Educational Technology • 2024

    +

    + Python-based attendance management system designed for language classrooms. + Features automated tracking, reporting, and analytics to help instructors + monitor student engagement and participation patterns. Demonstrates ability + to create practical tools that address real pedagogical needs. +

    +
    + Python + Educational Technology + Data Analysis + Automation +
    +
  • +
+
+ +
+

Open Source Contributions

+

+ Active contributor to open-source projects in the NLP and digital humanities space. + Particular focus on improving language support for under-resourced languages in + popular libraries and frameworks. +

+

+ + View GitHub profile → + +

+
+ +
+

Skills & Technologies

+
    +
  • Python (Advanced)
  • +
  • JavaScript/TypeScript
  • +
  • Natural Language Processing
  • +
  • Large Language Models
  • +
  • Machine Learning (PyTorch, TensorFlow)
  • +
  • spaCy, NLTK, Transformers
  • +
  • Web Development (HTML/CSS/JS)
  • +
  • Git & Version Control
  • +
  • Data Analysis & Visualization
  • +
  • Multilingual Text Processing
  • +
  • Digital Humanities Methods
  • +
  • Technical Writing & Documentation
  • +
+
+
+ + +
+ + + + diff --git a/projects/sample-project.html b/projects/sample-project.html new file mode 100644 index 0000000..027a36a --- /dev/null +++ b/projects/sample-project.html @@ -0,0 +1,262 @@ + + + + + + + + Hausa Language Explorer | Adab Tech + + + +
+
+

+ Adab Tech +

+ +
+ +
+
+

Hausa Language Explorer

+ + + +
+

Problem Statement

+

+ Hausa, spoken by over 70 million people across West and Central Africa, remains + an under-resourced language in digital education. While numerous resources exist + for major European languages, learners of Hausa face a shortage of accessible, + comprehensive, and interactive learning tools. +

+

+ Existing resources are often: +

+
    +
  • Scattered across multiple platforms and formats
  • +
  • Limited to basic vocabulary without cultural context
  • +
  • Not optimized for self-directed learning
  • +
  • Inaccessible due to cost or technical requirements
  • +
  • Lacking interactive elements for engagement and retention
  • +
+

+ This gap particularly affects diaspora communities, heritage language learners, + researchers, and anyone interested in West African languages and cultures. +

+
+ +
+

Solution Overview

+

+ The Hausa Language Explorer is a comprehensive, single-page + educational application that provides structured learning materials, an extensive + dictionary, and interactive quizzes—all accessible instantly in any web browser + without installation or authentication. +

+

+ The platform is designed for users of all levels, from complete beginners to + advanced learners and language professionals. It emphasizes both linguistic + competence and cultural understanding. +

+
+ +
+

Key Features

+ +

1. Lessons & Culture (Al'adun Hausa)

+

A structured learning hub with clear tabbed navigation:

+
    +
  • Greetings & Sentences: Essential phrases for daily communication
  • +
  • Numbers 1-100: Complete number system with audio-ready content
  • +
  • Proverbs: Traditional wisdom with literal translations and cultural meanings
  • +
  • Themed Vocabulary: Specialized lists (Food, Science & Tech, Literature)
  • +
  • Cultural Facts: Historical and contemporary cultural information
  • +
+ +

2. Dictionary (Kamus)

+

Comprehensive vocabulary resource:

+
    +
  • 500+ Core Entries: Verbs, nouns, adjectives, time expressions, and more
  • +
  • Interactive Search: Real-time filtering by Hausa term, English translation, or example
  • +
  • Example Sentences: Every entry includes contextual usage
  • +
  • Part of Speech Tagging: Clear grammatical categorization
  • +
+ +

3. Quiz (Jarrabawa)

+

Engagement through active learning:

+
    +
  • Randomized Questions: Multiple-choice vocabulary tests
  • +
  • Immediate Feedback: Visual progress tracking and scoring
  • +
  • Spaced Repetition: Questions drawn from complete vocabulary set
  • +
+
+ +
+

Technical Implementation

+ +

Technology Stack

+
    +
  • HTML5
  • +
  • Vanilla JavaScript
  • +
  • Tailwind CSS
  • +
  • Zero Dependencies
  • +
  • Static Site (GitHub Pages)
  • +
+ +

Architecture Decisions

+

+ Single-Page Application (SPA): The entire application loads as + a single HTML file with embedded JavaScript and data. This approach maximizes + accessibility and minimizes technical barriers. +

+

+ Client-Side Data Management: All vocabulary data is embedded in + JavaScript objects, eliminating the need for external databases or APIs. This + ensures the application works offline and loads instantly. +

+

+ Responsive Design: Mobile-first approach using Tailwind CSS + ensures accessibility across devices from smartphones to desktop computers. +

+

+ Performance Optimization: Minimal dependencies and optimized + rendering ensure fast load times even on slower connections, crucial for users + in regions with limited internet infrastructure. +

+
+ +
+

My Role & Contributions

+
    +
  • + Full-Stack Development: Designed and implemented the complete + application architecture, from data structures to user interface +
  • +
  • + Content Curation: Compiled and structured 500+ vocabulary + entries with example sentences, ensuring linguistic accuracy +
  • +
  • + UX Design: Created intuitive navigation and clear information + hierarchy optimized for learning workflows +
  • +
  • + Cultural Integration: Incorporated proverbs, cultural facts, + and contextual information to provide holistic language education +
  • +
  • + Testing & Optimization: Conducted usability testing and + performance optimization for cross-browser compatibility +
  • +
+
+ +
+

Impact & Results

+
    +
  • + Accessibility: Free, open-source platform accessible to anyone + with internet access, regardless of location or economic status +
  • +
  • + Educational Value: Comprehensive resource for self-directed + learners, complementing formal language instruction +
  • +
  • + Cultural Preservation: Digital preservation of proverbs, + traditions, and cultural knowledge for current and future generations +
  • +
  • + Technical Innovation: Demonstrates how lightweight, + zero-dependency applications can deliver rich educational experiences +
  • +
  • + Scalability: Architecture can be adapted for other + under-resourced languages, providing a template for similar projects +
  • +
+
+ +
+

Technical Skills Demonstrated

+
+ JavaScript (ES6+) + HTML5 Semantics + CSS (Tailwind) + Responsive Design + UX/UI Design + Data Structures + Search Algorithms + State Management + Git & Version Control + GitHub Pages Deployment + Cross-Browser Testing + Performance Optimization +
+
+ +
+

Future Development

+

Planned enhancements include:

+
    +
  • Audio pronunciation for all vocabulary entries
  • +
  • Additional quiz modes (listening comprehension, sentence construction)
  • +
  • User progress tracking with local storage
  • +
  • Expanded cultural content (folktales, historical narratives)
  • +
  • Community contribution system for crowd-sourced vocabulary expansion
  • +
  • Integration with other language learning methodologies (spaced repetition, flashcards)
  • +
+
+ +
+

Links & Resources

+

+ + Launch Application ↗ + + + View Source Code ↗ + +

+
+ +
+ +

+ Note for Recruiters: This project demonstrates proficiency in + modern web development, data management, user experience design, and the ability + to create practical solutions for real-world educational challenges. The focus on + accessibility and zero-dependency architecture shows consideration for diverse user + contexts and technical constraints. +

+
+
+ + +
+ + + + diff --git a/writing/index.html b/writing/index.html new file mode 100644 index 0000000..2b5a59c --- /dev/null +++ b/writing/index.html @@ -0,0 +1,134 @@ + + + + + + + + Writing | Adab Tech + + + +
+
+

+ Adab Tech +

+ +
+ +
+

Writing

+

+ Essays, articles, and reflections on language, literature, artificial intelligence, + and the intersections between traditional humanities scholarship and computational methods. +

+ +
+
    +
  • +

    + Bridging Oral Tradition and Digital Archives +

    +

    December 14, 2024 • 8 min read

    +

    + Exploring how computational methods can help preserve and analyze oral + literary traditions from West Africa, with a focus on Hausa proverbs + and storytelling techniques. This multilingual essay examines the technical + and cultural challenges of digitizing oral heritage. +

    +
    + Linguistics + Digital Humanities + Cultural Heritage + Multilingual +
    +
  • + +
  • +

    + The Ethics of Language Models for Under-Resourced Languages +

    +

    November 28, 2024 • 12 min read

    +

    + A critical examination of the ethical considerations when developing + AI tools for languages with limited digital resources. What responsibilities + do researchers have to the communities whose languages they study? How can + we ensure community-centered approaches to language technology? +

    +
    + AI Ethics + NLP + Language Rights +
    +
  • + +
  • +

    + From Colonial Archives to Open Data: Rethinking African Language Resources +

    +

    October 15, 2024 • 10 min read

    +

    + How can we transform the legacy of colonial-era language documentation + into resources that serve contemporary African communities? This essay + explores the politics of language data and the importance of decolonizing + linguistic archives. +

    +
    + Postcolonial Studies + Digital Archives + African Languages +
    +
  • + +
  • +

    + Multilingual NLP in Practice: Lessons from Building Language Tools +

    +

    September 22, 2024 • 15 min read

    +

    + Technical insights and practical considerations from developing NLP pipelines + for low-resource languages. Covering tokenization challenges, morphological + complexity, code-switching, and evaluation metrics for African languages. +

    +
    + NLP + Technical + Machine Learning +
    +
  • + +
  • +

    + Literature in the Age of LLMs: What Gets Lost in Translation? +

    +

    August 10, 2024 • 9 min read

    +

    + As large language models become capable of generating and translating text + across languages, what happens to the subtle artistry of literary translation? + A humanities perspective on machine translation and poetic meaning. +

    +
    + Literary Studies + Translation + LLMs +
    +
  • +
+
+
+ + +
+ + + + diff --git a/writing/sample-post.html b/writing/sample-post.html new file mode 100644 index 0000000..c26e7b4 --- /dev/null +++ b/writing/sample-post.html @@ -0,0 +1,251 @@ + + + + + + + + Bridging Oral Tradition and Digital Archives | Adab Tech + + + +
+
+

+ Adab Tech +

+ +
+ +
+
+

Bridging Oral Tradition and Digital Archives

+ + + + +
+

English

+ +

+ For centuries, the literary traditions of West Africa have been transmitted + orally, passed down through generations of storytellers, griots, and poets. + These rich narratives, proverbs, and historical accounts embody not just + linguistic heritage, but entire worldviews, ethical systems, and cultural + knowledge. +

+ +

+ Today, we stand at a critical juncture. Digital technologies, particularly + advances in natural language processing and large language models, offer + unprecedented opportunities to preserve, analyze, and make accessible these + oral traditions. Yet this technological promise comes with profound challenges. +

+ +

The Challenge of Digitization

+ +

+ Unlike written texts that can be scanned and processed, oral traditions resist + simple digitization. They exist not as fixed artifacts but as living performances, + shaped by context, audience, and the artistry of the performer. When we record + and transcribe oral literature, what do we preserve, and what inevitably gets lost? +

+ +

+ Consider the Hausa proverb: "Maganar gaskiya ba ta da mafari" + (A true word has no owner). This saying contains layers of meaning that extend + beyond literal translation. It speaks to communal ownership of wisdom, the + fluidity of oral tradition, and the democratic nature of proverbial knowledge. +

+ +

Computational Methods and Cultural Context

+ +

+ Natural language processing tools, when thoughtfully applied, can help us + identify patterns in oral literature: recurring motifs, structural elements, + linguistic features that define genres and styles. Machine learning models can + assist in cataloging vast collections of recorded narratives, making them + searchable and analyzable. +

+ +

+ However, these tools must be developed with deep cultural sensitivity. An + algorithm trained primarily on written European languages may fail to capture + the tonal nuances of Hausa, the complex verb morphology of Fulfulde, or the + contextual meanings embedded in oral performance. +

+ +

Community-Centered Approaches

+ +

+ The most promising work in this field recognizes that communities are not + merely sources of data, but active partners in knowledge creation. Digital + archives should serve the needs of the communities whose traditions they + preserve, not just academic researchers or technology companies. +

+ +

+ This means involving native speakers and cultural practitioners at every + stage: from deciding what should be recorded, to determining how materials + should be accessed, to ensuring that the resulting tools and resources + benefit the communities themselves. +

+
+ + +
+

Français

+ +

+ Pendant des siècles, les traditions littéraires de l'Afrique de l'Ouest ont + été transmises oralement, passant de génération en génération par les conteurs, + les griots et les poètes. Ces récits, proverbes et récits historiques riches + incarnent non seulement un patrimoine linguistique, mais aussi des visions du + monde entières, des systèmes éthiques et des connaissances culturelles. +

+ +

+ Aujourd'hui, nous sommes à un moment critique. Les technologies numériques, + en particulier les progrès du traitement du langage naturel et des grands + modèles de langage, offrent des opportunités sans précédent pour préserver, + analyser et rendre accessibles ces traditions orales. Pourtant, cette promesse + technologique s'accompagne de défis profonds. +

+ +

Le défi de la numérisation

+ +

+ Contrairement aux textes écrits qui peuvent être numérisés et traités, les + traditions orales résistent à une simple numérisation. Elles existent non pas + comme des artefacts fixes, mais comme des performances vivantes, façonnées par + le contexte, le public et l'art de l'interprète. +

+
+ + +
+

Hausa

+ +

+ Shekaru da yawa, al'adun wallafe-wallafen Afirka ta Yamma ana isar da su + ta hanyar baka, ana watsa su daga tsara zuwa tsara ta hanyar masu ba da + labaru, mawaka da mawaƙa. Waɗannan labarun da karin magana da tarihin da + aka rubuta sun ƙunshi ba kawai al'adun harshe ba, amma dukan ra'ayoyin + duniya, tsarin ɗabi'a, da ilimin al'adu. +

+ +

+ A yau, muna tsaye a wani muhimmin lokaci. Fasahar dijital, musamman + ci gaban sarrafa harshe ta halitta da manyan samfuran harshe, suna ba da + damar da ba a taɓa gani ba don adanawa, nazari, da sauƙaƙa samun damar + wannan al'adun baka. +

+ +

Ƙalubalen Dijitalawa

+ +

+ Ba kamar rubuce-rubucen da za a iya bincika su da sarrafa su ba, al'adun + baka suna ƙin yin sauƙi dijitalawa. Ba su wanzu azaman kayan tarihi ba + amma a matsayin wasan kwaikwayo mai rai, wanda yanayi, masu sauraro, da + fasaha na ɗan wasan suka tsara. +

+ +
+ "Maganar gaskiya ba ta da mafari" — Karin magana ta Hausa +
+ +

+ Wannan karin magana ta ƙunshi matakan ma'ana waɗanda suka fi fassarar + zahiri. Tana magana ne game da mallakar hikima ta al'umma, sauƙin al'adun + baka, da yanayin dimokiradiyya na ilimin karin magana. +

+
+ + +
+

Fulfulde

+ +

+ Duuɓi ɗiɗi, golle winndere Afrik Hirna'en tottinaa e ɗemngal, + yaltinaa haa e fedde e fedde, e jeeyɓe, jaagorgal, e pooccɓe. + Ɗee kare, taamnorɗe e daartol taariiha ɗee, wona tan ɗemɗe + goonga, kono kadi geɗe goɗɗe, njuɓɓudi siine, e anndeede golle. +

+ +

+ Hannde, min seeɓtoo ko e sahaa muɥiimaa. Keɓe njuɓɓinirɗe + dijiital, ɓurna ko waɗde e njartagol ɗemɗe ganndiiɗe e + modele ɗemɗe mawnɗe, woni yahde sarɗiiji ɓeydaaɗi ngam + mooftinde, ɓeydude e wonde ɗee golle ɗemngal keɓɓe. +

+ +

Caggal Dijiitalgo

+ +

+ Ko woni winnduɓe winndannde ɗe ngonaa njuɓɓina e cukkinde, + golle ɗemngal wona ko fenɗinde dijiital wonɓe. Ɗee ndeey wonaa + hono kuuje waɗɗiɗe, kono hono jabtine galle, ko yiɗi, + njoorɗe e jaɓɓorgo nguurndam joggiɗo. +

+
+ + +
+

English (Conclusion)

+ +

Looking Forward

+ +

+ The intersection of oral tradition and digital technology is not a one-way + street where technology merely extracts and archives cultural knowledge. + Rather, it should be a space of creative dialogue, where traditional knowledge + holders and technologists work together to build tools that respect both the + integrity of oral traditions and the needs of contemporary communities. +

+ +

+ As we develop language models and digital archives for African languages, + we must ask: Who benefits from these tools? Who controls the data? How do + we ensure that digitization serves preservation and cultural vitality, rather + than extraction and cultural appropriation? +

+ +

+ These are not merely technical questions, but fundamentally ethical and + political ones. The answers will shape not just the future of digital + humanities, but the future of linguistic and cultural diversity itself. +

+
+ +
+ +

+ About this essay: This multilingual piece demonstrates the + challenges and possibilities of digital scholarship across languages. The full + translations in French, Hausa, and Fulfulde highlight the importance of making + academic discourse accessible beyond English-language contexts. +

+
+
+ + +
+ + + + From 6e7eef26a3200b1b4a3a27e345673f45ea1485c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:25:49 +0000 Subject: [PATCH 3/6] Fix accessibility and code quality issues from code review Co-authored-by: adab-tech <179881660+adab-tech@users.noreply.github.com> --- assets/css/style.css | 2 +- assets/js/main.js | 1 + writing/sample-post.html | 10 +++++----- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/assets/css/style.css b/assets/css/style.css index 77e3bc5..1d42e92 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -584,7 +584,7 @@ article li { padding: 0; margin: -1px; overflow: hidden; - clip: rect(0, 0, 0, 0); + clip-path: inset(50%); white-space: nowrap; border: 0; } diff --git a/assets/js/main.js b/assets/js/main.js index 9accd13..288f86a 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -13,6 +13,7 @@ setupSmoothScrolling(); setupFilterFeatures(); highlightCurrentNavLink(); + addCopyButtonsToCodeBlocks(); } /** diff --git a/writing/sample-post.html b/writing/sample-post.html index c26e7b4..e99e2ca 100644 --- a/writing/sample-post.html +++ b/writing/sample-post.html @@ -34,7 +34,7 @@

Bridging Oral Tradition and Digital Archives

-
+

English

@@ -103,7 +103,7 @@

Community-Centered Approaches

-
+

Français

@@ -133,7 +133,7 @@

Le défi de la numérisation

-
+

Hausa

@@ -172,7 +172,7 @@

Ƙalubalen Dijitalawa

-
+

Fulfulde

@@ -200,7 +200,7 @@

Caggal Dijiitalgo

-
+

English (Conclusion)

Looking Forward

From 38da9e42c1cc1b61b46a96ca861e2e1669aaf9d2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:33:30 +0000 Subject: [PATCH 4/6] Add deployment guides for GitHub Pages Co-authored-by: adab-tech <179881660+adab-tech@users.noreply.github.com> --- DEPLOYMENT.md | 161 ++++++++++++++++++++++++++++++++++++++++++++++++ QUICK_DEPLOY.md | 148 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 309 insertions(+) create mode 100644 DEPLOYMENT.md create mode 100644 QUICK_DEPLOY.md diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md new file mode 100644 index 0000000..26a2b47 --- /dev/null +++ b/DEPLOYMENT.md @@ -0,0 +1,161 @@ +# Deployment Guide for GitHub Pages + +This guide explains how to deploy your personal website to GitHub Pages. + +## Prerequisites + +- Your website files are in the repository `adab-tech/adab-tech.github.io` +- You have admin access to the repository + +## Deployment Steps + +### Option 1: Deploy from Main Branch (Recommended) + +1. **Merge the PR to main branch:** + ```bash + # Switch to main branch + git checkout main + + # Merge the feature branch + git merge copilot/create-static-personal-website + + # Push to GitHub + git push origin main + ``` + +2. **Enable GitHub Pages:** + - Go to your repository on GitHub: `https://github.com/adab-tech/adab-tech.github.io` + - Click on **Settings** (gear icon) + - Scroll down to **Pages** section in the left sidebar + - Under **Source**, select **Deploy from a branch** + - Under **Branch**, select `main` and folder `/ (root)` + - Click **Save** + +3. **Wait for deployment:** + - GitHub will automatically build and deploy your site + - This usually takes 1-2 minutes + - A green checkmark will appear when deployment is complete + +4. **Access your site:** + - Your website will be available at: `https://adab-tech.github.io/` + - The deployment URL will be shown in the Pages settings + +### Option 2: Deploy from a Custom Branch + +If you want to deploy from a different branch: + +1. Push your branch to GitHub (already done) +2. In repository **Settings** → **Pages** +3. Select your branch: `copilot/create-static-personal-website` +4. Select folder: `/ (root)` +5. Click **Save** + +### Option 3: Use GitHub Actions (Advanced) + +For automated deployments, you can use GitHub Actions workflow, but it's not necessary for this simple static site. + +## Verifying Deployment + +After deployment, test your website: + +1. **Homepage:** `https://adab-tech.github.io/` +2. **Writing:** `https://adab-tech.github.io/writing/` +3. **Projects:** `https://adab-tech.github.io/projects/` +4. **CV:** `https://adab-tech.github.io/cv/` +5. **Contact:** `https://adab-tech.github.io/contact/` + +## Navigation Links + +The website uses absolute paths like `/writing/`, `/projects/`, etc. These will work correctly on GitHub Pages at the root domain. + +If you encounter any issues with navigation: +- Ensure the branch is deployed from the root folder `/` +- Check that all files are properly committed and pushed +- Clear your browser cache + +## Custom Domain (Optional) + +To use a custom domain like `www.yourname.com`: + +1. Add a `CNAME` file in the root directory with your domain: + ``` + www.yourname.com + ``` + +2. Configure DNS at your domain registrar: + - Add a CNAME record pointing to `adab-tech.github.io` + - Or add A records pointing to GitHub Pages IPs: + - 185.199.108.153 + - 185.199.109.153 + - 185.199.110.153 + - 185.199.111.153 + +3. Enable custom domain in GitHub Pages settings + +## Troubleshooting + +### Site Not Loading + +- Wait 5-10 minutes after initial setup +- Check the Actions tab for build errors +- Verify the branch and folder are correctly configured + +### 404 Errors + +- Ensure all file paths use lowercase +- Check that `index.html` exists in each directory +- Verify navigation links use the correct format + +### CSS/JS Not Loading + +- Check browser console for errors +- Verify asset paths in HTML files +- Ensure all files are committed and pushed + +### Print CV Not Working + +- The "Download PDF" button uses `window.print()` which opens the browser print dialog +- Users can save as PDF from the print dialog +- This works in all modern browsers + +## Updates and Maintenance + +To update your website after initial deployment: + +1. Make changes to your files locally +2. Commit the changes: + ```bash + git add . + git commit -m "Update content" + ``` +3. Push to the deployed branch: + ```bash + git push origin main + ``` +4. GitHub Pages will automatically rebuild and redeploy (1-2 minutes) + +## Performance Tips + +Your site is already optimized: +- ✅ Lightweight assets (12KB CSS, 4.2KB JS) +- ✅ No external dependencies +- ✅ Mobile-first responsive design +- ✅ Semantic HTML for SEO + +## Security + +Your static site has minimal security concerns: +- No server-side code +- No user authentication +- No database +- All code passed security scan (0 vulnerabilities) + +## Support + +For GitHub Pages documentation: +- https://docs.github.com/en/pages + +For issues specific to this website: +- Open an issue in the repository +- Check the console for JavaScript errors +- Verify all files are present in the deployed branch diff --git a/QUICK_DEPLOY.md b/QUICK_DEPLOY.md new file mode 100644 index 0000000..6791b16 --- /dev/null +++ b/QUICK_DEPLOY.md @@ -0,0 +1,148 @@ +# Quick Deployment Guide + +## 🚀 Fast Track: Deploy in 3 Steps + +### Step 1: Merge to Main Branch +```bash +git checkout main +git merge copilot/create-static-personal-website +git push origin main +``` + +### Step 2: Enable GitHub Pages +1. Go to: `https://github.com/adab-tech/adab-tech.github.io/settings/pages` +2. Under **Source**, select: `Deploy from a branch` +3. Under **Branch**, select: `main` and `/ (root)` +4. Click **Save** + +### Step 3: Access Your Site +Wait 1-2 minutes, then visit: **`https://adab-tech.github.io/`** + +--- + +## 📋 Deployment Checklist + +- [ ] Merge PR to main branch +- [ ] Enable GitHub Pages in repository settings +- [ ] Select `main` branch and `/ (root)` folder +- [ ] Wait for deployment (check Actions tab) +- [ ] Test all pages: + - [ ] Homepage: `/` + - [ ] Writing: `/writing/` + - [ ] Projects: `/projects/` + - [ ] CV: `/cv/` + - [ ] Contact: `/contact/` + +--- + +## 🔍 Visual Deployment Flow + +``` +Your Local Repository + │ + ├─ git merge copilot/create-static-personal-website + │ + ├─ git push origin main + │ + ▼ + GitHub Repository (main branch) + │ + ├─ Settings → Pages + │ + ├─ Source: main / (root) + │ + ▼ + GitHub Pages Build + │ + ├─ Automatic build (1-2 min) + │ + ▼ + 🌐 Live Website + https://adab-tech.github.io/ +``` + +--- + +## 📁 What Gets Deployed + +``` +adab-tech.github.io/ +├── index.html → Homepage +├── writing/ +│ ├── index.html → Writing list +│ └── sample-post.html → Multilingual article +├── projects/ +│ ├── index.html → Project portfolio +│ └── sample-project.html → Hausa Explorer +├── cv/ +│ └── index.html → CV/Resume +├── contact/ +│ └── index.html → Contact page +└── assets/ + ├── css/style.css → Styles (12KB) + └── js/main.js → Scripts (4.2KB) +``` + +--- + +## ⚡ Alternative: Deploy Current Branch Directly + +If you want to deploy without merging to main: + +1. Go to: `https://github.com/adab-tech/adab-tech.github.io/settings/pages` +2. Under **Branch**, select: `copilot/create-static-personal-website` and `/ (root)` +3. Click **Save** +4. Site will be live at: `https://adab-tech.github.io/` + +**Note:** This is useful for preview/testing before merging to main. + +--- + +## 🎯 Expected URLs After Deployment + +| Section | URL | +|---------|-----| +| Homepage | `https://adab-tech.github.io/` | +| Writing | `https://adab-tech.github.io/writing/` | +| Sample Post | `https://adab-tech.github.io/writing/sample-post.html` | +| Projects | `https://adab-tech.github.io/projects/` | +| Hausa Explorer | `https://adab-tech.github.io/projects/sample-project.html` | +| CV | `https://adab-tech.github.io/cv/` | +| Contact | `https://adab-tech.github.io/contact/` | + +--- + +## 💡 Pro Tips + +1. **First deployment takes longer** (3-5 minutes) as GitHub Pages sets up the environment +2. **Subsequent updates** deploy in 1-2 minutes +3. **Check deployment status** in the repository's "Actions" tab +4. **Clear browser cache** if you don't see changes immediately +5. **Mobile testing**: Use Chrome DevTools to test responsive design + +--- + +## 🐛 Common Issues & Solutions + +### Issue: 404 Not Found +**Solution:** Ensure `index.html` exists in the root and all subdirectories + +### Issue: CSS not loading +**Solution:** Check that paths use `/assets/css/style.css` (with leading slash) + +### Issue: Changes not appearing +**Solution:** +- Wait 2-3 minutes for build to complete +- Clear browser cache (Ctrl+Shift+R or Cmd+Shift+R) +- Check Actions tab for build errors + +### Issue: Navigation links broken +**Solution:** All links use absolute paths (`/writing/`) which work on GitHub Pages + +--- + +## 📞 Need Help? + +See full deployment guide: [DEPLOYMENT.md](./DEPLOYMENT.md) + +GitHub Pages documentation: https://docs.github.com/en/pages From 32ab2436347e582f57694dc807089285f47b600f Mon Sep 17 00:00:00 2001 From: Adamu Abubakar Date: Sun, 14 Dec 2025 12:26:20 -0600 Subject: [PATCH 5/6] Create CNAME --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..715dcf6 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +adamu.tech \ No newline at end of file From 1fd8097556f65b66bffec9dbfd43f3bc1e3a809b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 18:31:09 +0000 Subject: [PATCH 6/6] Update deployment guides for adamu.tech custom domain Co-authored-by: adab-tech <179881660+adab-tech@users.noreply.github.com> --- DEPLOYMENT.md | 30 ++++++++++++++++++++- QUICK_DEPLOY.md | 70 ++++++++++++++++++++++++++++++------------------- 2 files changed, 72 insertions(+), 28 deletions(-) diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index 26a2b47..a85ce45 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -1,11 +1,39 @@ # Deployment Guide for GitHub Pages -This guide explains how to deploy your personal website to GitHub Pages. +This guide explains how to deploy your personal website to GitHub Pages with the custom domain `adamu.tech`. ## Prerequisites - Your website files are in the repository `adab-tech/adab-tech.github.io` - You have admin access to the repository +- You own the domain `adamu.tech` and can configure DNS records + +## Quick Start: Deploy to adamu.tech + +Your site is pre-configured to deploy to `adamu.tech` (CNAME file already included). + +1. **Configure DNS** at your domain registrar for `adamu.tech`: + - Add **A records**: + - `185.199.108.153` + - `185.199.109.153` + - `185.199.110.153` + - `185.199.111.153` + +2. **Merge and Deploy**: + ```bash + git checkout main + git merge copilot/create-static-personal-website + git push origin main + ``` + +3. **Enable GitHub Pages**: + - Go to: `https://github.com/adab-tech/adab-tech.github.io/settings/pages` + - Source: `main` branch, `/ (root)` folder + - Custom domain: `adamu.tech` (should auto-populate) + - Click **Save** + - Enable **Enforce HTTPS** after DNS propagates + +4. **Access your site** at `https://adamu.tech/` (DNS propagation: 5-30 minutes) ## Deployment Steps diff --git a/QUICK_DEPLOY.md b/QUICK_DEPLOY.md index 6791b16..c5ae0e6 100644 --- a/QUICK_DEPLOY.md +++ b/QUICK_DEPLOY.md @@ -1,37 +1,51 @@ # Quick Deployment Guide -## 🚀 Fast Track: Deploy in 3 Steps +## 🚀 Fast Track: Deploy to adamu.tech -### Step 1: Merge to Main Branch +Your site is pre-configured with custom domain `adamu.tech` (CNAME file included). + +### Step 1: Configure DNS +At your domain registrar for `adamu.tech`, add these **A records**: +- `185.199.108.153` +- `185.199.109.153` +- `185.199.110.153` +- `185.199.111.153` + +### Step 2: Merge to Main Branch ```bash git checkout main git merge copilot/create-static-personal-website git push origin main ``` -### Step 2: Enable GitHub Pages +### Step 3: Enable GitHub Pages 1. Go to: `https://github.com/adab-tech/adab-tech.github.io/settings/pages` 2. Under **Source**, select: `Deploy from a branch` 3. Under **Branch**, select: `main` and `/ (root)` -4. Click **Save** +4. Custom domain: `adamu.tech` (should auto-populate from CNAME) +5. Click **Save** +6. Enable **Enforce HTTPS** after DNS propagates -### Step 3: Access Your Site -Wait 1-2 minutes, then visit: **`https://adab-tech.github.io/`** +### Step 4: Access Your Site +Wait 5-30 minutes for DNS propagation, then visit: **`https://adamu.tech/`** --- ## 📋 Deployment Checklist +- [ ] Configure DNS A records at domain registrar - [ ] Merge PR to main branch - [ ] Enable GitHub Pages in repository settings - [ ] Select `main` branch and `/ (root)` folder -- [ ] Wait for deployment (check Actions tab) +- [ ] Verify custom domain is set to `adamu.tech` +- [ ] Wait for DNS propagation (5-30 minutes) +- [ ] Enable HTTPS enforcement - [ ] Test all pages: - - [ ] Homepage: `/` - - [ ] Writing: `/writing/` - - [ ] Projects: `/projects/` - - [ ] CV: `/cv/` - - [ ] Contact: `/contact/` + - [ ] Homepage: `https://adamu.tech/` + - [ ] Writing: `https://adamu.tech/writing/` + - [ ] Projects: `https://adamu.tech/projects/` + - [ ] CV: `https://adamu.tech/cv/` + - [ ] Contact: `https://adamu.tech/contact/` --- @@ -58,7 +72,7 @@ Your Local Repository │ ▼ 🌐 Live Website - https://adab-tech.github.io/ + https://adamu.tech/ ``` --- @@ -87,12 +101,12 @@ adab-tech.github.io/ ## ⚡ Alternative: Deploy Current Branch Directly -If you want to deploy without merging to main: +If you want to deploy without merging to main (for preview/testing): 1. Go to: `https://github.com/adab-tech/adab-tech.github.io/settings/pages` 2. Under **Branch**, select: `copilot/create-static-personal-website` and `/ (root)` 3. Click **Save** -4. Site will be live at: `https://adab-tech.github.io/` +4. Site will be live at: `https://adamu.tech/` (after DNS is configured) **Note:** This is useful for preview/testing before merging to main. @@ -102,23 +116,25 @@ If you want to deploy without merging to main: | Section | URL | |---------|-----| -| Homepage | `https://adab-tech.github.io/` | -| Writing | `https://adab-tech.github.io/writing/` | -| Sample Post | `https://adab-tech.github.io/writing/sample-post.html` | -| Projects | `https://adab-tech.github.io/projects/` | -| Hausa Explorer | `https://adab-tech.github.io/projects/sample-project.html` | -| CV | `https://adab-tech.github.io/cv/` | -| Contact | `https://adab-tech.github.io/contact/` | +| Homepage | `https://adamu.tech/` | +| Writing | `https://adamu.tech/writing/` | +| Sample Post | `https://adamu.tech/writing/sample-post.html` | +| Projects | `https://adamu.tech/projects/` | +| Hausa Explorer | `https://adamu.tech/projects/sample-project.html` | +| CV | `https://adamu.tech/cv/` | +| Contact | `https://adamu.tech/contact/` | --- ## 💡 Pro Tips -1. **First deployment takes longer** (3-5 minutes) as GitHub Pages sets up the environment -2. **Subsequent updates** deploy in 1-2 minutes -3. **Check deployment status** in the repository's "Actions" tab -4. **Clear browser cache** if you don't see changes immediately -5. **Mobile testing**: Use Chrome DevTools to test responsive design +1. **DNS propagation** takes 5-30 minutes (sometimes up to 24 hours globally) +2. **First deployment takes longer** (3-5 minutes) as GitHub Pages sets up the environment +3. **Subsequent updates** deploy in 1-2 minutes +4. **Check deployment status** in the repository's "Actions" tab +5. **Clear browser cache** if you don't see changes immediately +6. **Mobile testing**: Use Chrome DevTools to test responsive design +7. **HTTPS**: Enable "Enforce HTTPS" only after DNS fully propagates ---