Files
threetwo-docs/docs/architecture/index.html

17 lines
11 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-architecture">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.2.0">
<title data-rh="true">Technical Architecture | ThreeTwo!</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://rishighan.github.io/threetwo-docs/docs/architecture"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Technical Architecture | ThreeTwo!"><meta data-rh="true" name="description" content="High-level Architecture"><meta data-rh="true" property="og:description" content="High-level Architecture"><link data-rh="true" rel="icon" href="/threetwo-docs/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://rishighan.github.io/threetwo-docs/docs/architecture"><link data-rh="true" rel="alternate" href="https://rishighan.github.io/threetwo-docs/docs/architecture" hreflang="en"><link data-rh="true" rel="alternate" href="https://rishighan.github.io/threetwo-docs/docs/architecture" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/threetwo-docs/blog/rss.xml" title="ThreeTwo! RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/threetwo-docs/blog/atom.xml" title="ThreeTwo! Atom Feed"><link rel="stylesheet" href="/threetwo-docs/assets/css/styles.e3d40972.css">
<link rel="preload" href="/threetwo-docs/assets/js/runtime~main.e5e6932c.js" as="script">
<link rel="preload" href="/threetwo-docs/assets/js/main.77f40a88.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/threetwo-docs/"><div class="navbar__logo"><img src="/threetwo-docs/img/threetwo.png" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/threetwo-docs/img/threetwo.png" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">ThreeTwo!</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/threetwo-docs/docs/intro">Quick Start</a><a class="navbar__item navbar__link" href="/threetwo-docs/blog">Blog</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/rishighan/threetwo" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="searchBox_ZlJk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebar_njMd"><nav class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/threetwo-docs/docs/intro">Introduction</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/threetwo-docs/docs/unRAID_dockercompose">Install ThreeTwo! on unRAID with the docker-compose plugin</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/threetwo-docs/docs/unraid_install">Install ThreeTwo! on unRaid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/threetwo-docs/docs/resources">Resources &amp; Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/threetwo-docs/docs/architecture">Technical Architecture</a></li></ul></nav></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/threetwo-docs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_OVgt"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Technical Architecture</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Technical Architecture</h1></header><h3 class="anchor anchorWithStickyNavbar_LWe7" id="high-level-architecture">High-level Architecture<a class="hash-link" href="#high-level-architecture" title="Direct link to heading"></a></h3><p><code>ThreeTwo!</code>, the app is built upon the microservice architecture. The UI is a standalone <code>node.js</code> app and the rest of the logic is broken into microservices.</p><p>The microservices deal with: </p><ol><li>Library functions (model orchestration, CRUD ops on comics, metadata)</li><li>Comic Vine (scraping issues, volumes and more)</li><li>Grand Comics Database (scraping, aggregations and more)</li><li>Helpers (image transformation, file-system ops, compression/uncompression)</li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="technical-stack">Technical stack<a class="hash-link" href="#technical-stack" title="Direct link to heading"></a></h3><p><code>ThreeTwo!</code> is written in <code>TypeScript</code> from UI to the services layer.</p><p>The technologies used are: </p><ol><li>React</li><li>Redux</li><li>moleculer</li><li>RabbitMQ</li><li>socket.io</li><li>node.js</li><li>Express</li><li>MongoDB</li><li>mongoose</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/facebook/docusaurus/edit/main/website/docs/architecture.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/threetwo-docs/docs/resources"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Resources &amp; Help</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#high-level-architecture" class="table-of-contents__link toc-highlight">High-level Architecture</a></li><li><a href="#technical-stack" class="table-of-contents__link toc-highlight">Technical stack</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/threetwo-docs/docs/intro">Tutorial</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/rishighan/threetwo" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/n4HZ4j33uT" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/threetwo-docs/blog">Blog</a></li><li class="footer__item"><a href="https://rishighan.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Rishi Ghan<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Quasar Software, LLC. Built with Docusaurus.</div></div></div></footer></div>
<script src="/threetwo-docs/assets/js/runtime~main.e5e6932c.js"></script>
<script src="/threetwo-docs/assets/js/main.77f40a88.js"></script>
</body>
</html>