Commit 58ba7a98e028f35c4084c8aef0164a64a7c517d7

Authored by Augusto Herrmann
0 parents
Exists in master

Corre??o: removido o c?digo do arquivo de template HTML e acrescentado o c?digo …

…do Google Analytics em CoffeeScript
LEIAME 0 → 100644
  1 +++ a/LEIAME
... ... @@ -0,0 +1,34 @@
  1 +Projeto Barra Brasil Distribuída - Desenvolvimento
  2 +
  3 +Como instalar
  4 +
  5 +Dependências:
  6 +
  7 + - Flask
  8 + - assetgen
  9 + - node.js
  10 + - coffeescript
  11 + - sass
  12 +
  13 +Requisitos da Barra
  14 +
  15 +1. A Barra deve ser adaptável a um desenho fluído e fixo
  16 +2. A Barra deve suportar diferentes opções de cor de fundo
  17 +3. A Barra deve suportar a inclusão dinâmica do nome da organização
  18 +4. A Barra deve funcionar nos navegadores:
  19 + Internet Explorer versão 8 ou superior
  20 + Mozilla Firefox versão
  21 + Google Chrome versão
  22 + Safari versão
  23 + Opera versão
  24 + Navegadores de dispositivos móveis
  25 +
  26 +5. A Barra deve degradar graciosamente (graceful degradation ou progressive enhancement) clientes que não possuam compatibilidade ou no qual o javascript esteja desligado
  27 +
  28 +6. A barra deve ser acessível
  29 +
  30 +Considerações sobre a arquitetura
  31 +
  32 +1. A barra será hospedada em local centralizado e chamada de forma distribuída pelos portais institucionais
  33 +
  34 +2. A barra será incluída via javascript minificado,
... ...
app/barrabrasil.py 0 → 100644
  1 +++ a/app/barrabrasil.py
... ... @@ -0,0 +1,42 @@
  1 +from flask import Flask, url_for, render_template, request, Response, make_response
  2 +import hashlib
  3 +app = Flask(__name__)
  4 +
  5 +@app.route('/')
  6 +def pagina_teste():
  7 + # apos o desenvolvimento substituir por redirect para e-pwg
  8 + bootstrap = '''
  9 + <html>
  10 + <head></head>
  11 + <body>
  12 + <div id="barra-brasil"><a href="http://brasil.gov.br" style="background:#7F7F7F; height: 20px; padding:4px 0 4px 10px; display: block; font-family:sans,sans-serif; text-decoration:none; color:white; ">Portal do Governo Brasileiro</a></div>
  13 + <script src="barra.js?cor=verde" type="text/javascript"></script>
  14 + </body>
  15 + </html>
  16 + '''
  17 + return bootstrap # % url_for('static', filename='barra-brasil.js')
  18 +
  19 +@app.route('/barra.js')
  20 +def barra():
  21 + nome_cor = request.args.get('cor', 'azul')
  22 + paleta = {
  23 + 'azul': '#004B82',
  24 + 'preta': '#000000',
  25 + 'cinza': '#7F7F7F',
  26 + 'verde': '#00500F',
  27 + }
  28 + cor = paleta.get(nome_cor, '#004B82')
  29 + conteudo = render_template('barra-brasil.js', cor=cor)
  30 + etag = hashlib.sha1(conteudo.encode('utf-8')).hexdigest()
  31 + if request.if_none_match and \
  32 + etag in request.if_none_match:
  33 + resposta = Response(status=304)
  34 + else: # nao esta em cache do navegador
  35 + resposta = make_response(conteudo)
  36 + resposta.set_etag(etag)
  37 + resposta.headers['Content-type'] = 'application/javascript'
  38 + resposta.headers['Cache-control'] = 'max-age: 3600'
  39 + return resposta
  40 +
  41 +if __name__ == '__main__':
  42 + app.run(debug=True)
... ...
app/static/estilo-barra.css 0 → 100644
  1 +++ a/app/static/estilo-barra.css
... ... @@ -0,0 +1,64 @@
  1 +/* http://meyerweb.com/eric/tools/css/reset/
  2 + v2.0 | 20110126
  3 + License: none (public domain)
  4 +*/
  5 +
  6 +
  7 +#barra-brasil div, #barra-brasil a, #barra-brasil ul, #barra-brasil li{
  8 + margin: 0;
  9 + padding: 0;
  10 + border: 0;
  11 + font-size: 100%;
  12 + font-family: inherit;
  13 + vertical-align: baseline;
  14 +}
  15 +
  16 +body {
  17 + line-height: 1;
  18 +}
  19 +#barra-brasil ul {
  20 + list-style: none;
  21 +}
  22 +
  23 +/* Ministerio do Planejamento */
  24 +
  25 +#barra-brasil {
  26 + position:relative;
  27 + overflow:hidden;
  28 + min-width:1000px;
  29 + background: #7F7F7F url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAJxAAAAACCAMAAADJlDaXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRF/7QAAGsKAAAAGc+b7gAAAAN0Uk5T//8A18oNQQAAADVJREFUeNrs2DEBAAAIwCC1f2hT7IMYzAIAAAAAuQMAAAAAcgMAAAAA9FQkAAAAAPReAAEGAIRVYanUtckGAAAAAElFTkSuQmCC") center bottom no-repeat;
  30 +}
  31 +
  32 +#barra-brasil .barra {
  33 + display: block;
  34 + width: 960px;
  35 + height:28px;
  36 + margin: 0 auto;
  37 + background: url("data:image/gif;base64,R0lGODlhAQACAIAAAP+0AABrCiH5BAAAAAAALAAAAAABAAIAAAICDAoAOw==") 0 bottom repeat-x;
  38 +}
  39 +
  40 +#barra-brasil .barra ul {
  41 + float:right;
  42 + width: 319px;
  43 +}
  44 +
  45 +#barra-brasil .barra ul li {
  46 + float: left;
  47 + padding-left: 25px;
  48 +}
  49 +
  50 +#barra-brasil .ai {
  51 + display: block;
  52 + width: 161px;
  53 + height: 28px;
  54 + text-indent: -99999px;
  55 + background: #7F7F7F url("data:image/png;base64,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") no-repeat 0 4px;
  56 +}
  57 +
  58 +#barra-brasil .brasilgov {
  59 + display: block;
  60 + width: 108px;
  61 + height: 28px;
  62 + text-indent: -99999px;
  63 + background: #7F7F7F url("data:image/png;base64,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") no-repeat 0 4px;
  64 +}
... ...
assets/barra-brasil.coffee 0 → 100644
  1 +++ a/assets/barra-brasil.coffee
... ... @@ -0,0 +1,22 @@
  1 + divBarra = document.getElementById("barra-brasil")
  2 + head = document.getElementsByTagName("head")[0]
  3 + link = document.createElement("link")
  4 + href = document.createAttribute("href")
  5 +
  6 + # src.nodeValue = "http://barra.brasil.gov.br/estilo-barra.css";
  7 + # href.nodeValue = "http://189.9.137.173/estilo-barra.css";
  8 + # href.nodeValue = "static/estilo-barra.css"
  9 + window._barrabrasil =
  10 + insere_css: (css) ->
  11 + style = document.createElement("style")
  12 + tipo = document.createAttribute("type")
  13 + tipo.nodeValue = "text/css"
  14 + media = document.createAttribute("media")
  15 + media.nodeValue = "all"
  16 + conteudo = document.createTextNode(css)
  17 + style.setAttributeNode tipo
  18 + style.setAttributeNode media
  19 + style.appendChild conteudo
  20 + head.appendChild style
  21 +
  22 + divBarra.innerHTML = conteudoBarra
... ...
assets/conteudo-barra.html 0 → 100644
  1 +++ a/assets/conteudo-barra.html
... ... @@ -0,0 +1 @@
  1 +<div class="barra"><ul><li><a href="http://www.acessoainformacao.gov.br" class="ai" title="Acesso à informação">www.sic.gov.br</a></li><li><a href="http://www.brasil.gov.br" class="brasilgov" title="Portal de Estado do Brasil">www.brasil.gov.br</a></li></ul></div>
0 2 \ No newline at end of file
... ...
assets/estilo-barra.scss 0 → 100644
  1 +++ a/assets/estilo-barra.scss
... ... @@ -0,0 +1,62 @@
  1 +/* http://meyerweb.com/eric/tools/css/reset/
  2 + v2.0 | 20110126
  3 + License: none (public domain)
  4 +*/
  5 +
  6 +#barra-brasil {
  7 + div, a, ul, li {
  8 + margin: 0;
  9 + padding: 0;
  10 + border: 0;
  11 + font-size: 100%;
  12 + font-family: inherit;
  13 + vertical-align: baseline;
  14 + }
  15 +}
  16 +
  17 +body {
  18 + line-height: 1;
  19 +}
  20 +
  21 +#barra-brasil ul {
  22 + list-style: none;
  23 +}
  24 +
  25 +/* Ministerio do Planejamento */
  26 +
  27 +#barra-brasil {
  28 + position: relative;
  29 + overflow: hidden;
  30 + min-width: 1000px;
  31 + $cor: \{\{ cor \}\};
  32 + background: $cor embed("imagens/barra-brasil-v3-bgx.png") center bottom no-repeat;
  33 + .barra {
  34 + display: block;
  35 + width: 960px;
  36 + height: 28px;
  37 + margin: 0 auto;
  38 + background: embed("imagens/barra-brasil-v3-bgx.gif") 0 bottom repeat-x;
  39 + ul {
  40 + float: right;
  41 + width: 319px;
  42 + li {
  43 + float: left;
  44 + padding-left: 25px;
  45 + }
  46 + }
  47 + }
  48 + .ai {
  49 + display: block;
  50 + width: 161px;
  51 + height: 28px;
  52 + text-indent: -99999px;
  53 + background: $cor embed("imagens/ai.png") no-repeat 0 4px;
  54 + }
  55 + .brasilgov {
  56 + display: block;
  57 + width: 108px;
  58 + height: 28px;
  59 + text-indent: -99999px;
  60 + background: $cor embed("imagens/brasil.png") no-repeat 0 4px;
  61 + }
  62 +}
... ...
assets/google-analytics.coffee 0 → 100644
  1 +++ a/assets/google-analytics.coffee
... ... @@ -0,0 +1,12 @@
  1 +_gaq = _gaq or []
  2 +_gaq.push ["_setAccount", "UA-37670561-1"]
  3 +_gaq.push ["_setDomainName", "gov.br"]
  4 +_gaq.push ["_trackPageview"]
  5 +(->
  6 + ga = document.createElement("script")
  7 + ga.type = "text/javascript"
  8 + ga.async = true
  9 + ga.src = ((if "https:" is document.location.protocol then "https://ssl" else "http://www")) + ".google-analytics.com/ga.js"
  10 + s = document.getElementsByTagName("script")[0]
  11 + s.parentNode.insertBefore ga, s
  12 +)()
... ...
assets/imagens/ai.png 0 → 100644

5.58 KB

assets/imagens/barra-brasil-v3-bgx.gif 0 → 100644

43 Bytes

assets/imagens/barra-brasil-v3-bgx.png 0 → 100644

183 Bytes

assets/imagens/brasil.png 0 → 100644

5.6 KB

barra-brasil-1.yaml 0 → 100644
  1 +++ a/barra-brasil-1.yaml
... ... @@ -0,0 +1,42 @@
  1 +# configuracao do assetgen para:
  2 +# - gerar o script de comportamento, minificado
  3 +# - gerar o css com as imagens incorporadas
  4 +
  5 +generate:
  6 +
  7 +- barra-brasil.js:
  8 + source:
  9 + - assets/conteudo-barra.html
  10 + - assets/barra-brasil.coffee
  11 + - assets/google-analytics.coffee
  12 + - raw: "})();" # fechamento do escopo da funcao anonima (ver template abaixo)
  13 + template: |
  14 + (function(){
  15 + var conteudoBarra = '${source|trim}';
  16 +
  17 +- estilo-barra.css:
  18 + source:
  19 + - assets/estilo-barra.scss
  20 + depends:
  21 + - assets/imagens/*
  22 + embed.path.root: assets
  23 + embed.url.base: imagens/
  24 +
  25 +- barra-brasil-css.js:
  26 + source:
  27 + - build/estilo-barra.css
  28 + template: |
  29 + window._barrabrasil.insere_css('${source|trim}');
  30 +
  31 +css.embed: true
  32 +css.embed.only: true
  33 +css.compress: true
  34 +js.compress: false
  35 +js.uglify.bin: uglifyjs
  36 +output.directory: build
  37 +output.hashed: false
  38 +output.manifest: app/assets.json
  39 +
  40 +profile.dev:
  41 + css.compress: false
  42 + js.compress: false
... ...
barra-brasil-2.yaml 0 → 100644
  1 +++ a/barra-brasil-2.yaml
... ... @@ -0,0 +1,20 @@
  1 +# configuracao do assetgen para:
  2 +# - mesclar o css com javascript de comportamento
  3 +
  4 +generate:
  5 +
  6 +- barra-brasil.js:
  7 + source:
  8 + - build/barra-brasil.js # parte de comportamento
  9 + - build/barra-brasil-css.js # codigo de insercao do css
  10 + uglify.bin: uglifyjs
  11 +
  12 +css.embed: true
  13 +css.embed.only: true
  14 +output.directory: app/templates
  15 +output.hashed: false
  16 +output.manifest: assets.json
  17 +
  18 +profile.dev:
  19 + css.compress: false
  20 + js.compress: false
... ...
doc/fluxo-de-compilacao.png 0 → 100644

47.2 KB

test/Teste de stress.jmx 0 → 100644
  1 +++ a/test/Teste de stress.jmx
... ... @@ -0,0 +1,148 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<jmeterTestPlan version="1.2" properties="2.3" jmeter="2.8 r1393162">
  3 + <hashTree>
  4 + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Stress Bitch!" enabled="true">
  5 + <stringProp name="TestPlan.comments">Teste de stress genérico</stringProp>
  6 + <boolProp name="TestPlan.functional_mode">false</boolProp>
  7 + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
  8 + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  9 + <collectionProp name="Arguments.arguments"/>
  10 + </elementProp>
  11 + <stringProp name="TestPlan.user_define_classpath"></stringProp>
  12 + </TestPlan>
  13 + <hashTree>
  14 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Web Test" enabled="true">
  15 + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
  16 + <boolProp name="LoopController.continue_forever">false</boolProp>
  17 + <stringProp name="LoopController.loops">100</stringProp>
  18 + </elementProp>
  19 + <stringProp name="ThreadGroup.num_threads">1000</stringProp>
  20 + <stringProp name="ThreadGroup.ramp_time">0</stringProp>
  21 + <longProp name="ThreadGroup.start_time">1356091419000</longProp>
  22 + <longProp name="ThreadGroup.end_time">1356091419000</longProp>
  23 + <boolProp name="ThreadGroup.scheduler">false</boolProp>
  24 + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  25 + <stringProp name="ThreadGroup.duration"></stringProp>
  26 + <stringProp name="ThreadGroup.delay"></stringProp>
  27 + </ThreadGroup>
  28 + <hashTree>
  29 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
  30 + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
  31 + <collectionProp name="Arguments.arguments"/>
  32 + </elementProp>
  33 + <stringProp name="HTTPSampler.domain">barra.brasil.gov.br</stringProp>
  34 + <stringProp name="HTTPSampler.port"></stringProp>
  35 + <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  36 + <stringProp name="HTTPSampler.response_timeout"></stringProp>
  37 + <stringProp name="HTTPSampler.protocol"></stringProp>
  38 + <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  39 + <stringProp name="HTTPSampler.path"></stringProp>
  40 + <stringProp name="HTTPSampler.method">GET</stringProp>
  41 + <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  42 + <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  43 + <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  44 + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  45 + <boolProp name="HTTPSampler.monitor">false</boolProp>
  46 + <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  47 + </HTTPSamplerProxy>
  48 + <hashTree/>
  49 + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
  50 + <boolProp name="ResultCollector.error_logging">false</boolProp>
  51 + <objProp>
  52 + <name>saveConfig</name>
  53 + <value class="SampleSaveConfiguration">
  54 + <time>true</time>
  55 + <latency>true</latency>
  56 + <timestamp>true</timestamp>
  57 + <success>true</success>
  58 + <label>true</label>
  59 + <code>true</code>
  60 + <message>true</message>
  61 + <threadName>true</threadName>
  62 + <dataType>true</dataType>
  63 + <encoding>false</encoding>
  64 + <assertions>true</assertions>
  65 + <subresults>true</subresults>
  66 + <responseData>false</responseData>
  67 + <samplerData>false</samplerData>
  68 + <xml>true</xml>
  69 + <fieldNames>false</fieldNames>
  70 + <responseHeaders>false</responseHeaders>
  71 + <requestHeaders>false</requestHeaders>
  72 + <responseDataOnError>false</responseDataOnError>
  73 + <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
  74 + <assertionsResultsToSave>0</assertionsResultsToSave>
  75 + <bytes>true</bytes>
  76 + </value>
  77 + </objProp>
  78 + <stringProp name="filename"></stringProp>
  79 + </ResultCollector>
  80 + <hashTree/>
  81 + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
  82 + <boolProp name="ResultCollector.error_logging">false</boolProp>
  83 + <objProp>
  84 + <name>saveConfig</name>
  85 + <value class="SampleSaveConfiguration">
  86 + <time>true</time>
  87 + <latency>true</latency>
  88 + <timestamp>true</timestamp>
  89 + <success>true</success>
  90 + <label>true</label>
  91 + <code>true</code>
  92 + <message>true</message>
  93 + <threadName>true</threadName>
  94 + <dataType>true</dataType>
  95 + <encoding>false</encoding>
  96 + <assertions>true</assertions>
  97 + <subresults>true</subresults>
  98 + <responseData>false</responseData>
  99 + <samplerData>false</samplerData>
  100 + <xml>true</xml>
  101 + <fieldNames>false</fieldNames>
  102 + <responseHeaders>false</responseHeaders>
  103 + <requestHeaders>false</requestHeaders>
  104 + <responseDataOnError>false</responseDataOnError>
  105 + <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
  106 + <assertionsResultsToSave>0</assertionsResultsToSave>
  107 + <bytes>true</bytes>
  108 + </value>
  109 + </objProp>
  110 + <stringProp name="filename"></stringProp>
  111 + </ResultCollector>
  112 + <hashTree/>
  113 + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
  114 + <boolProp name="ResultCollector.error_logging">false</boolProp>
  115 + <objProp>
  116 + <name>saveConfig</name>
  117 + <value class="SampleSaveConfiguration">
  118 + <time>true</time>
  119 + <latency>true</latency>
  120 + <timestamp>true</timestamp>
  121 + <success>true</success>
  122 + <label>true</label>
  123 + <code>true</code>
  124 + <message>true</message>
  125 + <threadName>true</threadName>
  126 + <dataType>true</dataType>
  127 + <encoding>false</encoding>
  128 + <assertions>true</assertions>
  129 + <subresults>true</subresults>
  130 + <responseData>false</responseData>
  131 + <samplerData>false</samplerData>
  132 + <xml>true</xml>
  133 + <fieldNames>false</fieldNames>
  134 + <responseHeaders>false</responseHeaders>
  135 + <requestHeaders>false</requestHeaders>
  136 + <responseDataOnError>false</responseDataOnError>
  137 + <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
  138 + <assertionsResultsToSave>0</assertionsResultsToSave>
  139 + <bytes>true</bytes>
  140 + </value>
  141 + </objProp>
  142 + <stringProp name="filename"></stringProp>
  143 + </ResultCollector>
  144 + <hashTree/>
  145 + </hashTree>
  146 + </hashTree>
  147 + </hashTree>
  148 +</jmeterTestPlan>
... ...