2021-03-23 22:46:23 +00:00
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" / >
2021-04-04 19:52:28 +01:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / > < meta name = "generator" content = "Docutils 0.17: http://docutils.sourceforge.net/" / >
2021-03-23 22:46:23 +00:00
< title > Music Tools — Music Tools documentation< / title >
< link rel = "stylesheet" href = "_static/pygments.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/alabaster.css" type = "text/css" / >
< script id = "documentation_options" data-url_root = "./" src = "_static/documentation_options.js" > < / script >
< script src = "_static/jquery.js" > < / script >
< script src = "_static/underscore.js" > < / script >
< script src = "_static/doctools.js" > < / script >
< link rel = "index" title = "Index" href = "genindex.html" / >
< link rel = "search" title = "Search" href = "search.html" / >
2021-06-12 14:00:38 +01:00
< link rel = "next" title = "Flask Backend" href = "src/music.html" / >
2021-03-23 22:46:23 +00:00
< link rel = "stylesheet" href = "_static/custom.css" type = "text/css" / >
< meta name = "viewport" content = "width=device-width, initial-scale=0.9, maximum-scale=0.9" / >
< / head > < body >
< div class = "document" >
< div class = "documentwrapper" >
< div class = "bodywrapper" >
< div class = "body" role = "main" >
2021-04-04 19:52:28 +01:00
< section id = "music-tools" >
2021-03-23 22:46:23 +00:00
< h1 > Music Tools< a class = "headerlink" href = "#music-tools" title = "Permalink to this headline" > ¶< / a > < / h1 >
< div class = "toctree-wrapper compound" >
2021-04-04 19:52:28 +01:00
< p > < span class = "caption-text" > Contents:< / span > < / p >
2021-03-23 22:46:23 +00:00
< ul >
2021-06-12 14:00:38 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "src/music.html" > Py< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/music.api.html" > music.api< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/music.auth.html" > music.auth< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/music.cloud.html" > music.cloud< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/music.db.html" > music.db< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/music.model.html" > music.model< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/music.tasks.html" > music.tasks< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/music.html#module-music" > music Root Module< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "src/MusicTools.html" > Js< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/MusicTools.Playlist.html" > Playlist< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/MusicTools.Tag.html" > Tag< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/MusicTools.Maths.html" > Maths< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/MusicTools.Admin.html" > Admin< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/MusicTools.Settings.html" > Settings< / a > < / li >
< / ul >
< / li >
2021-06-19 13:01:25 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "src/admin.html" > Admin Script< / a > < / li >
2021-06-12 14:00:38 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "src/modules.html" > All Modules< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/music.html" > Flask Backend< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "src/MusicTools.html" > React Frontend< / a > < / li >
< / ul >
< / li >
2021-03-23 22:46:23 +00:00
< / ul >
< / div >
2021-04-04 19:52:28 +01:00
< section id = "id2" >
2021-03-24 10:15:52 +00:00
< h2 > < a class = "reference external" href = "https://music.sarsoo.xyz" > Music Tools< / a > < a class = "headerlink" href = "#id2" title = "Permalink to this headline" > ¶< / a > < / h2 >
< img alt = "https://github.com/sarsoo/music-tools/workflows/test%20and%20deploy/badge.svg" src = "https://github.com/sarsoo/music-tools/workflows/test%20and%20deploy/badge.svg" / > < p > Music Tools is a web app for creating smart Spotify playlists. The app is based on < a class = "reference external" href = "https://github.com/Sarsoo/spotframework" > spotframework< / a > and < a class = "reference external" href = "https://github.com/Sarsoo/pyfmframework" > fmframework< / a > for interfacing with Spotify and Last.fm. The app is currently hosted on Google’ s Cloud Platform.< / p >
2021-06-12 14:00:38 +01:00
< p > The backend is composed of a Flask web server with a Fireo ORM layer and longer tasks dispatched to Cloud Tasks or Functions. The frontend is a React app with material UI components and Axios for HTTP requests.< / p >
2021-03-24 10:15:52 +00:00
< img alt = "_images/Playlists.png" src = "_images/Playlists.png" / >
2021-04-04 19:52:28 +01:00
< / section >
< / section >
< section id = "indices-and-tables" >
2021-03-23 22:46:23 +00:00
< h1 > Indices and tables< a class = "headerlink" href = "#indices-and-tables" title = "Permalink to this headline" > ¶< / a > < / h1 >
< ul class = "simple" >
< li > < p > < a class = "reference internal" href = "genindex.html" > < span class = "std std-ref" > Index< / span > < / a > < / p > < / li >
< li > < p > < a class = "reference internal" href = "py-modindex.html" > < span class = "std std-ref" > Module Index< / span > < / a > < / p > < / li >
< li > < p > < a class = "reference internal" href = "search.html" > < span class = "std std-ref" > Search Page< / span > < / a > < / p > < / li >
< / ul >
2021-04-04 19:52:28 +01:00
< / section >
2021-03-23 22:46:23 +00:00
< / div >
< / div >
< / div >
< div class = "sphinxsidebar" role = "navigation" aria-label = "main navigation" >
< div class = "sphinxsidebarwrapper" >
< h1 class = "logo" > < a href = "#" > Music Tools< / a > < / h1 >
< h3 > Navigation< / h3 >
2021-04-04 19:52:28 +01:00
< p > < span class = "caption-text" > Contents:< / span > < / p >
2021-03-23 22:46:23 +00:00
< ul >
2021-06-12 14:00:38 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "src/music.html" > Py< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "src/MusicTools.html" > Js< / a > < / li >
2021-06-19 13:01:25 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "src/admin.html" > Admin Script< / a > < / li >
2021-06-12 14:00:38 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "src/modules.html" > All Modules< / a > < / li >
2021-03-23 22:46:23 +00:00
< / ul >
< div class = "relations" >
< h3 > Related Topics< / h3 >
< ul >
< li > < a href = "#" > Documentation overview< / a > < ul >
2021-06-12 14:00:38 +01:00
< li > Next: < a href = "src/music.html" title = "next chapter" > Flask Backend< / a > < / li >
2021-03-23 22:46:23 +00:00
< / ul > < / li >
< / ul >
< / div >
< div id = "searchbox" style = "display: none" role = "search" >
< h3 id = "searchlabel" > Quick search< / h3 >
< div class = "searchformwrapper" >
< form class = "search" action = "search.html" method = "get" >
< input type = "text" name = "q" aria-labelledby = "searchlabel" / >
< input type = "submit" value = "Go" / >
< / form >
< / div >
< / div >
< script > $ ( '#searchbox' ) . show ( 0 ) ; < / script >
< / div >
< / div >
< div class = "clearer" > < / div >
< / div >
< div class = "footer" >
© 2021, Sarsoo.
|
Powered by < a href = "http://sphinx-doc.org/" > Sphinx 3.5.3< / a >
& < a href = "https://github.com/bitprophet/alabaster" > Alabaster 0.7.12< / a >
|
< a href = "_sources/index.rst.txt"
rel="nofollow">Page source< / a >
< / div >
< / body >
< / html >