Compare commits

..

5 commits

16 changed files with 567 additions and 19 deletions

52
app.rb
View file

@ -2,8 +2,44 @@ require 'gollum/app'
require 'sinatra/flash'
require "sqlite3"
require 'tonton_web'
# TODO: better, simpler route matching
require 'pathname'
class TonTonWeb::App < Sinatra::Base
# Renders a view by the filename without the extension (without a predefined render)
# TODO: pass this to tonton-web code
def render_any template_name, base_dir, options = {}
for extension in ['.markdown', '.erb']
template_name.delete_suffix!(extension)
end
views_root = settings.views || "./views"
# Search for any file with the given name and any extension
# Dir.glob returns an array of matching file paths
views_dir = Dir.new("#{views_root}/#{base_dir}")
found = false
filename = nil
while not found and ( filename = views_dir.read ) != nil
if File.basename(filename, ".*") == template_name
found = true
end
end
if not found
halt 404, "Template named '#{template_name}' not found."
end
file_path = "#{base_dir}/#{template_name}"
engine = File.extname(filename).delete('.').to_sym
# Dynamically call the correct Sinatra method (e.g., erb :hello, markdown :hello)
# We use 'send' to call the method by its name symbol
send(engine, file_path.to_sym, options)
end
set :host_authorization, { permitted_hosts: ['localhost', 'mytonton.com.br'] }
set :sessions, true
@ -16,19 +52,17 @@ class TonTonWeb::App < Sinatra::Base
markdown File.read("readme.md"), layout_engine: :erb, layout: true
end
get '/:name' do
markdown request.path_info.to_sym, layout_engine: :erb, layout: true
end
# Chapa Sigmóide
get '/chapa-sigmoide/readme' do
get '/chapa-sigmoide' do
redirect "/chapa-sigmoide/readme.markdown"
end
get '/chapa-sigmoide/:name' do
if request.path_info.end_with? '.markdown'
markdown request.path_info.sub('.markdown', '').to_sym, layout_engine: :erb, layout: :chapa_sigmoide
elsif request.path_info.end_with? '.erb'
erb request.path_info.sub('.erb', '').to_sym, layout_engine: :erb, layout: :chapa_sigmoide
render_any params['name'], 'chapa-sigmoide', layout_engine: :erb, layout: :chapa_sigmoide
end
get '/chapa-sigmoide/members/:name' do
render_any params['name'], 'chapa-sigmoide/members', layout_engine: :erb, layout: :chapa_sigmoide
end
end

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1080"
height="1080"
viewBox="0 0 1080 1080"
version="1.1"
id="svg1"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="logo circular.svg"
inkscape:export-filename="logo circular.png"
inkscape:export-xdpi="127"
inkscape:export-ydpi="127"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="0.35555555"
inkscape:cx="362.8125"
inkscape:cy="562.5"
inkscape:window-width="1275"
inkscape:window-height="854"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#060e1e;stroke-width:540.899;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.404183"
id="rect1"
width="1080"
height="1080"
x="0"
y="0" />
<g
id="g1"
transform="matrix(0.99798365,0,0,0.99798365,-60.295389,47.671836)">
<path
style="fill:none;stroke:#85e80c;stroke-width:52.9167;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.404183"
d="M 751.63644,87.893311 C 424.83378,78.124031 794.59721,977.5525 465.54527,906.05215"
id="path2"
sodipodi:nodetypes="cc" />
<circle
style="fill:none;stroke:#85e80c;stroke-width:52.9167;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path1"
cx="601.50824"
cy="493.32288"
r="434.61652" />
<text
xml:space="preserve"
style="font-size:511.578px;font-family:'Iosevka Nerd Font';-inkscape-font-specification:'Iosevka Nerd Font';text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#85e80c;fill-opacity:1;stroke:none;stroke-width:11.9926;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.74902"
x="290.39554"
y="674.776"
id="text2"><tspan
sodipodi:role="line"
id="tspan2"
style="font-weight:bold;font-size:511.578px;fill:#85e80c;fill-opacity:1;stroke:none;stroke-width:11.9926"
x="290.39554"
y="674.776">C</tspan></text>
<text
xml:space="preserve"
style="font-size:511.578px;font-family:'Iosevka Nerd Font';-inkscape-font-specification:'Iosevka Nerd Font';text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:11.9926;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.74902"
x="668.36267"
y="676.75854"
id="text3"><tspan
sodipodi:role="line"
id="tspan3"
style="font-weight:bold;font-size:511.578px;fill:#85e80c;fill-opacity:1;stroke-width:11.9926"
x="668.36267"
y="676.75854">Σ</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1080"
height="1080"
viewBox="0 0 1080 1080"
version="1.1"
id="svg1"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="logo retangular com texto.svg"
xml:space="preserve"
inkscape:export-filename="1.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="0.26048651"
inkscape:cx="464.51542"
inkscape:cy="472.19337"
inkscape:window-width="1275"
inkscape:window-height="854"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
showgrid="false" /><defs
id="defs1"><pattern
inkscape:collect="always"
xlink:href="#halftones"
preserveAspectRatio="xMidYMid"
id="pattern3"
patternTransform="scale(1)"
x="0"
y="0" /><pattern
patternUnits="userSpaceOnUse"
width="10"
height="10"
preserveAspectRatio="xMidYMid"
style="fill:#85e80c"
id="halftones"
x="0"
y="0"
inkscape:label="Halftones"
inkscape:collect="always"
inkscape:isstock="true"><g
id="fullPattern"
style="display:inline"
transform="scale(0.1)"><circle
style="fill-opacity:1;stroke:none;paint-order:markers fill stroke;stop-color:#000000"
id="circle10"
cx="50"
cy="50"
r="25" /><path
id="circle37"
style="paint-order:markers fill stroke"
d="M 25,0 A 25,25 0 0 1 0,25 25,25 0 0 1 -25,0 25,25 0 0 1 0,-25 25,25 0 0 1 25,0 Z" /><path
id="circle39"
style="paint-order:markers fill stroke"
d="M 125,0 A 25,25 0 0 1 100,25 25,25 0 0 1 75,0 25,25 0 0 1 100,-25 25,25 0 0 1 125,0 Z" /><path
id="circle43"
style="paint-order:markers fill stroke"
d="M 25,100 A 25,25 0 0 1 0,125 25,25 0 0 1 -25,100 25,25 0 0 1 0,75 25,25 0 0 1 25,100 Z" /><path
id="circle45"
style="paint-order:markers fill stroke"
d="m 125,100 a 25,25 0 0 1 -25,25 25,25 0 0 1 -25,-25 25,25 0 0 1 25,-25 25,25 0 0 1 25,25 z" /></g></pattern></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><rect
style="fill:#060e1e;fill-opacity:1;stroke:#85e80c;stroke-width:15.07;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="rect1"
width="1064.9303"
height="1064.9303"
x="7.5349998"
y="7.5349998" /><text
xml:space="preserve"
style="font-size:123.833px;font-family:'Iosevka Nerd Font';-inkscape-font-specification:'Iosevka Nerd Font';text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#0055ff;fill-opacity:1;stroke:#85e80c;stroke-width:5.49635;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1"
x="106.5845"
y="765.59241"
id="text3-4-3"><tspan
sodipodi:role="line"
id="tspan3-92-5"
x="106.5845"
y="765.59241"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:123.833px;font-family:Iosevka;-inkscape-font-specification:'Iosevka Bold';opacity:1;fill:#85e80c;fill-opacity:1;stroke:none;stroke-width:5.49635;stroke-dasharray:none;stroke-opacity:1">Chapa Sigmóide</tspan></text><g
id="g3-1"
transform="matrix(1.4757659,0,0,1.4757659,-210.48603,-449.56822)"><rect
style="opacity:0.563;fill:url(#pattern3);fill-opacity:1;stroke:#85e80c;stroke-width:16.0863;stroke-linecap:square"
id="rect2-6"
width="576.58643"
height="253.47169"
x="200.04315"
y="464.04315" /><rect
style="fill:#060e1e;fill-opacity:1;stroke:#85e80c;stroke-width:16.0863;stroke-linecap:square"
id="rect2"
width="576.58643"
height="253.47169"
x="240.45047"
y="426.62692" /><text
xml:space="preserve"
style="font-size:160px;font-family:'Iosevka Nerd Font';-inkscape-font-specification:'Iosevka Nerd Font';text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:#0055ff;fill-opacity:1;stroke:#85e80c;stroke-width:3.77953;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1"
x="329.38364"
y="607.76282"
id="text3-4"><tspan
sodipodi:role="line"
id="tspan3-92"
x="329.38364"
y="607.76282"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:160px;font-family:Iosevka;-inkscape-font-specification:'Iosevka Bold';opacity:1;fill:#85e80c;fill-opacity:1;stroke:none;stroke-width:3.77953;stroke-dasharray:none;stroke-opacity:1">C ∫ Σ</tspan></text></g><text
xml:space="preserve"
style="font-size:50.3071px;font-family:'Iosevka Nerd Font';-inkscape-font-specification:'Iosevka Nerd Font';text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#081e06;fill-opacity:1;stroke:none;stroke-width:10.9694;stroke-linecap:round;stroke-linejoin:round"
x="137.41748"
y="880.34497"
id="text3-0"><tspan
sodipodi:role="line"
id="tspan3-6"
x="137.41748"
y="880.34497"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:50.3071px;font-family:Iosevka;-inkscape-font-specification:Iosevka;fill:#939393;fill-opacity:1;stroke-width:10.9694">ciencia_da_computacao@ufpa-belem</tspan></text></g></svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1080"
height="523.68103"
viewBox="0 0 1080 523.68103"
version="1.1"
id="svg1"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="logo retangular sem texto.svg"
xml:space="preserve"
inkscape:export-filename="1.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="0.18419178"
inkscape:cx="342.03481"
inkscape:cy="-27.14562"
inkscape:window-width="1275"
inkscape:window-height="854"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1"
showgrid="false" /><defs
id="defs1"><pattern
inkscape:collect="always"
xlink:href="#halftones"
preserveAspectRatio="xMidYMid"
id="pattern3"
patternTransform="scale(1)"
x="0"
y="0" /><pattern
patternUnits="userSpaceOnUse"
width="10"
height="10"
preserveAspectRatio="xMidYMid"
style="fill:#85e80c"
id="halftones"
x="0"
y="0"
inkscape:label="Halftones"
inkscape:collect="always"
inkscape:isstock="true"><g
id="fullPattern"
style="display:inline"
transform="scale(0.1)"><circle
style="fill-opacity:1;stroke:none;paint-order:markers fill stroke;stop-color:#000000"
id="circle10"
cx="50"
cy="50"
r="25" /><path
id="circle37"
style="paint-order:markers fill stroke"
d="M 25,0 A 25,25 0 0 1 0,25 25,25 0 0 1 -25,0 25,25 0 0 1 0,-25 25,25 0 0 1 25,0 Z" /><path
id="circle39"
style="paint-order:markers fill stroke"
d="M 125,0 A 25,25 0 0 1 100,25 25,25 0 0 1 75,0 25,25 0 0 1 100,-25 25,25 0 0 1 125,0 Z" /><path
id="circle43"
style="paint-order:markers fill stroke"
d="M 25,100 A 25,25 0 0 1 0,125 25,25 0 0 1 -25,100 25,25 0 0 1 0,75 25,25 0 0 1 25,100 Z" /><path
id="circle45"
style="paint-order:markers fill stroke"
d="m 125,100 a 25,25 0 0 1 -25,25 25,25 0 0 1 -25,-25 25,25 0 0 1 25,-25 25,25 0 0 1 25,25 z" /></g></pattern></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-156.74445)"><rect
style="fill:#060e1e;fill-opacity:1;stroke:#85e80c;stroke-width:0;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="rect1"
width="1080"
height="523.68103"
x="0"
y="156.74445" /><g
id="g3-1"
transform="matrix(1.7059445,0,0,1.7059445,-327.54106,-557.33622)"><rect
style="opacity:0.563;fill:url(#pattern3);fill-opacity:1;stroke:#85e80c;stroke-width:16.0863;stroke-linecap:square"
id="rect2-6"
width="576.58643"
height="253.47169"
x="200.04315"
y="464.04315" /><rect
style="fill:#060e1e;fill-opacity:1;stroke:#85e80c;stroke-width:16.0863;stroke-linecap:square"
id="rect2"
width="576.58643"
height="253.47169"
x="240.45047"
y="426.62692" /><text
xml:space="preserve"
style="font-size:160px;font-family:'Iosevka Nerd Font';-inkscape-font-specification:'Iosevka Nerd Font';text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;opacity:1;fill:#0055ff;fill-opacity:1;stroke:#85e80c;stroke-width:3.77953;stroke-linecap:square;stroke-dasharray:none;stroke-opacity:1"
x="329.38364"
y="607.76282"
id="text3-4"><tspan
sodipodi:role="line"
id="tspan3-92"
x="329.38364"
y="607.76282"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:160px;font-family:Iosevka;-inkscape-font-specification:'Iosevka Bold';opacity:1;fill:#85e80c;fill-opacity:1;stroke:none;stroke-width:3.77953;stroke-dasharray:none;stroke-opacity:1">C ∫ Σ</tspan></text></g></g></svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 KiB

View file

@ -220,6 +220,13 @@ button, input[type="submit"], input[type="reset"], input[type="button"]
button svg {pointer-events:none;}
header img
{
width: min(50vw, 50vh);
margin-right: auto;
margin-left: auto;
}
div.ficha
{
display: grid;

View file

@ -10,9 +10,7 @@ A Chapa Sigmóide é uma chapa eleitoral concorrendo à gerência do Centro Acad
[Simbologia (em produção)](symbology.markdown)
[Personalidade (em produção)](personality.markdown)
[Propostas (em produção)](proposals.markdown)
[Personalidade (em produção)](acting.markdown)
[Mascotes (em produção)](mascots.markdown)
@ -20,6 +18,6 @@ Esse site é construído de forma aberta e graças à colaboração dos membros,
A experiência de criar esse site para a chapa tem sido uma grata experiência para os envolvidos, assim como a construção da chapa no geral. Todos os integrantes da chapa estão cursando o 2º semestre, sendo que alguns tiveram contato relativamente superficial com computação antes de ingressar na faculdade, mas, ainda assim, compartilham o interesse por contribuir, interesse esse que está enraizado na chapa, desde a gênese.
Com todas as falhas, mal otimizações e "gambiarras", a Chapa Sigmóide deixa registrado um presente de melhores esforços direcionados ao curso de Ciência da Computação, com a certeza de que o tempo dedicado por cada membro foi acompanhado de muito carinho.
A Chapa Sigmóide deixa registrado um presente de melhores esforços direcionados ao curso de Ciência da Computação, com a certeza de que o tempo dedicado por cada membro foi acompanhado de muito carinho.

View file

@ -0,0 +1,19 @@
# Simbologia
A letra **C** simboliza a programação.
Faz referência à linguagem C, uma linguagem de programação compilada, procedural, de propósito geral e de baixo nível amplamente conhecida e utilizada.
O símbolo **∫** (integral) representa o cálculo e a matemática contínua.
O formato do S estilizado também se assemelha ao de uma função sigmóide, um tipo de função matemática logística cujo valor varia de 0 à 1.
![Função Sigmóide](/chapa-sigmoide/sigmoid-function.svg)
A letra grega **Σ** (sigma) denota a operação de somatório e representa a matemática discreta.
O formato da letra grega sigma lembra o da letra E, formando, com as demais letras, a sequência **CSE**, que remete a:
- **C**omputer **S**cienc**E**
- **C**hapa **S**igmóid**E**

View file

@ -1 +0,0 @@
# Simbologia

View file

@ -1,19 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<title>Chapa Sigmóide</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" type="text/css" href="/css/chapa_sigmoide.css">
<link href="https://fonts.googleapis.com/css2?family=Victor+Mono:wght@400;700&display=swap" rel="stylesheet">
<link rel="icon" href="/chapa-sigmoide/logo-circular.svg" type="image/svg+xml">
</head>
<body>
<header>
<nav>
<img src="/chapa-sigmoide/logo-retangular-sem-texto.svg">
<a href="/home">Início</a>
<a href="/chapa-sigmoide/readme.markdown">Chapa Sigmóide</a>
</nav>
</header>