Preliminarily finished the presentation

This commit is contained in:
Daniel Quinn 2016-03-11 00:20:55 +00:00
parent ac0899e1bc
commit f764f5cb7b
31 changed files with 310 additions and 1 deletions

2
.gitignore vendored
View File

@ -14,7 +14,7 @@ dist/
downloads/
eggs/
.eggs/
lib/
#lib/
lib64/
parts/
sdist/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 731 B

16
presentation/img/repo.svg Normal file
View File

@ -0,0 +1,16 @@
<?xml version="1.0" standalone="yes"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" width="310" height="310">
<path style="fill:#000000; stroke:none;" d="M0 0L0 310L310 310L310 0L0 0z"/>
<path style="fill:#fffffe; stroke:none;" d="M10 10L10 80L80 80L80 10L10 10M90 10L90 20L100 20L100 30L110 30L110 40L120 40L120 20L140 20L140 30L130 30L130 50L120 50L120 60L110 60L110 50L100 50L100 60L110 60L110 90L100 90L100 70L90 70L90 90L100 90L100 110L110 110L110 120L100 120L100 140L90 140L90 150L110 150L110 130L120 130L120 140L140 140L140 150L120 150L120 170L130 170L130 160L140 160L140 150L150 150L150 140L140 140L140 120L150 120L150 130L160 130L160 160L170 160L170 170L150 170L150 180L120 180L120 190L110 190L110 170L100 170L100 190L90 190L90 210L70 210L70 220L90 220L90 230L100 230L100 250L90 250L90 270L100 270L100 260L110 260L110 280L90 280L90 300L100 300L100 290L110 290L110 280L120 280L120 220L110 220L110 230L100 230L100 190L110 190L110 200L130 200L130 220L150 220L150 250L140 250L140 260L130 260L130 270L140 270L140 260L160 260L160 270L150 270L150 280L130 280L130 290L120 290L120 300L140 300L140 290L170 290L170 280L190 280L190 290L200 290L200 300L220 300L220 290L200 290L200 280L190 280L190 270L200 270L200 260L220 260L220 270L210 270L210 280L230 280L230 300L240 300L240 290L250 290L250 300L260 300L260 290L280 290L280 280L290 280L290 290L300 290L300 260L290 260L290 250L300 250L300 240L290 240L290 250L280 250L280 260L290 260L290 270L270 270L270 280L260 280L260 270L240 270L240 280L230 280L230 260L270 260L270 250L260 250L260 240L270 240L270 220L290 220L290 210L280 210L280 200L270 200L270 190L290 190L290 200L300 200L300 190L290 190L290 180L270 180L270 170L280 170L280 150L290 150L290 170L300 170L300 120L290 120L290 140L250 140L250 120L260 120L260 130L270 130L270 120L280 120L280 110L290 110L290 100L300 100L300 90L290 90L290 100L270 100L270 120L260 120L260 100L240 100L240 90L230 90L230 100L220 100L220 110L210 110L210 90L220 90L220 60L210 60L210 50L220 50L220 20L200 20L200 10L190 10L190 30L210 30L210 40L200 40L200 50L190 50L190 40L180 40L180 30L170 30L170 40L180 40L180 50L170 50L170 60L180 60L180 70L170 70L170 90L150 90L150 80L160 80L160 50L150 50L150 20L160 20L160 10L150 10L150 20L140 20L140 10L120 10L120 20L100 20L100 10L90 10M230 10L230 80L300 80L300 10L230 10z"/>
<path style="fill:#000000; stroke:none;" d="M20 20L20 70L70 70L70 20L20 20M240 20L240 70L290 70L290 20L240 20z"/>
<path style="fill:#fffffe; stroke:none;" d="M30 30L30 60L60 60L60 30L30 30M250 30L250 60L280 60L280 30L250 30z"/>
<path style="fill:#000000; stroke:none;" d="M130 50L130 60L120 60L120 80L130 80L130 100L110 100L110 110L130 110L130 120L140 120L140 110L160 110L160 100L150 100L150 90L140 90L140 80L150 80L150 50L130 50z"/>
<path style="fill:#fffffe; stroke:none;" d="M130 60L130 80L140 80L140 60L130 60z"/>
<path style="fill:#000000; stroke:none;" d="M190 60L190 70L180 70L180 90L190 90L190 100L200 100L200 80L210 80L210 60L190 60z"/>
<path style="fill:#fffffe; stroke:none;" d="M190 70L190 80L200 80L200 70L190 70M10 90L10 100L30 100L30 110L40 110L40 120L20 120L20 110L10 110L10 130L40 130L40 140L10 140L10 150L30 150L30 160L40 160L40 140L50 140L50 150L60 150L60 170L70 170L70 180L50 180L50 170L40 170L40 180L10 180L10 220L50 220L50 210L60 210L60 200L80 200L80 190L70 190L70 180L80 180L80 170L70 170L70 160L80 160L80 150L60 150L60 140L50 140L50 130L70 130L70 140L80 140L80 130L70 130L70 120L90 120L90 100L80 100L80 90L70 90L70 100L80 100L80 110L70 110L70 120L50 120L50 110L60 110L60 90L40 90L40 100L30 100L30 90L10 90M130 100L130 110L140 110L140 100L130 100z"/>
<path style="fill:#000000; stroke:none;" d="M170 100L170 120L160 120L160 130L170 130L170 140L180 140L180 150L170 150L170 160L180 160L180 170L170 170L170 190L180 190L180 180L190 180L190 200L160 200L160 180L150 180L150 190L130 190L130 200L140 200L140 210L150 210L150 200L160 200L160 210L170 210L170 230L180 230L180 210L190 210L190 220L200 220L200 230L210 230L210 210L230 210L230 200L240 200L240 210L260 210L260 200L250 200L250 180L260 180L260 190L270 190L270 180L260 180L260 170L270 170L270 150L260 150L260 170L240 170L240 160L250 160L250 150L240 150L240 160L210 160L210 170L230 170L230 180L210 180L210 210L200 210L200 160L190 160L190 150L230 150L230 130L220 130L220 140L200 140L200 130L210 130L210 110L190 110L190 120L200 120L200 130L170 130L170 120L180 120L180 100L170 100M230 100L230 110L220 110L220 120L240 120L240 100L230 100M40 120L40 130L50 130L50 120L40 120M30 190L30 210L50 210L50 200L60 200L60 190L50 190L50 200L40 200L40 190L30 190M220 220L220 250L250 250L250 220L220 220z"/>
<path style="fill:#fffffe; stroke:none;" d="M10 230L10 300L80 300L80 230L10 230M130 230L130 240L140 240L140 230L130 230M230 230L230 240L240 240L240 230L230 230z"/>
<path style="fill:#000000; stroke:none;" d="M20 240L20 290L70 290L70 240L20 240M170 240L170 250L160 250L160 260L170 260L170 270L180 270L180 260L200 260L200 240L190 240L190 250L180 250L180 240L170 240z"/>
<path style="fill:#fffffe; stroke:none;" d="M30 250L30 280L60 280L60 250L30 250M170 250L170 260L180 260L180 250L170 250z"/>
<path style="fill:#000000; stroke:none;" d="M250 280L250 290L260 290L260 280L250 280z"/>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -96,6 +96,69 @@
<section>
<h2>It's 2016</h2>
<p>We shouldn't even need to use this stuff anymore</p>
<p>So I made Paperless</p>
</section>
<section>
<h2>What's it Do?</h2>
<ul>
<li>Consumes documents from a directory, API, or mailbox</li>
<li>OCRs them and puts the text in a database</li>
<li>Automatically tags the db record based on user-rules</li>
<li>Encrypts and stores the original</li>
<li>Generates, encrypts, and stores a thumbnail</li>
</ul>
</section>
<section>
<h2>It's Just a Wrapper</h2>
<ul>
<li>ImageMagick</li>
<li>Tesseract</li>
<li>GnuPG</li>
<li>Python3/Django</li>
</ul>
</section>
<section>
<h2>How's it Work?</h2>
<section>
<h3>There's two processes</h3>
</section>
<section>
<h3>1: The Consumer</h3>
<p style="padding: 1em;">(Imports documents)</p>
<ul>
<li>Runs in a loop</li>
<li>Reads from a directory</li>
<li>Occasionally checking a mailbox</li>
</ul>
</section>
<section>
<h3>2: The Webserver</h3>
<p style="padding: 1em;">(Lets you find stuff)</p>
<ul>
<li>Currently the Django Admin (I know)</li>
<li>Provides a DRF API</li>
<li>Users are building proper UIs</li>
</ul>
</section>
</section>
<section>
<h2>Demo!</h2>
<p>Time to sacrifice a kitten</p>
</section>
<section>
<h2>Fork Me</h2>
<p>
<i class="fa fa-github"></i> &nbsp;
<a class="nocolour" href="https://github.com/danielquinn/paperless">https://github.com/danielquinn/paperless</a>
</p>
<p style="text-align: center;">
<img src="img/qr/repo.svg" style="width: 300px;" />
</p>
</section>
</div>

View File

@ -0,0 +1,117 @@
/*
Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
based on dark.css by Ivan Sagalaev
*/
.hljs {
display: block; padding: 0.5em;
background: #3F3F3F;
color: #DCDCDC;
}
.hljs-keyword,
.hljs-tag,
.css .hljs-class,
.css .hljs-id,
.lisp .hljs-title,
.nginx .hljs-title,
.hljs-request,
.hljs-status,
.clojure .hljs-attribute {
color: #E3CEAB;
}
.django .hljs-template_tag,
.django .hljs-variable,
.django .hljs-filter .hljs-argument {
color: #DCDCDC;
}
.hljs-number,
.hljs-date {
color: #8CD0D3;
}
.dos .hljs-envvar,
.dos .hljs-stream,
.hljs-variable,
.apache .hljs-sqbracket {
color: #EFDCBC;
}
.dos .hljs-flow,
.diff .hljs-change,
.python .exception,
.python .hljs-built_in,
.hljs-literal,
.tex .hljs-special {
color: #EFEFAF;
}
.diff .hljs-chunk,
.hljs-subst {
color: #8F8F8F;
}
.dos .hljs-keyword,
.python .hljs-decorator,
.hljs-title,
.haskell .hljs-type,
.diff .hljs-header,
.ruby .hljs-class .hljs-parent,
.apache .hljs-tag,
.nginx .hljs-built_in,
.tex .hljs-command,
.hljs-prompt {
color: #efef8f;
}
.dos .hljs-winutils,
.ruby .hljs-symbol,
.ruby .hljs-symbol .hljs-string,
.ruby .hljs-string {
color: #DCA3A3;
}
.diff .hljs-deletion,
.hljs-string,
.hljs-tag .hljs-value,
.hljs-preprocessor,
.hljs-pragma,
.hljs-built_in,
.sql .hljs-aggregate,
.hljs-javadoc,
.smalltalk .hljs-class,
.smalltalk .hljs-localvars,
.smalltalk .hljs-array,
.css .hljs-rules .hljs-value,
.hljs-attr_selector,
.hljs-pseudo,
.apache .hljs-cbracket,
.tex .hljs-formula,
.coffeescript .hljs-attribute {
color: #CC9393;
}
.hljs-shebang,
.diff .hljs-addition,
.hljs-comment,
.java .hljs-annotation,
.hljs-template_comment,
.hljs-pi,
.hljs-doctype {
color: #7F9F7F;
}
.coffeescript .javascript,
.javascript .xml,
.tex .hljs-formula,
.xml .javascript,
.xml .vbscript,
.xml .css,
.xml .hljs-cdata {
opacity: 0.5;
}

View File

@ -0,0 +1,2 @@
SIL Open Font License (OFL)
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL

View File

@ -0,0 +1,10 @@
@font-face {
font-family: 'League Gothic';
src: url('league-gothic.eot');
src: url('league-gothic.eot?#iefix') format('embedded-opentype'),
url('league-gothic.woff') format('woff'),
url('league-gothic.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,45 @@
SIL Open Font License
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name Source. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
—————————————————————————————-
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
—————————————————————————————-
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
DEFINITIONS
“Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
“Reserved Font Name” refers to any names specified as such after the copyright statement(s).
“Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s).
“Modified Version” refers to any derivative made by adding to, deleting, or substituting—in part or in whole—any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
“Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@ -0,0 +1,39 @@
@font-face {
font-family: 'Source Sans Pro';
src: url('source-sans-pro-regular.eot');
src: url('source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
url('source-sans-pro-regular.woff') format('woff'),
url('source-sans-pro-regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('source-sans-pro-italic.eot');
src: url('source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
url('source-sans-pro-italic.woff') format('woff'),
url('source-sans-pro-italic.ttf') format('truetype');
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('source-sans-pro-semibold.eot');
src: url('source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
url('source-sans-pro-semibold.woff') format('woff'),
url('source-sans-pro-semibold.ttf') format('truetype');
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('source-sans-pro-semibolditalic.eot');
src: url('source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
url('source-sans-pro-semibolditalic.woff') format('woff'),
url('source-sans-pro-semibolditalic.ttf') format('truetype');
font-weight: 600;
font-style: italic;
}

View File

@ -0,0 +1,2 @@
/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.className),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.className=this.toString()}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(o){o+="";if(g(this,o)===-1){this.push(o);this._updateClassName()}};e.remove=function(p){p+="";var o=g(this,p);if(o!==-1){this.splice(o,1);this._updateClassName()}};e.toggle=function(o){o+="";if(g(this,o)===-1){this.add(o)}else{this.remove(o)}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};

8
presentation/lib/js/head.min.js vendored Normal file
View File

@ -0,0 +1,8 @@
/**
Head JS The only script in your <HEAD>
Copyright Tero Piirainen (tipiirai)
License MIT / http://bit.ly/mit-license
Version 0.96
http://headjs.com
*/(function(a){function z(){d||(d=!0,s(e,function(a){p(a)}))}function y(c,d){var e=a.createElement("script");e.type="text/"+(c.type||"javascript"),e.src=c.src||c,e.async=!1,e.onreadystatechange=e.onload=function(){var a=e.readyState;!d.done&&(!a||/loaded|complete/.test(a))&&(d.done=!0,d())},(a.body||b).appendChild(e)}function x(a,b){if(a.state==o)return b&&b();if(a.state==n)return k.ready(a.name,b);if(a.state==m)return a.onpreload.push(function(){x(a,b)});a.state=n,y(a.url,function(){a.state=o,b&&b(),s(g[a.name],function(a){p(a)}),u()&&d&&s(g.ALL,function(a){p(a)})})}function w(a,b){a.state===undefined&&(a.state=m,a.onpreload=[],y({src:a.url,type:"cache"},function(){v(a)}))}function v(a){a.state=l,s(a.onpreload,function(a){a.call()})}function u(a){a=a||h;var b;for(var c in a){if(a.hasOwnProperty(c)&&a[c].state!=o)return!1;b=!0}return b}function t(a){return Object.prototype.toString.call(a)=="[object Function]"}function s(a,b){if(!!a){typeof a=="object"&&(a=[].slice.call(a));for(var c=0;c<a.length;c++)b.call(a,a[c],c)}}function r(a){var b;if(typeof a=="object")for(var c in a)a[c]&&(b={name:c,url:a[c]});else b={name:q(a),url:a};var d=h[b.name];if(d&&d.url===b.url)return d;h[b.name]=b;return b}function q(a){var b=a.split("/"),c=b[b.length-1],d=c.indexOf("?");return d!=-1?c.substring(0,d):c}function p(a){a._done||(a(),a._done=1)}var b=a.documentElement,c,d,e=[],f=[],g={},h={},i=a.createElement("script").async===!0||"MozAppearance"in a.documentElement.style||window.opera,j=window.head_conf&&head_conf.head||"head",k=window[j]=window[j]||function(){k.ready.apply(null,arguments)},l=1,m=2,n=3,o=4;i?k.js=function(){var a=arguments,b=a[a.length-1],c={};t(b)||(b=null),s(a,function(d,e){d!=b&&(d=r(d),c[d.name]=d,x(d,b&&e==a.length-2?function(){u(c)&&p(b)}:null))});return k}:k.js=function(){var a=arguments,b=[].slice.call(a,1),d=b[0];if(!c){f.push(function(){k.js.apply(null,a)});return k}d?(s(b,function(a){t(a)||w(r(a))}),x(r(a[0]),t(d)?d:function(){k.js.apply(null,b)})):x(r(a[0]));return k},k.ready=function(b,c){if(b==a){d?p(c):e.push(c);return k}t(b)&&(c=b,b="ALL");if(typeof b!="string"||!t(c))return k;var f=h[b];if(f&&f.state==o||b=="ALL"&&u()&&d){p(c);return k}var i=g[b];i?i.push(c):i=g[b]=[c];return k},k.ready(a,function(){u()&&s(g.ALL,function(a){p(a)}),k.feature&&k.feature("domloaded",!0)});if(window.addEventListener)a.addEventListener("DOMContentLoaded",z,!1),window.addEventListener("load",z,!1);else if(window.attachEvent){a.attachEvent("onreadystatechange",function(){a.readyState==="complete"&&z()});var A=1;try{A=window.frameElement}catch(B){}!A&&b.doScroll&&function(){try{b.doScroll("left"),z()}catch(a){setTimeout(arguments.callee,1);return}}(),window.attachEvent("onload",z)}!a.readyState&&a.addEventListener&&(a.readyState="loading",a.addEventListener("DOMContentLoaded",handler=function(){a.removeEventListener("DOMContentLoaded",handler,!1),a.readyState="complete"},!1)),setTimeout(function(){c=!0,s(f,function(a){a()})},300)})(document)

7
presentation/lib/js/html5shiv.js vendored Normal file
View File

@ -0,0 +1,7 @@
document.createElement('header');
document.createElement('nav');
document.createElement('section');
document.createElement('article');
document.createElement('aside');
document.createElement('footer');
document.createElement('hgroup');