Coder Social home page Coder Social logo

castsbrasil / castsbrasil Goto Github PK

View Code? Open in Web Editor NEW
141.0 141.0 66.0 26.62 MB

Casts com conteúdo em português totalmente grátis!

Home Page: http://castsbrasil.com/

License: Apache License 2.0

Ruby 63.73% JavaScript 0.91% CSS 0.02% HTML 19.77% Dockerfile 0.24% SCSS 15.33%

castsbrasil's Introduction

CastsBrasil

Esse é o código fonte do site CastsBrasil. CastsBrasil tem como objetivo apresentar screencasts colaborativos de qualidade, sem nenhuma forma de cobrança, apenas com o intuito de difundir a linguagem na comunidade brasileira e facilitar o estudo de iniciantes, intermediários e até mesmo profissionais com casts totalmente em Português.

Configuração Inicial

Esse projeto está sendo desenvolvido usando Ruby 2.3.1. Se você estiver utilizando rvm ou rbenv ele vai selecionar a versão exata em desenvolvimento especificada no arquivo .ruby-version.

  • Crie um arquivo de configuração do banco de dados:
cp config/database.example.yml config/database.yml
  • Execute o comando rake db:migrate para criar todas as tabelas no seu banco de dados.
  • Execute o comando RAILS_ENV=test rake db:migrate para criar todas as tabelas no seu banco de dados de teste.
  • Execute o comando rails s para subir o servidor rails

Configuração inicial com Docker

Você utilizar o Docker para desenvolver e colaborar com o projeto, para isso siga os passos abaixo:

Requerimentos

  • Docker 1.12+
  • Docker Compose

Setup

  • Build:
docker-compose build

-Crie um arquivo de configuração do banco de dados:

cp config/database.example.yml config/database.yml

Desenvolvimento

  • Acesso ao container para desenvolvimento
docker-compose run --rm web bash

Servidor

  • Execute o comando abaixo para subir o servidor
docker-compose up

O projeto está disponível em http://localhost:3000

Testes Build Status

Esse projeto utiliza o rspec como framework de testes principal. Todas as expectations estão de acordo com a nova forma da versão 3.0 do rspec. A suíte de testes é monitarada pelo semaphore app.

Dependências Dependency Status

Esse projeto utiliza o bundler para controle de dependências ruby e o bower para controle de dependências js e css. O bower é utilizado em conjunto com o bower-installer para ter um controle maior dos arquivos que entram no controle de versão. Ambos são monitorados pelo gemnasium.

Controle da Qualidade Coverage Status

Para manter um alto controle de qualidade do código é utilizado o simplecov para mensurar a quantidade de código coberto por testes. Esse controle é monitorado pelo coveralls.

Garantia da Qualidade Code Climate

Para garantir a qualidade, é utilizado um guia de estilos, boas práticas e má praticas. Essa garantia é monitorada pelo Code Climate e pelo houndci. O Code Climate checa por má práticas de programação em relação a estrutura do código enquanto que o Houndci checa má práticas na sintaxe do código, isto é, se a leitura do mesmo não é demasiada complicada.

Documentação Inline docs

Para documentação é utilzado o yardoc que disponibiliza uma api flexível. Para monitoramento da documentação é utilizado o inch-ci.

Gerenciamento de Projeto Stories in Ready

Throughput Graph

Para controle das funcionalidades, bugs, revisão de código e afins é utilizado o waffle que trabalha em cima das issues do github, e disponibiliza um painel para um controle maior.

Discussões Gitter chat

Para discussões relacionadas ao projeto, é utilizado o gitter que disponibiliza um chat em tempo real. Para discussões a longo prazo (assíncronas) é utilizado o google groups.

Triagem de tarefas Open Source Helpers

Você pode acompanhar o projeto utilizando Codetriage. Ao efetuar o cadastro na plataforma, todos os dias você poderá receber um newsletter com algumas tarefas que precisam de ajuda para serem solucionadas.

castsbrasil's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

castsbrasil's Issues

Label mais bem definidos

Temos várias Issues abertas marcadas como in progress, mas não foi criado o pull request, assim não podemos acompanhar o desenvolvimento delas.

Acho que uma das regras deveria ser abrir o pull request o mais cedo possível e só considerar in progress se ele estiver aberto

Tempo limite para discussões

Galera, eu percebi que algumas discussões estão ficando abertas por bastante tempo. Para limitar isso e fazer com que o projeto não fique muito tempo parado eu proponho que as discussões tenham um tempo limite. Eu acho que 7 dias é um tempo bom dado que vão se ter passado pelo menos 1 final de semana (único momento em que algumas pessoas contribuem com open source) além dos dias de semana onde outra pessoas também contribuem.

O que acham?

Keys e Secrets no ENV

Configurar para que as keys e secrets dos serviços de autenticação não precisa estar no controle de versão. O heroku suporta passar váriaveis no ENV. Essa seria uma solução interessante, até porque no momento atual estamos usando o heroku que ja nos disponibiliza essa funcionalidade.

Email Weekly Ruby on Rails

Já existe um Email Weekly de conteúdo Ruby on Rails porém o mesmo é em inglês, a proposta consiste em desenvolver um weekly mensal ou quinzenal, para a comunidade brasileira com conteúdo atual, de qualidade e traduzido.

O Weekly poderá conter material para estudos que abrange Ruby on Rails como:

  • Artigos, guias e publicações em sites e blogs que falam sobre desenvolvimento de aplicações com RoR. Seja na etapa de produção, testes ou deploy.
  • Documentação do Rails
  • Novas tecnologias e ferramentas lançadas no mercado.
  • Experimentos realizados pela comunidade.
  • Eventos

Agradecimentos

Adicionar agradecimentos no README, para aqueles que tiveram a idéia do projeto no facebook e criaram o projeto inicial: RailsCastsBrasil.

Organização da Gemfile

Galera, dei uma organizada na Gemfile nesse meu branch e adicionei a gem better_errors que é bem melhor pra visualizar os erros nas páginas.

Notei que temos factory_girl mas não estamos usando nos testes? Alguém confirma?

Enfim... quem tiver mais sugestões pra gems que possam ajudar no workflow, posta aqui que eu já adiciono na Gemfile.

Fluxo

Qual será o fluxo para:

  • Procurar e assistis casts
  • Postar um cast
  • Mecanismo de aprovação de cast (por pontos e por alguém com permissões)
  • Quais casts mostrar na página inicial?

Aparecendo mais coisas eu vou adicionando aqui. =)

Serviço de Hosting de vídeos

Ae galera, além dos mais famosos como youtube e vimeo. Quais serviços de hosting que são free, e que a galera usa mais pra casts?
Acho que valem listar todos aqueles que dão suporte a fazer upload fora da própria plataforma e que disponibilzam um player para que a gente consiga integrar no sistema.

Linkedin erro de redirect

O omniauth linkedin está encodando a url de redirect de forma que o linkedin não reconhece a url no sistema e por isso diz que não pode fazer o redirect de volta pra aplicação.

Possíveis Soluções:

  • Remover login pelo Linkedin
  • Tentar acertar o bug/problema na gem linkedin-omniauth

Documentar o Projeto

Documentar Classes e métodos não documentados do projeto. Para maiores informações acesse: Inline docs

Quais as motivações para usar o sistema?

Essa dúvida foi levantada inicialmente pelo @GuiCarneiro.

O que eu respondi na issue #45 e que vou colocar aqui para continuarmos a discussão:

O que eu vejo como motivação:

  • Se o sistema for bem utilizado pela comunidade, ao postar casts de qualidade, você estará mostrando para a comunidade que tem conhecimento assim como você faz quando contrinui no github. Só que com o cast você mostra na prática, não só o código. Eu vejo isso como uma oportunidade até para quem ja cria casts em seus próprios sites postar em uma plataforma mais bem visitada e mais bem visualizada.
  • Possibilidade de compartilhar conhecimentos que com o github não são tão possíveis, como deploy e afim. Sempre tem gente com dúvida em relação a deploy. É uma forma de se apontar na comunidade como alguém que tem esse conhecimento e ser reconhecido por isso.

Algo mais pessoal?

Manter Categorias

Criar Crud para controle das categorias relacionadas a um screencast.

Cada Categoria deve ter apenas o atributo nome.

Mídias Sociais

Que tal criarmos a página do Ruby Casts Brasil no facebook e perfil no twitter para já ir criando o público?

Diminuir as opções de Login

Em outros projetos que acompanhei (como dev ou como zoiador), vários que começaram com muitas opções de login acabaram optando por diminuir e deixar o minimo possível, pois com tantas opções a galera (usuários) nunca sabiam por qual fizeram o login e toda hora acabaram fazendo por alguma opção.

Imagino que ficaria mais interessante, só o normal, Facebook e Github e o resto colocar no profile do usuário.
Outro ponto positivo é que mantemos o conceito de "o mais simples possível".

O que acham?

Configurar Teatro.io

Seria interessante configura-lo para que ele nao gere um space pra todos os pull requests mas somente para aquele que quisermos. Dessa forma a gente consegue usar o plano free que eh de 2 spaces. =)

Qualidade dos casts

A qualidade dos casts é algo preocupantes, por isso é necessário que tenhamos um tutorial para ajudar os usuários a fazerem um cast com qualidade.

Inicialmente esse tutorial pode ser feito aqui no wiki mesmo. Fica mais fácil o pessoal colaborar e assim termos algo mais elaborado. Quando tivermos algo bem definido, a gente cria uma nova issue para criar uma página no sistema com esse conteúdo. =)

Link ou Upload de vídeos.

Podemos escolher entre duas opções para as postagens dos vídeos, cada usuário poder fazer Upload para sua conta ou podemos apenas fazer uma 'linkagem' do vídeo, dando assim a possibilidade de postar vídeos vindos do Vimeo, Youtube e afins.
Creio o fato de upload ser um problema em questão uso de Banco de Dados e também sobre a taxa de transmissão do servidor.
O que vocês me dizem pessoal?

Direitos Autorais dos Casts

O @antigui22 levantou esse ponto na issue #58.

Parafraseando:

@antigui22

Agora una coisa que pensei foi, tem que haver ter um termo de concordância, que a partir do momento da postagem o vídeo e o conteúdo relacionado deixem de ser propriedade intelectual da pessoa que fez o cast e que o site ruby cast tem total direito de utilizar o vídeo por tempo indeterminado

@plribeiro3000

Hmmmm. Esse é um ponto interessante @antigui22. Não conheço muito sobre a politíca relacionada a isso mas acredito que temos uma opção mais interessante que é deixar os direitos autorais com o autor e somente usarmos a plataforma como meio de divulgação e de compartilhamento de conhecimento que no caso é o motivo pelo qual a plataforma está sendo construida

@antigui22

agora imagine q o cara comece a fazer algum tipo de curso pra vender ou algo do gênero e peça pra retirar o vídeo? Se for um vídeo de nível de conhecimento alto? Eu penso muito pra frente, pelo oq tenho analisado essa plataforma tem tudo pra ser uma das mais conhecidas entre rubystas dentro de 6meses a 1 ano, e evitar qualquer tipo de problema temos q pensar em termos para que aquele que criou a ideia do site não tenha nenhum tipo de problema

@plribeiro3000

Concordo com esse ponto @antigui22. Mas acredito que isso é uma coisa que nós vamos ter que trabalha de qualquer forma. =s
E de qualquer forma, como você mesmo disse, a plataforma alcançando esse patamar, acho que ninguém vai querer tirar um vídeo de qualidade do ar dado a quantidade de acesso e reconhecimento pela própria comunidade.

Autorização

Modificar esquema de permissões atual para trabalhar com pontuação de acordo com ações a definir ainda.

O esquema de permissões atual deverá ser o seguinte:

  • Administradores (Acesso Total)
  • Usuários
    • Novos usuários (Permissão de visualização somente)
    • Usuários com pontuação (Permissões a definir quando o número de funcionalidades estiver mais bem definido e implementado)

Link de confirmação de cadastro com problema.

Acabei de criar meu registro, recebi o e-mail e na hora que vou confirmar sou direcionado para a tela na qual eu deveria informar meu e-mail para receber uma nova instrução de confirmação. Inception? heh.

db/schema.rb ignorado

Vocês costumam ignorar o arquivo db/schema.rb em projetos open? Já que algumas pessoas vão usar pg e outras sqlite3 isso vai causar alterações nesse arquivo.

Português ou Inglês?

Tenho notado que está rolando uma questão comum em projetos Brazucas, tem hora que é usado português e tem hora que é usado inglês.
Como é um projeto a principio focado 100% no Brasil, que tal padronizar tudo para pt-BR, tanto nos commits como nas Issues. O que acham?

Transformar o projeto em um OpenLMS

Acredito que estamos pensando muito no nosso umbigo criando o projeto como RubyCastsBrasil, acho que podemos focar em fazer uma plataforma de LMS aberta e utiliza-la para montar o RubyCastBrasil.

Assim o fato dela ser aberta vai ajudar muitas pessoas, startups, etc não só com conteúdo, mas também com código.

CONTRIBUTION.md

Documento de contribuição para novos desenvolvedores. Formato aceitado pelo GITHUB.

Modelo de planejamento

Precisamos decidir como vamos fazer. Desenvolvimento ágil, ou algo mais parecido com o waterfall?

Eu prefiro Desenvolvimento ágil porque permite a gente desenvolver sem ficar perdendo muito tempo com discussões as vezes extensas sobre como vai fazer algo que só será feito daqui x meses.

Qual a opinião de vocês @pragmaticivan @ocsjwolf @thiagoramos23 @lucasmpereira ?
Somos em 5 e temos 2 opções então acho que empate não vai rolar. ehheheheh

Remover confirmação de cadastro

Na minha opinião ter confirmar se o email é verdadeiro traz mais desvantagem que vantagens:
1 - Custo de enviar email
2 - O cliente precisa de mais cliques para entrar no site a primeira vez
3 - Tenho que configurar um serviço SMTP para desenvolver

Vantagens:
1 - Cliente não pode usar email falso

Estilização

Cria tema inicial (bem básico) em cima do Bootstrap sem fazer muitas intrusões na forma como ele trabalha para que possamos atualizar essa dependência sem maiores dores de cabeça no futuro.

Framework para Frontend [AngularJS]

Senhores,

Recentemente passamos a utilizar Angular JS lá na empresa e tenho gostado bastante de alguns pontos de ganho:

  1. Ganho de produtividade considerável;
  2. Código HTML LIMPO, sem a necessidade de usar helpers, somente html nativo;
  3. Já contempla e2e testing;

Abraços!

Manter Tags

Criar Crud para controle das tags relacionadas a um screencast.

Cada Tag deve ter apenas o atributo nome.

Database para dev.

Eu prefiro usar PostgreSql para dev, porém posso deixar as 2 gens em dev (sqlite3 e pg). O que vocês acham? Deixar um apenas, ou os 2?

Casts da comunidade

Boa noite.

Estou acompanhando algumas issues como leitor, e não vi nada sobre assunto.

Sobre a qualidade dos casts mínima para ser aprovado.
Digamos que um cast não atingiu a qualidade mínima, mas tem coerência, é algo repetido, desatualizado, não feito da melhor maneira possível, etc... Não seria interessante ter uma área "Casts da comunidade" para esse tipo de conteúdo?

Seria um lugar para conteúdo de "segunda linha". Aumentaria a base de casts sem comprometer a seriedade do projeto. Além de que alguém poderia pegar a ideia de um cast da comunidade para fazer um novo com uma melhor qualidade.

Abraços!

Associar conta do Twitter a um usuario registrado e deslogado

O Twitter nao retorna o email do usuario quando registrado pelo oauth. Por causa disso o sistema não tem como saber se o usuário que esta vindo do Twitter ja foi registrado ou não se ele não estiver autenticado (quando logado a aplicação associa a conta do twitter com o usuário logado).

Possíveis Soluções:

  • Remover suporte a login pelo Twitter
  • Remover login pelo Twitter, e permitir associação da conta quando logado.
  • Pedir o email do cliente quando ele voltar do Twitter e mandar um email para o email dele para que ele confirme essa alteração no perfil dele. (Evita erros de digitação e dar acesso ao twitter para o usuário errado!)

Validade dos podcasts

Bom pessoal, não sei se to criando uma issue inútil, mas acredito que seja legal documentar uma ideia que eu tive hoje.

Acho que seria legal colocarmos uma manutenção nos screencasts. Tipo algum mecanismo pra monitorar se o video está em alguma versão ainda suportada do Ruby/Rails, lançando avisos para o autor e a comunidade atualizarem aquele screencast assim mantemos um conteúdo de qualidade e com atualização continua.

Permissões

O que vocês pensam sobre os screencasts? Quem pode publicar?
Acessar acho que ja ta mais que definido que qualquer um né? heheheh

Eu tinha pensado em algo como:

  • Administrador
  • Postador
  • Usuário

Os usuários podem acessar todos os conteúdos (de graça).
Os Postadores são usuários comuns com permissâo de postar screencasts.
Os administradores podem dar e remover a permissão de postar screencasts.
Os administradores também podem apagar screencasts, caso seja indevido ou algum outro tipo de problema.

Para aumentar a divulgação do projeto, eu pensei em abrir para que qualquer usuário pudesse postar screencasts, mas que usuários que não tivessem a permissão de poster, o screencast dele teria que ser revisto por pelo menos 3 (ou outro número) de usuários com permissão de postar.

Assim, cada usuário teria seus screencasts na sua página pessoal como:

http://rubycastsbrasil.herokuapp.com/plribeiro3000
http://rubycastsbrasil.herokuapp.com/pragmaticivan

E aqueles casts que tivessem uma grande quantidade de likes ou que fosse selecionado pelos admins, iria aparecer na páginal inicial do site.

O que pensam sobre? Têm algo em mente?

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.