From 72cd3434bf0060844158f5e30d2c2859f165e129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateus=20Cez=C3=A1rio=20Barreto?= Date: Thu, 13 Nov 2025 20:26:56 -0300 Subject: [PATCH] First commit --- QA.md | 73 ++++++++++++++++++++++++++++++++++++++++++ app.rb | 18 +++++++++++ building.md | 19 +++++++++++ config.ru | 12 +++++++ readme.md | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ views/layout.erb | 25 +++++++++++++++ 6 files changed, 230 insertions(+) create mode 100644 QA.md create mode 100644 app.rb create mode 100644 building.md create mode 100644 config.ru create mode 100644 readme.md create mode 100644 views/layout.erb diff --git a/QA.md b/QA.md new file mode 100644 index 0000000..5ec47a2 --- /dev/null +++ b/QA.md @@ -0,0 +1,73 @@ +# Perguntas e respostas + +## Qual é a origem do nome TonTon? + +É um nome fofo. + +## Por que a logo do TonTon é um coelho? + +É uma logo fofa. + +## Quantas pessoas desenvolvem o TonTon? + +Majoritariamente uma: eu. + +Prazer, seruna. + +Mas o projeto recebeu uma contribuição recente da vanel. Obrigado vanel. + +## Como o TonTon é mantido? + +TonTon não gera nenhuma renda. + +A despesa se dá pela mensalidade do serviço de servidor virtual para hospedar o site e pela anuidade do domínio. + +Os custos são cobertos por mim e pela vanel. Obrigado vanel. + +## E se eu, por algum motivo, quiser ajudar financeiramente a manter o projeto? + +Se você é brasileiro, PIX: + + 02196960209 + +Se você não é brasileiro, [Ko-fi](https://ko-fi.com/seruna1). + +Obrigado. + +## O TonTon é feito inteiramente em Ruby? + +Não, mas a maioria do código relacionado à web é em Ruby. + +Espera-se que tenha algumas coisas em C, outra linguagem familiar para o desenvolvedor. + +## Por que o TonTon é feito em Ruby? + + - É a linguagem de programação preferida do desenvolvedor. + + - Um excelente ecossistema. + + - Legível, parece natural, ajuda o TonTon a ser simples e extensível. Também ajuda a manter a qualidade de vida do desenvolvedor. + +## Ruby não é uma linguagem morta? + +Acredito que não seja o caso. Mas certamente não é tão popular quanto Javascript ou Python. + +## Posso contribuir com o TonTon sem programar em Ruby? + +Pode. + +## Quão ativo é o desenvolvimento do TonTon + +Desenvolvo em meu tempo livre. + +## Por que Sinatra? Por que não Ruby on Rails? + +Simplicidade no escopo do projeto. + +## O TonTon é para grupos de estudo? + +Sim. + +## TonTon só seria usado para cursos de computação? + +Não necessariamente. \ No newline at end of file diff --git a/app.rb b/app.rb new file mode 100644 index 0000000..e5c6f29 --- /dev/null +++ b/app.rb @@ -0,0 +1,18 @@ +require 'gollum/app' +require 'sinatra/flash' +require "sqlite3" +require 'tonton_web' + +class TonTonWeb::App < Sinatra::Base + set :host_authorization, { permitted_hosts: ['localhost', 'mytonton.com.br'] } + + set :sessions, true + + get '/' do + redirect "/readme.md" + end + + get '/:name' do + markdown File.read(params['name']), layout_engine: :erb, layout: true + end +end \ No newline at end of file diff --git a/building.md b/building.md new file mode 100644 index 0000000..acb4bf3 --- /dev/null +++ b/building.md @@ -0,0 +1,19 @@ +# Contruindo uma instância do TonTonWeb + +Clone o repositório da aplicação princiapal (esse repositório). + +Edite o arquivo de configuração Rack [config.ru]. O arquivo exemplo mapeia apenas a rota '/' para a aplicação principal. Adicione aplicações do projeto TonTon e mapeie elas para novas rotas. + +Instale as dependências e inicie o servidor. + + bundle install + + bundle exec puma + +É necessário que o shell tenha a variável de ambiente SESSION_SECRET definida. + +UwU + +## Módulos Ruby TonTon + +Clone o repositório do módulo dentro da aplicação principal e o inclua no arquivo [config.ru]. \ No newline at end of file diff --git a/config.ru b/config.ru new file mode 100644 index 0000000..a041fa3 --- /dev/null +++ b/config.ru @@ -0,0 +1,12 @@ +require_relative 'app' + +# Require TonTon modules if you want + +use Rack::Session::Cookie, key: 'rack.session', secret: ENV.fetch('SESSION_SECRET') + +app = Rack::URLMap.new( + '/' => TonTonWeb::App.new + # Add TonTon modules here +) + +run app \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..94b44eb --- /dev/null +++ b/readme.md @@ -0,0 +1,83 @@ +# TonTon + +TonTon é uma antologia de softwares abertos, modulares e relacionados com tecnologia na educação e com aprendizado colaborativo. Esse repositório contém a aplicação web principal. <(^_^)> + +O Ruby on Rails foi substituido pelo Sinatra. (⌐■_■) + +As aplicações terão APIs para facilitar interfaces alternativas. Monte o seu TonTon. ( ͡° ᴥ ͡°) + +[Building](building.md) + +[Q&A](QA.md) + +## TonTonWeb + +Aplicação web principal, em Ruby, com um mecanismo de controle de usuários. + +O gerenciamento é feito via linha de comando (utilitário tauth) e interface web. + +O serviços são expostos via: + + - API Ruby via Rack (para ser usada pela interface interna). + + - API web (para ser usada por interfaces que não são escritas em Ruby). + +O TonTonWeb tem uma versão [experimental](https://github.com/seruna-1/tonton) em Ruby on Rails, agora arquivada. (◡_◡) + +Status: sem mecanismo de autenticação. + +## TonTon-Gollum (wiki) + +Uma extensão simples da wiki Gollum para suportar autenticação de usuário. + +Status: testável. + +Funcionalidades esperadas: + + - Subdiretórios dos usuários editáveis apenas pelo próprio usuário. + +## Tolls + +Tonton Polls. + +Aplicação Sinatra para gerenciamento de enquetes. + +Status: não iniciado. + +## Tofinn + +Tokenizable File Interface. + +Toffin é um modelo genérico de árvore de arquivos tokenizáveis e com um modelo integrado opcional de versionamento de arquivos. + +Status: concepção. Duas implementações esperadas, uma em C (Coffin) e outra em Ruby (Torfinn). Há uma versão [experimental](https://github.com/seruna-1/toffin), em Ruby, abandonada. + +## Totoki + +Totoki é o plano de wiki futura para o TonTon usando a API do Toffin. + +Totoki é inspirada pelo Gollum. Assim como o Gollum lida com frontend e tem a própria API separada (gollum-lib), o Totoki será a aplicação Sinatra com API wiki separada (totoki-lib). + +Status: não iniciado. + +## Tamire + +TonTon Abstract Mathematical Introspective Representation (Tamire). + +Tamire é uma biblioteca de para abstração de linguagem matemática em estruturas de objetos. + +Teria duas implementações, uma em Ruby e outra em Javascript, cada uma com: + + - Leitura de Asciimath para entrada. + + - Renderização em SVG para saída. + + - Representação em Json para entrada e saída. + +Status: não iniciado. + +## Tamires + +Tamire Speaker (Tamires) é um módulo Javascript e uma aplicação Ruby para análise por pessoas cegas de estrutura matemática gerada pela Tamire. + +Status: não iniciado. \ No newline at end of file diff --git a/views/layout.erb b/views/layout.erb new file mode 100644 index 0000000..fcf1362 --- /dev/null +++ b/views/layout.erb @@ -0,0 +1,25 @@ + + + TonTon + + + +
+ +
+ + <%= yield %> + + + + \ No newline at end of file