1<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> Projects | SciencePond | Rafael Oliveira's CV and Blog </title> <meta name="author" content="Rafael Oliveira"> <meta name="description" content="This section is dedicated to (mostly) description and explanation of projects I have been involved in. This section will not have a focus on coding, but rather explanation of the methodology and the results (What, Why and How). For coding and tutorials, check out the blog posts and my GitHub repositories!"> <meta name="keywords" content="jekyll, jekyll-theme, academic-website, portfolio-website"> <meta property="og:site_name" content="SciencePond | Rafael Oliveira's CV and Blog"> <meta property="og:type" content="website"> <meta property="og:title" content="SciencePond | Rafael Oliveira's CV and Blog | Projects"> <meta property="og:url" content="https://rafael-silva-oliveira.github.io/projects/"> <meta property="og:description" content="This section is dedicated to (mostly) description and explanation of projects I have been involved in. This section will not have a focus on coding, but rather explanation of the methodology and the results (What, Why and How). For coding and tutorials, check out the blog posts and my GitHub repositories!"> <meta property="og:image" content="/assets/img/logo.png"> <meta property="og:locale" content="en"> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content="Projects"> <meta name="twitter:description" content="This section is dedicated to (mostly) description and explanation of projects I have been involved in. This section will not have a focus on coding, but rather explanation of the methodology and the results (What, Why and How). For coding and tutorials, check out the blog posts and my GitHub repositories!"> <meta name="twitter:image" content="/assets/img/logo.png">
1<script type="application/ld+json"> 2 { 3 "author": 4 { 5 "@type": "Person", 6 "name": "Rafael Oliveira" 7 }, 8 "url": "https://rafael-silva-oliveira.github.io/projects/", 9 "@type": "WebSite", 10 "description": "This section is dedicated to (mostly) description and explanation of projects I have been involved in. This section will not have a focus on coding, but rather explanation of the methodology and the results (What, Why and How). For coding and tutorials, check out the blog posts and my GitHub repositories!", 11 "headline": "Projects", 12 13 "sameAs": [null,"https://github.com/Rafael-Silva-Oliveira","https://www.linkedin.com/in/rafael-slo","https://www.researchgate.net/profile/Rafael-Oliveira-179/","https://youtube.com/@SciencePond","https://www.zotero.org/rafaelsilvaoliveira",null], 14 15 "name": "Rafael Oliveira", 16 "@context": "https://schema.org" 17 } 18 </script>
18 <link rel="stylesheet" href="/assets/css/bootstrap.min.css?a4b3f509e79c54a512b890d73235ef04"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/mdb.min.css" integrity="sha256-jpjYvU3G3N6nrrBwXJoVEYI/0zw8htfFnhT9ljN3JJw=" crossorigin="anonymous"> <link defer rel="stylesheet" href="/assets/css/academicons.min.css?f0b7046b84e425c55f3463ac249818f5"> <link defer rel="stylesheet" href="/assets/css/scholar-icons.css?62b2ac103a88034e6882a5be5f3e2772"> <link defer rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:100,300,400,500,700|Material+Icons&display=swap"> <link defer rel="stylesheet" href="/assets/css/jekyll-pygments-themes-github.css?591dab5a4e56573bf4ef7fd332894c99" media="" id="highlight_theme_light"> <link rel="shortcut icon" href="/assets/img/logo.png?8a737fbc998f9c9728d55eb4252e9dcc"> <link rel="stylesheet" href="/assets/css/main.css?d41d8cd98f00b204e9800998ecf8427e"> <link rel="canonical" href="https://rafael-silva-oliveira.github.io/projects/">
18<script src="/assets/js/theme.js?a81d82887dd692e91686b43de4542f18"></script>
18 <link defer rel="stylesheet" href="/assets/css/jekyll-pygments-themes-native.css?5847e5ed4a4568527aa6cfab446049ca" media="none" id="highlight_theme_dark">
18<script> 19 initTheme(); 20 </script>
20 </head> <body class="fixed-top-nav "> <header> <nav id="navbar" class="navbar navbar-light navbar-expand-sm fixed-top" role="navigation"> <div class="container"> <button class="navbar-toggler collapsed ml-auto" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar top-bar"></span> <span class="icon-bar middle-bar"></span> <span class="icon-bar bottom-bar"></span> </button> <div class="collapse navbar-collapse text-right" id="navbarNav"> <ul class="navbar-nav ml-auto flex-nowrap"> <li class="nav-item "> <a class="nav-link" href="/">About </a> </li> <li class="nav-item "> <a class="nav-link" href="/blog/">Blog </a> </li> <li class="nav-item "> <a class="nav-link" href="/publications/">Publications </a> </li> <li class="nav-item active"> <a class="nav-link" href="/projects/">Projects <span class="sr-only">(current)</span> </a> </li> <li class="nav-item "> <a class="nav-link" href="/repositories/">Repositories </a> </li> <li class="nav-item "> <a class="nav-link" href="/cv/">CV </a> </li> <li class="nav-item"> <button id="search-toggle" title="Search" onclick="openSearchModal()"> <span class="nav-link">ctrl k <i class="ti ti-search"></i></span> </button> </li> <li class="toggle-container"> <button id="light-toggle" title="Change theme"> <i class="ti ti-sun-moon" id="light-toggle-system"></i> <i class="ti ti-moon-filled" id="light-toggle-dark"></i> <i class="ti ti-sun-filled" id="light-toggle-light"></i> </button> </li> </ul> </div> </div> </nav> <progress id="progress" value="0"> <div class="progress-container"> <span class="progress-bar"></span> </div> </progress> </header> <div class="container mt-5" role="main"> <div class="post"> <header class="post-header"> <h1 class="post-title">Projects</h1> <p class="post-description">This section is dedicated to (mostly) description and explanation of projects I have been involved in. This section will not have a focus on coding, but rather explanation of the methodology and the results (What, Why and How). For coding and tutorials, check out the blog posts and my GitHub repositories!</p> </header> <article> <div class="projects"> <a id="work" href=".#work"> <h2 class="category">work</h2> </a> <div class="row row-cols-1 row-cols-md-3"> </div> <a id="fun" href=".#fun"> <h2 class="category">fun</h2> </a> <div class="row row-cols-1 row-cols-md-3"> <div class="col"> <a href="/projects/paperzorro/"> <div class="card h-100 hoverable"> <figure> <picture> <source class="responsive-img-srcset" srcset="/assets/img/paperzorro/banner-480.webp 480w,/assets/img/paperzorro/banner-800.webp 800w,/assets/img/paperzorro/banner-1400.webp 1400w," type="image/webp" sizes="250px"></source> <img src="/assets/img/paperzorro/banner.png" class="card-img-top" width="100%" height="auto" alt="project thumbnail" loading="eager" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"> </picture> </figure> <div class="card-body"> <h2 class="card-title">PaperZorro</h2> <p class="card-text">An AI-powered literature scout for Zotero. Build precise boolean searches across PubMed, arXiv and bioRxiv/medRxiv, let a language model filter the noise, and import only the papers that matter â straight into your library.</p> <div class="row ml-1 mr-1 p-0"> <div class="github-icon"> <div class="icon" data-toggle="tooltip" title="Code Repository"> <a href="https://github.com/Rafael-Silva-Oliveira/paperzorro" rel="external nofollow noopener" target="_blank"><i class="fa-brands fa-github gh-icon"></i></a> </div> </div> </div> </div> </div> </a> </div> <div class="col"> <a href="/projects/nzbridge/"> <div class="card h-100 hoverable"> <figure> <picture> <source class="responsive-img-srcset" srcset="/assets/img/nzbridge/social-preview-480.webp 480w,/assets/img/nzbridge/social-preview-800.webp 800w,/assets/img/nzbridge/social-preview-1400.webp 1400w," type="image/webp" sizes="250px"></source> <img src="/assets/img/nzbridge/social-preview.png" class="card-img-top" width="100%" height="auto" alt="project thumbnail" loading="eager" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"> </picture> </figure> <div class="card-body"> <h2 class="card-title">NZBridge</h2> <p class="card-text">A browser extension and Zotero plugin for bidirectional sync between Zotero and Google NotebookLM. Push your research library into NotebookLM for AI-powered analysis, then pull generated notes back into Zotero.</p> <div class="row ml-1 mr-1 p-0"> <div class="github-icon"> <div class="icon" data-toggle="tooltip" title="Code Repository"> <a href="https://github.com/Rafael-Silva-Oliveira/NZBridge" rel="external nofollow noopener" target="_blank"><i class="fa-brands fa-github gh-icon"></i></a> </div> </div> </div> </div> </div> </a> </div> <div class="col"> <a href="/projects/numify/"> <div class="card h-100 hoverable"> <figure> <picture> <source class="responsive-img-srcset" srcset="/assets/img/numify/promo-480.webp 480w,/assets/img/numify/promo-800.webp 800w,/assets/img/numify/promo-1400.webp 1400w," type="image/webp" sizes="250px"></source> <img src="/assets/img/numify/promo.png" class="card-img-top" width="100%" height="auto" alt="project thumbnail" loading="eager" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"> </picture> </figure> <div class="card-body"> <h2 class="card-title">Numify</h2> <p class="card-text">A Zotero plugin that automatically adds hierarchical numeric prefixes to your collection names. Create, rename, delete, or reorder
20collections â the numbering stays in sync.</p> <div class="row ml-1 mr-1 p-0"> <div class="github-icon"> <div class="icon" data-toggle="tooltip" title="Code Repository"> <a href="https://github.com/Rafael-Silva-Oliveira/numify" rel="external nofollow noopener" target="_blank"><i class="fa-brands fa-github gh-icon"></i></a> </div> </div> </div> </div> </div> </a> </div> </div> </div> </article> </div> </div> <footer class="fixed-bottom" role="contentinfo"> <div class="container mt-0"> © Copyright 2026 Rafael Oliveira. Powered by <a href="https://jekyllrb.com/" target="_blank" rel="external nofollow noopener">Jekyll</a> with <a href="https://github.com/alshedivat/al-folio" rel="external nofollow noopener" target="_blank">al-folio</a> theme. Hosted by <a href="https://pages.github.com/" target="_blank" rel="external nofollow noopener">GitHub Pages</a>. </div> </footer>
20<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
20
20<script src="/assets/js/bootstrap.bundle.min.js"></script>
20
20<script src="https://cdn.jsdelivr.net/npm/[email protected]/js/mdb.min.js" integrity="sha256-NdbiivsvWt7VYCt6hYNT3h/th9vSTL4EDWeGs5SN3DA=" crossorigin="anonymous"></script>
20
20<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/masonry.pkgd.min.js" integrity="sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" crossorigin="anonymous"></script>
20
20<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/imagesloaded.pkgd.min.js" integrity="sha256-htrLFfZJ6v5udOG+3kNLINIKh2gvoKqwEhHYfTTMICc=" crossorigin="anonymous"></script>
20
20<script defer src="/assets/js/masonry.js?a0db7e5d5c70cc3252b3138b0c91dcaf" type="text/javascript"></script>
20
20<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/medium-zoom.min.js" integrity="sha256-ZgMyDAIYDYGxbcpJcfUnYwNevG/xi9OHKaR/8GK+jWc=" crossorigin="anonymous"></script>
20
20<script defer src="/assets/js/zoom.js?85ddb88934d28b74e78031fd54cf8308"></script>
20
20<script src="/assets/js/no_defer.js?2781658a0a2b13ed609542042a859126"></script>
20
20<script defer src="/assets/js/common.js?c15de51d4bb57887caa2c21988d97279"></script>
20
20<script defer src="/assets/js/copy_code.js?c8a01c11a92744d44b093fc3bda915df" type="text/javascript"></script>
20
20<script defer src="/assets/js/jupyter_new_tab.js?d9f17b6adc2311cbabd747f4538bb15f"></script>
20
20<script async src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>
20
20<script async src="https://badge.dimensions.ai/badge.js"></script>
20
20<script defer type="text/javascript" id="MathJax-script" src="https://cdn.jsdelivr.net/npm/[email protected]/es5/tex-mml-chtml.js" integrity="sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI=" crossorigin="anonymous"></script>
20
20<script src="/assets/js/mathjax-setup.js?a5bb4e6a542c546dd929b24b8b236dfd"></script>
20
20<script defer src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6" crossorigin="anonymous"></script>
20
20<script async src="https://www.googletagmanager.com/gtag/js?id="></script>
20
20<script defer src="/assets/js/google-analytics-setup.js"></script>
20
20<script defer src="/assets/js/progress-bar.js?2f30e0e6801ea8f5036fa66e1ab0a71a" type="text/javascript"></script>
20
20<script src="/assets/js/vanilla-back-to-top.min.js?f40d453793ff4f64e238e420181a1d17"></script>
20
20<script> 21 addBackToTop(); 22 </script>
22
22<script type="module" src="/assets/js/search/ninja-keys.min.js?a3446f084dcaecc5f75aa1757d087dcf"></script>
22 <ninja-keys hidebreadcrumbs noautoloadmdicons placeholder="Type to start searching"></ninja-keys>
22<script src="/assets/js/search-setup.js?6c304f7b1992d4b60f7a07956e52f04a"></script>
22
22<script src="/assets/js/search-data.js"></script>
22
22<script src="/assets/js/shortcut-key.js?6f508d74becd347268a7f822bca7309d"></script>
22 </body> </html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.