Giter VIP home page Giter VIP logo

negros.dev's People

Contributors

marcuxyz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

negros.dev's Issues

Adicionar gem dotenv-rails

User Story
Eu, como desenvolvedor do negros.dev
Quero, que as variáveis de ambiente sejam carregadas automaticamente #60
Para que, eu consiga rodar a aplicação sem ter algum tipo de problema

Objetivo
Será necessário instalar e configurar a gem dotenv conforme a documentação.

Simplificar artefato do GithubCI

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.

Instalar e configurar o ActiveStorage

User Story

Eu, como criador de conteúdo
Quero, puder adicionar mídias
Para que, as pessoas possam ter acesso aos recursos

Objetivo

Instalar e configurar o active storage para começar a compartilhar recursos.

Critérios de aceite

  • Instalar ActiveStorage
  • Configurar ActiveStorage
  • Instalar e configurar suporte ao ActiveStorage no administrate.

Configuração do Rspec

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

Adicionar embeded video dentro do conteúdo

User Story

Eu, como visitante
Quero, conseguir assistir os vídeos dos conteúdos postados
Para que, eu possa aprender programação dentro da plataforma

Objetivo

Conseguir adicionar o campo embeded_video dentro do modelo de contéudo.

Critérios de aceite

  • Criar migration embeded_video dentro do modelo de conteúdo.

Visualizar conteúdos publicados na página inicial

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

  • Carregar apenas 6 conteúdos na página inicial.
  • Redirecionar os conteúdos para sua página única, para os visitantes conseguirem ver com mais detalhes cada conteúdo.
  • Conteúdos devem ser ordernados pela sua data de publicação created_at

Criar página administrativa

User Story

Eu, como administrador
Quero, postar conteúdos na plataforma
Para que, os visitantes possam terem acesso aos conteúdos

Objetivo

Ter uma página administrativa para conseguir criar/gerenciar os conteúdos no site.

Critérios de aceite

  • Somente usuários autorizados podem acessar a página
  • Administradores devem puder gerenciar conteúdos para quem possam:
    • Criar conteúdos
    • Excluir conteúdos
    • Editar conteúdos

Criar arquivo example.env

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.

Criar categorias

User Story

Eu, como administrador
Quero, conseguir criar categorias
Para que, eu possa vincular os conteúdos a uma tag

Objetivo

Conseguir criar categorias na página administrativa #87 . As categorias serão utilizadas para rotular um conteúdo.

Critérios de aceite

  • As categorias devem ser nome, cor e devem ter muitos conteúdos vinculados a elas.

Implementar suporte ao Docker

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.

Instalar e configurar o friendly id

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

Adicionar recursos ao conteúdo

User Story

Eu, como criador de conteúdo
Quero, vincular recursos aos conteúdos publicados
Para que, as pessoas possam ter acesso aos recursos

Objetivo

Adicionar recursos ao conteúdo, torna o conteúdo rico. O conteúdo poderá ter:

  • Código fonte;
  • Mídias de aúdio;
  • Mídias de vídeos;
  • Arquivos zipados;
  • Configurações de uma aplicação no formato json;
  • etc

Critérios de aceite

  • Criar modelo de recursos;
  • Vincular modelo de recursos ao conteúdo. Um recurso pertence a um conteúdo e um conteúdo tem vários recursos;
  • O modelo deve ter os seguintes atributos:

name:string
has_one_attached :file
content:references

Criar página única para conteúdos

User Story

Eu, como visitante
Quero, as informações contidas em cada conteúdo
Para que, eu possar visualizar os conteúdos

Objetivo

Criar página única para cada conteúdo.

Critérios de aceite

  • Adicionar link para redirecionar o visitante para a página de conteúdo selecionado. O link deve ser adicionado no arquivo 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>

Recursos

post.html.zip

Configuração do Shoulda-Matchers

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

Corrigir CSS

User Story

Eu, como estudante
Quero, visualizar o site sem falhas na estrutura do HTML
Para que, eu possa, ter a melhor experiiencia possível

Objetivo

Corrigir CSS para que o visitante tenha a melhor experiência possível.

Screenshots

Quando o texto ocupa duas linhas, ele recua para esquerda.

Screenshot 2023-07-27 at 21 45 39

Critérios de aceite

  • Corrigir CSS;
  • Adicionar favicon;

Refatorar o projeto para utilizar Ruby On Rails

Descrição

Será necessário refatorar o projeto para utilizar o framework Ruby On Rails.

Motivação

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.

Solução

Em breve, pretendo realizar um git push --force na branch main, a fim de substituir o que já foi escrito em Python.

Criar página para exibir todos os conteúdos

User Story

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.

Objetivo

Conseguir visualizar todos os conteúdos do site.

Recursos

contents.html.zip

Configuração da FactoryBot

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

Configurar slug para content

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

Criar página de autenticação

User Story

Eu, como usuário
Quero, conseguir logar no site
Para que, eu possa gerenciar minha conta

Objetivo

Conseguir autenticar usuários na plataforma.

Critérios de aceite

  • Instalar e configurar a gem devise
  • Criar modelo de usuário

Implementar arquitetura para a execução de testes na aplicação

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

Criação do modelo de Content

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.

Criar restrição para página administrativa

User Story

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.

Objetivo

Restringir acesso a página administrativa, apenas para usuários que possuem permissão. Eles são:

  • Escritor (writer)
  • Revisor (reviewer)
  • Adminstrador (admin)

Critérios de aceite

  • Instalar e configurar a gem pundit
  • Adicionar restrição a páginas para apenas usuários que possuem permissão.

Integrar o administrate com o devise

User Story

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.

Objetivo

Somente usuários logados e com permissões podem ver a página administrativa

  • Escritor (writer)
  • Revisor (reviewer)
  • Adminstrador (admin)

Critérios de aceite

  • Integrar o administrate com o devise;
  • Alterar endpoint da rota de admin para variável de ambiente, sugestão: DASHBOARD_ROUTE_PATH;

Configurar Rubocop

User Story

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

Objetivo

Analisar qualidade de código.

Critérios de aceite

  • Configurar o arquivo .rubocop.yml com regras do rubocop.
  • Será necessário instalar o rubocop-rails.
  • Configurar um novo arquivo dentro de .github/workflows/ para rodar o rubocop
  • Executar o comando rubocop -a para corrigir os arquivos que estão fora da regra.

Template

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

Configuração do Selenium Web Driver

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/

Criar enum para o atributo Status

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.

Adicionar assets na aplicação

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.

assets.zip

Configuração do Capybara

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

Criação da página principal

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.

index.html.zip

Critérios de aceite

Será necessário implementar para a criação desta página os seguintes recursos:

  • Página inicial (HomeController)
  • Teste de sistema para página inicial
  • HTML (index.html.erb)

Atenção: Neste momento, não deve ser gerado nenhum tipo de migração e modelo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.