2019-07-26 23:53:02 +02:00
<!DOCTYPE html>
< html lang = "en-US" >
< head >
< meta charset = "UTF-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=Edge" >
< title > Project Structure - Gancio< / title >
< link rel = "shortcut icon" href = "https://gancio.org/favicon.ico" type = "image/x-icon" >
< link rel = "stylesheet" href = "https://gancio.org/assets/css/just-the-docs.css" >
< script type = "text/javascript" src = "https://gancio.org/assets/js/vendor/lunr.min.js" > < / script >
< script type = "text/javascript" src = "https://gancio.org/assets/js/just-the-docs.js" > < / script >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
2019-07-29 22:40:27 +02:00
< script src = "//code.jquery.com/jquery-3.3.1.min.js" > < / script >
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" / >
< script src = "https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js" > < / script >
2019-07-26 23:53:02 +02:00
< / head >
< body >
< div class = "page-wrap" >
< div class = "side-bar" >
< a href = "https://gancio.org/" class = "site-title fs-6 lh-tight" > Gancio< / a >
< span class = "fs-3" > < button class = "js-main-nav-trigger navigation-list-toggle btn btn-outline" type = "button" data-text-toggle = "Hide" > Menu< / button > < / span >
< div class = "navigation main-nav js-main-nav" >
< nav role = "navigation" aria-label = "Main navigation" >
< ul class = "navigation-list" >
< li class = "navigation-list-item active" >
< a href = "https://gancio.org/404.html" class = "navigation-list-link" > < / a >
< / li >
< li class = "navigation-list-item" >
< a href = "https://gancio.org/" class = "navigation-list-link" > Home< / a >
< / li >
< li class = "navigation-list-item" >
2019-07-27 13:04:06 +02:00
< a href = "https://gancio.org/install" class = "navigation-list-link" > Install< / a >
2019-07-26 23:53:02 +02:00
< ul class = "navigation-list-child-list " >
< li class = "navigation-list-item " >
2019-07-27 13:04:06 +02:00
< a href = "https://gancio.org/install/classic" class = "navigation-list-link" > Classic< / a >
2019-07-26 23:53:02 +02:00
< / li >
< li class = "navigation-list-item " >
2019-07-27 13:04:06 +02:00
< a href = "https://gancio.org/install/docker" class = "navigation-list-link" > Docker< / a >
2019-07-26 23:53:02 +02:00
< / li >
< li class = "navigation-list-item " >
2019-07-27 13:04:06 +02:00
< a href = "https://gancio.org/install/nginx" class = "navigation-list-link" > Nginx< / a >
2019-07-26 23:53:02 +02:00
< / li >
< / ul >
< / li >
< li class = "navigation-list-item" >
< a href = "https://gancio.org/config" class = "navigation-list-link" > Configuration< / a >
< / li >
< li class = "navigation-list-item" >
< a href = "https://gancio.org/usage" class = "navigation-list-link" > Usage< / a >
< / li >
< li class = "navigation-list-item" >
< a href = "https://gancio.org/admin" class = "navigation-list-link" > Admin< / a >
< / li >
< li class = "navigation-list-item active" >
< a href = "https://gancio.org/dev" class = "navigation-list-link" > Hacking< / a >
2019-07-27 01:26:05 +02:00
< ul class = "navigation-list-child-list " >
< li class = "navigation-list-item " >
< a href = "https://gancio.org/dev/migration" class = "navigation-list-link" > Migration< / a >
< / li >
< li class = "navigation-list-item active" >
< a href = "https://gancio.org/dev/structure" class = "navigation-list-link active" > Project Structure< / a >
< / li >
< / ul >
2019-07-26 23:53:02 +02:00
< / li >
< li class = "navigation-list-item" >
< a href = "https://gancio.org/contribute" class = "navigation-list-link" > Contribute< / a >
< / li >
< li class = "navigation-list-item" >
< a href = "https://gancio.org/instances" class = "navigation-list-link" > Instances< / a >
< / li >
< / ul >
< / nav >
< / div >
< footer role = "contentinfo" class = "site-footer" >
< p class = "text-small text-grey-dk-000 mb-0" > This site uses < a href = "https://github.com/pmarsceill/just-the-docs" > Just the Docs< / a > , a documentation theme for Jekyll.< / p >
< / footer >
< / div >
< div class = "main-content-wrap js-main-content" tabindex = "0" >
< div class = "page-header" >
< div class = "main-content" >
< div class = "search js-search" >
< div class = "search-input-wrap" >
< input type = "text" class = "js-search-input search-input" tabindex = "0" placeholder = "Search Gancio" aria-label = "Search Gancio" autocomplete = "off" >
< svg width = "14" height = "14" viewBox = "0 0 28 28" xmlns = "http://www.w3.org/2000/svg" class = "search-icon" > < title > Search< / title > < g fill-rule = "nonzero" > < path d = "M17.332 20.735c-5.537 0-10-4.6-10-10.247 0-5.646 4.463-10.247 10-10.247 5.536 0 10 4.601 10 10.247s-4.464 10.247-10 10.247zm0-4c3.3 0 6-2.783 6-6.247 0-3.463-2.7-6.247-6-6.247s-6 2.784-6 6.247c0 3.464 2.7 6.247 6 6.247z" / > < path d = "M11.672 13.791L.192 25.271 3.02 28.1 14.5 16.62z" / > < / g > < / svg >
< / div >
< div class = "js-search-results search-results-wrap" > < / div >
< / div >
< ul class = "list-style-none text-small mt-md-1 mb-md-1 pb-4 pb-md-0 js-aux-nav aux-nav" >
< li class = "d-inline-block my-0" > < a href = "https://git.lattuga.net/cisti/gancio" > Source< / a > < / li >
< / ul >
< / div >
< / div >
< div class = "main-content" >
< nav class = "breadcrumb-nav" >
< ol class = "breadcrumb-nav-list" >
< li class = "breadcrumb-nav-list-item" > < a href = "https://gancio.org/dev" > Hacking< / a > < / li >
< li class = "breadcrumb-nav-list-item" > < span > Project Structure< / span > < / li >
< / ol >
< / nav >
< div id = "main-content" class = "page-content" role = "main" >
< h3 id = "structure" > Structure< / h3 >
< h3 id = "api--backend" > API / backend< / h3 >
< p > Source code inside < code class = "highlighter-rouge" > server/api/< / code > .
< code class = "highlighter-rouge" > index.js< / code > is basically a routing table pointing each PATH with specified
HTTP VERB to a method of a controller.< / p >
< p > jwt is used to authenticate api request.< / p >
< p > Express is based on middleware, passing each request to a chain of methods.< / p >
< p > If you come from a PHP background, note that the main difference with
Node.js is that the server process is always running and able to manage
multiple requests and tasks together (asyncronically) while each php
process is tied to a single request.< / p >
< p > Sequelize is used as ORM. Take a look in < code class = "highlighter-rouge" > /server/api/models< / code > .< / p >
< h3 id = "client--frontend" > Client / frontend< / h3 >
< p > Nuxt.js is used here!< br / >
Nuxt is basically Vue plus SSR (Server Side Rendering).
Client routing in nuxt is automatic (if you don’ t need something special),
just put your page inside < code class = "highlighter-rouge" > pages< / code > and that’ s it!< / p >
< / div >
< / div >
< / div >
< / div >
< / body >
< / html >