Yet Another ToDo Application (Mais uma aplicação ToDo)
Criar de raiz um projeto web, em pequenos passos, que serão demonstrados nesta Wiki page.
Cada conceito será tema em uma nova página na Wiki, onde ao longo do projeto serão explicados conceitos como modelo cliente-servidor, protocolo TCP, HTTP, base da web (a tríade HTML/CSS/JS), padrões, boas práticas, testes, backend, frontend, frameworks "modernos", base de dados, CI/CD, deploy, cloud, Docker e até Kubernetes.
Inicialmente o projeto não foi feito para acabar. Sofrerá constante evolução, ao passo que os conceitos ficarão registrados nas páginas da Wiki, que servirão de "histórico" das tecnologias utilizadas projeto.
Ao longo do tempo as decisões poderão mudar conforme necessidade, mas inicialmente a escolha será Ruby, por ser uma linguagem bastante expressiva e com um ecossistema robusto e maduro.
Idealmente, familiaridade com lógica de programação, comandos em um terminal UNIX-like e básico em controle de versão Git. Básico de Ruby também seria uma mais-valia, entretanto qualquer pessoa interessada em aprender/consolidar conceitos básicos para desenvolvimento web consegue tirar algum proveito.
Qualquer ferramenta aqui apresentada será demonstrada com o único intuito didático de mostrar onde se enquadra seu papel no desenvolvimento web. Por definição, conhecimentos avançados e mais profundos de cada ferramenta não serão cobertos ao longo do projeto, contudo pode ser que algum tema ou outro fique mais complexo do que originalmente proposto.
As páginas da Wiki serão escritas em Português (mais precisamente, pt-BR). Por outro lado, tudo que seja feito na base de código do projeto, bem como mensagens de commit, será em inglês.
Se você acha que algum conceito não foi bem explicado, que precise de modificações ou até algum conhecimento extra que possa ser partilhado, não hesite em submeter uma Issue ou Pull Request.