negrosdev / negros.dev Goto Github PK
View Code? Open in Web Editor NEWOfficial repository of negros.dev
Home Page: https://negros.dev
Official repository of negros.dev
Home Page: https://negros.dev
User Story
Eu, como visitante
Quero, conseguir visualizar o site estilizado com CSS e Ícones personalizados
Para que, eu veja o site de uma forma mais elegante e confortável
Objetivo
Para adicionar os assets na aplicação, será necessário baixar os arquivos comprimidos e adiciona-los ao projeto.
Eu, como desenvolver
Quero, quê o Github CI comece a executar em suas esteira o rubocop
Para que, faça uma analise na qualidade de escrita de código
Analisar qualidade de código.
.rubocop.yml
com regras do rubocop.rubocop-rails
..github/workflows/
para rodar o rubocoprubocop -a
para corrigir os arquivos que estão fora da regra.require: rubocop-rails
AllCops:
NewCops: enable
SuggestExtensions: false
TargetRubyVersion: 3.2.0
Exclude:
- 'bin/**/*'
- 'vendor/**/*'
- 'db/**/*'
- 'config/**/*'
- 'app/admin/auth/*'
Style/Documentation:
Enabled: false
Style/FrozenStringLiteralComment:
Enabled: false
Style/ClassAndModuleChildren:
Enabled: false
Rails/UniqueValidationWithoutIndex:
Enabled: false
Metrics/BlockLength:
Max: 120
User Story
Eu, como desenvolvedor do negros.dev
Quero, poder executar testes na aplicação
Para que, eu possa proteger o projeto com as demais implemtações que serão realizadas.
Objetivo
Para realizar testes no projeto, deve-se instalar as seguintes gems:
group :development, :test do
gem "debug", platforms: %i[ mri mingw x64_mingw ]
gem 'dotenv-rails'
gem 'rspec-rails', '~> 6.0.0'
gem 'shoulda-matchers', '~> 5.0'
gem 'faker'
gem 'factory_bot_rails'
gem 'capybara'
end
group :development do
gem "web-console"
gem 'rubocop', '~> 1.52', require: false
gem 'rubocop-capybara', require: false
gem 'robocop-rails', require: false
end
Eu, como visitante
Quero, as informações contidas em cada conteúdo
Para que, eu possar visualizar os conteúdos
Criar página única para cada conteúdo.
app/views/contents/_content.html.erb
:<section class="contents">
<% contents.each_slice(3) do |contents| %>
<div class="grid">
<% contents.each do |content| %>
<a class="published_content">
<article>
<h5> <%= content.name %> </h5>
</article>
</a>
<% end %>
</div>
<% end %>
</section>
User Story
Eu, como aluno(a)
Quero, puder navegar no site através de seu URLs amigáveis
Para que, eu consiga compartilhar links do site de forma mais agradável
Objetivo
Criar URLs amigáveis.
Critérios de aceite
Será instalar e configurar a gem friendly id
para gerar URLs amigáveis.
https://github.com/norman/friendly_id
Eu, como criador de conteúdo
Quero, puder adicionar mídias
Para que, as pessoas possam ter acesso aos recursos
Instalar e configurar o active storage
para começar a compartilhar recursos.
User Story
Eu, como desenvolvedor do negros.dev
Quero, poder criar testes simplificados de modelos com a gem shoulda-matchers
.
Para que, eu possa melhorar a legibilidade dos testes e simplificar a execução dos mesmos.
Objetivo
Para realizar as configurações necessárias do shoulda-matchers
, será necessário seguir o que está descrito na documentação oficial. https://github.com/thoughtbot/shoulda-matchers
Eu, como usuário
Quero, conseguir logar no site
Para que, eu possa gerenciar minha conta
Conseguir autenticar usuários na plataforma.
gem devise
User Story
Eu, como desenvolvedor
Quero, poder adicionar configurações dentro do arquivo .env
Para que, eu possa executar o projeto corretamente
Objetivo
Criar arquivo example.env
com as configurações que o projeto precisa para ser executado. Este arquivo deve ser adicionado via git
.
Eu, como administrador
Quero, conseguir restringir aos usuários logados, acesso a página administrativa
Para que, eu possa a segurar a plataforma de ataques maliciosos.
Somente usuários logados e com permissões podem ver a página administrativa
administrate
com o devise;admin
para variável de ambiente, sugestão: DASHBOARD_ROUTE_PATH
;Eu, como administrador
Quero, postar conteúdos na plataforma
Para que, os visitantes possam terem acesso aos conteúdos
Ter uma página administrativa para conseguir criar/gerenciar os conteúdos no site.
User Story
Eu, como aluno(a)
Quero, puder ver conteúdos com URLs amigáveis
Para que, eu consiga compartilhar o contéudo de uma forma amigável
Objetivo
Criar URLs amigáveis para contéudos.
Critérios de aceite
Será necessário utilizar a gem #72
Eu, como estudante
Quero, visualizar o site sem falhas na estrutura do HTML
Para que, eu possa, ter a melhor experiiencia possível
Corrigir CSS para que o visitante tenha a melhor experiência possível.
Quando o texto ocupa duas linhas, ele recua para esquerda.
Eu, como criador de conteúdo
Quero, vincular recursos aos conteúdos publicados
Para que, as pessoas possam ter acesso aos recursos
Adicionar recursos ao conteúdo, torna o conteúdo rico. O conteúdo poderá ter:
recursos
;recurso
pertence a um conteúdo
e um conteúdo tem vários recursos;name:string
has_one_attached :file
content:references
Eu, como visitante
Quero, conseguir assistir os vídeos dos conteúdos postados
Para que, eu possa aprender programação dentro da plataforma
Conseguir adicionar o campo embeded_video
dentro do modelo de contéudo.
migration embeded_video
dentro do modelo de conteúdo.User Story
Eu, como desenvolvedor
Quero, executar testes no Github
Para que, eu possa garantir a qualidade do código e reforçar o legitimidade do pr
antes do merge.
Objetivo
Como o banco de dados atual é Postgresql
para todos os ambientes (dev, test, prod). Será necessário implementar o Postgresql para rodar na esteira do Github. https://docs.github.com/en/actions/using-containerized-services/creating-postgresql-service-containers
Close from #67
User Story
Eu, como visitante
Quero, puder visualizar cada conteúdo adicionado ao website
Para que, eu possa ficar informado de todos os conteúdos postados
Objetivo
Para a implementação deste recurso, será necessário criar o model content com os seguintes atributos:
name:string index
slug:string index uniq
body:Text
description:Text
status:Integer default 0
rails g model Content name:string slug:string content:text description:text status:integer
Lembre-se de alterar a migration adicionando as chaves (index e uniq) nas colunas citadas.
Eu, como visitante
Quero, conseguir visualizar todos os conteúdos da plataforma
Para que, eu possa navegar entre os conteúdos e selecionar o conteúdo do meu interesse.
Conseguir visualizar todos os conteúdos do site.
User Story
Eu, como desenvolvedor do negros.dev
Quero, factories que me auxiliem melhor na execução dos testes
Para que, eu possa melhorar a legibilidade dos testes e simplificar a execução dos mesmos.
Objetivo
Para realizar as configurações necessárias do factory_bot
, será necessário seguir o que está descrito na documentação oficial. https://github.com/thoughtbot/factory_bot_rails
Eu, como administrador
Quero, conseguir restringir aos usuários logados, acesso a página administrativa
Para que, eu possa a segurar a plataforma de ataques maliciosos.
Restringir acesso a página administrativa, apenas para usuários que possuem permissão. Eles são:
User Story
Eu, como desenvolvedor do negros.dev
Quero, conseguir executar testes em javascript junto com a gem capybara
#53
Para que, eu consiga executar testes escritos em javascript.
Objetivo
Para realizar as configurações necessárias do selenium-webdriver
, será necessário seguir o que está descrito na documentação oficial. https://www.selenium.dev/documentation/
User Story
Eu, como desenvolvedor do negros.dev
Quero, conseguir executar testes de sistema
Para que, eu possar simular cliques em botões, selecões em menus drop-down e etc.
Objetivo
Para realizar as configurações necessárias do capybara
, será necessário seguir o que está descrito na documentação oficial. https://github.com/teamcapybara/capybara
Eu, como usuário
Quero, conseguir logar na plataforma
Para que, eu possa ter acesso a minha conta
Conseguir autenticar usuários na plataforma.
Eu, como administrador
Quero, conseguir criar categorias
Para que, eu possa vincular os conteúdos a uma tag
Conseguir criar categorias na página administrativa #87 . As categorias serão utilizadas para rotular um conteúdo.
User Story
Eu, como desenvolvedor do negros.dev
Quero, poder utilizar o Docker
Para que, eu possa utilizar o projeto sem ter que instalar o Ruby em minha máquina
Objetivo
Gerar e configurar os arquivos Docker e docker-compose.yml no projeto, seguindo as boas práticas de programação para a configuração destes arquivos.
User Story
Eu, como desenvolvedor do negros.dev
Quero, poder executar a gem rspec
na aplicação
Para que, eu possa executar os testes na aplicação.
Objetivo
Para realizar as configurações necessárias do rspec, será necessário seguir o que está descrito na documentação oficial. https://github.com/rspec/rspec-rails
User Story
Eu, como visitante
Quero, puder navegar na página principal
Para que, eu possa visualizar as informações presentes nela
Objetivo
Para a criação da página assim como, seu controller e testes, será necessário adicionar o HTML
na aplicação.
Critérios de aceite
Será necessário implementar para a criação desta página os seguintes recursos:
Atenção: Neste momento, não deve ser gerado nenhum tipo de migração
e modelo
.
Será necessário refatorar o projeto para utilizar o framework Ruby On Rails.
Python é uma linguagem bastante interessante, por volta de 2014 eu comecei a aprender sobre a linguagem de programação e trabalhei até 2020. No entanto, desde o final de 2020 até a data de hoje, não estou mais utilizando a linguagem como ferramenta de trabalho. Sendo assim, não ando acompanhando as novidades e nem mesmo os problemas e soluções que a comunidade anda enfrentando. E para trazer a transparência para todos vocês que no passado, apostaram no projeto, eu gostaria de dizer que na data de hoje eu estou ressucitando o projeto, porém, seguirei mantendo o projeto com a linguagem Ruby e utilizando o framework Ruby On Rails.
Em breve, pretendo realizar um git push --force
na branch main
, a fim de substituir o que já foi escrito em Python.
User Story
Eu, como visitante
Quero, ver somente conteúdos publicados na página inicial
Para que, eu consiga consumi-lo
Objetivo
Para que os visitantes consigam visulizar conteúdos na página inicial, será necessário carregar os conteúdos no home_controller.rb
Critérios de aceite
created_at
User Story
Eu, como desenvolvedor
Quero, simplificar o arquivo test.yml que fica responsável por rodar a esteira de testes no GithubCI
Para que, o setup seja configurado com mais rapidez
Objetivo
Será necessário altera ro arquivo test.yml removendo a instalação do google chrome e atualizando o Set up application para rodar as migrations na base de dados de test.
User Story
Eu, como desenvolvedor do negros.dev
Quero, puder cadastrar um conteúdo com os status de rascunho, publicado e em analise
Para que, eu possa gerenciar melhor os conteúdos cadastrados no website
Objetivo
Para a implementação deste recurso, será realizar uma alteração no model content:
enum Status %i[draft publish review]
Requer que a issue #57 esteja na branch main
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.