Giter Club home page Giter Club logo

gorails's Introduction

GORAILS

Esse é o código fonte do site GORAILS. GORAILS tem como objetivo desenvolver um portal aonde todos os desenvolvedores de goiás e do brasil também possam se unir para beneficar a comunidade rails.

Configuração Inicial

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

bundle install
  • Crie um arquivo de configuração do banco de dados:
cp config/database.example.yml config/database.yml
  • Crie um arquivo de configuração da aplicação:
cp config/application.example.yml config/application.yml
  • Execute o comando rake db:create para cria seu banco de dados.
  • Execute o comando rake db:migrate para criar todas as tabelas no seu banco de dados.
  • Execute o comando rake dev:setup para popular o banco de dados com os dados basicos.
  • Execute o comando rails s para subir o servidor rails

Cloudinary

  • Acessar o site: https://cloudinary.com/ e criar uma conta (Sign up for Free). Esse é um serviço de upload de imagens.
  • Substitua as chaves do arquivo application.yml pelos dados fornecidos pela cloudinary:
application.yml => Cloudnary Dashboard
CLOUD_NAME => Cloud name
API_KEY_CLOUD => Api key
API_SECRET_CLOUD => Api Secret

Testes Build Status Coverage Status Open Source Helpers

Dependências Dependency Status

Esse projeto utiliza o bundler para controle de dependências ruby. Projeto também monitorado pelo gemnasium.

Engines

Engines basicamente sao partes de uma aplicacao rails que esta em outro container, desenvolvemos esta parte de codigo e encapsulamos ela como gema, assim podemos utilizar um codigo em varios lugares e tendo somente uma base de codigo para dar manutencao e evoluir. Nossa intencao contruindo as funcionalidades da gorails como engines, e de que todos alem de se beneficiar com a gorails e oque ela traz para nos de beneficios possa utilizar o codigo gerado aqui na forma de contribuicao em seus projetos pessoais ou profissionais de uma forma facil. Resumindo voce ajuda a comunidade e se ajuda ao mesmo tempo!

Engines podem ser de dois tipos Full ou Mountable a diferenca e que --mountable cria uma engine com um namespace isolado e a opcao --full cria uma engine que compartilha do mesmo namespace da aplicacao principal. Na gorails normalmente optamos por construir uma engine --full e as vezes vemos a necessidade de colocar nos mesmos o namespace, porque precisamos diferencia tabelas que podem vir a se repetir em determinados lugares.

Easy Static Pages

Engine de paginas semi estaticas, serve para cadastrar aquelas paginas staticas de sua aplicacao , mas voce pode editar o conteudo delas. Para que seja mais facil quando voce necessitar de uma mudanca nao ter que editar no html.

Endereco da engine: easy_static_pages

Go Blog

Engine de blogs, parte de gerencia e de listagem de blog posts, tambem inclui tags.

Endereco da engine : go_blog

Go Jobs

Engine para cadastrar e manter vagas de trabalho para a comunidade, todos os usuarios podem cadastrar vagas, os novos cadastros passam pela avaliacao dos moderadores para serem publicados.

Endereco da engine: go_jobs

Go Gamification

Engine para implementar gamification no projeto, a intencao e que com a gamification os usuarios fiquem mais incentivados a produzir conteudo para a ferramenta ajudando a comunidade a ter um conteudo mais recente e de mais qualidade. A engine implementa um sistema de recompensas com medalhas, sempre que o usuario atinge uma meta ele ganha uma medalha, e junto com a medalha ele ainda pode ganhar pontos de experiencia e tambem algumas unidades monetarias da comunidade. Unidades monetarias que serao utilizadas na loja da comunidade.

Endereco da engine: go_gamification

Como trabalhar com engines localmente

Apos baixar e executar o projeto gorails, se voce quiser trabalhar com estas partes de codigo que estao separadas em engines voce tambem precisa baixalas em sua maquina. Apos efetuar o fork de cada engine listada acima para que voce as tenha em seu repositorio pessoal. Voce pode baixar todas para sua maquina do seu repositorio.

em sua estrutura de trabalho Projetos > gorails, crie outra pasta Projetos > engines e clone seus repositorios que voce efetuou o fork

cd Projetos

mkdir engines

git clone https://github.com/SeuUsuario/easy_static_pages.git

git clone https://github.com/SeuUsuario/go_blog.git

git clone https://github.com/SeuUsuario/go_jobs.git

git clone https://github.com/SeuUsuario/go_gamification.git

Apos baixar todas as engines para sua maquina voce agora pode ir ao Gemfile da gorails e apontar que as gemas das engines estao nas pastas que voce definiu como a seguir.

gem 'easy_static_pages',path: '/home/SeuUsuario/Projetos/engines/go_blog'
gem 'go_blog' ,path: '/home/SeuUsuario/Projetos/engines/go_blog'
gem 'go_jobs',path: '/home/SeuUsuario/Projetos/engines/go_jobs'
gem 'go_gamification',path: '/home/SeuUsuario/Projetos/engines/go_gamification'

Apos isto rode novamente os comandos bundle install, e bundle update.

Agora estas gemas estao rodando com o codigo local. Qualquer mudanca nos arquivos sera refletida na aplicacao principal.

Go Tags

Engine de tags para uso no projeto ainda nao foi desenvolvida, esta integrada no codigo da go blog, atualizar esta secao depois.

Go Attachments

Engine de attachments para uso no projeto, ainda nao foi desenvolvida, esta integrada no codigo da gorails.

Controle da Qualidade

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

####Diagrama UML PDF - Gerado em 11/05/2016 - 18:50 Para gerar um novo diagrama atualizado em sua maquina basta rodar o comando rake

rake uml:generate

Gerenciamento de Projeto Stories in Ready

Throughput Graph

Discussões

Para discussões relacionadas ao projeto, é utilizado o Discord que disponibiliza um chat em tempo real.Instale o programa e clique no link para entrar no chat.

Doações 💰

Neste momento os responsáveis, por receber e prestar contas sobre as doações são @jcottobboni e @helioborges

Doações pelo PicPay

Procurar o usuário @helioborges, e efetue a Doação.

Doações pelo Mercado Pago

Doar R$ 200,00 / Doar R$ 100,00 / Doar R$ 50,00 / Doar R$ 20,00 / Doar R$ 10,00

gorails's People

Contributors

augustocbx avatar benhur10cp avatar bitdeli-chef avatar caiofilipemr avatar codetriage-readme-bot avatar fabio-araujo avatar helioborges avatar jcottobboni avatar jcserracampos avatar johnnypadilha avatar jonatasrancan avatar juuh42dias avatar lawih avatar lazaroalvarenga avatar leandro avatar marceloperini avatar marcosadrianoti avatar mgswolf avatar pedrohenriquealves avatar plcosta avatar ramonpm avatar ricardoventrilho avatar saviocord avatar thiagoaugusto avatar washingtonbezerra32 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gorails's Issues

Criar estrutura de news/fonte de noticias

Esta area sera diferente do blog, deve puxar noticias de alguma fonte que seja relevante para nos, assuntos de ruby, ruby on rails, novidades e coisas interessantes para os devs.

pode ser uma integracao com medium, twitter, ou outra fonte. Quem pegar a tarefa podemos discutir sobre.

Criar Links Úteis

Depende da tarefa #7

Esta área e para funcionar como o cadastro de links uteis aonde as pessoas que buscam informação sobre rails podem encontrar coisas legais como tutoriais , sreencasts.

Deve conter

category_id integer
name caracter varying (255)
link caracter varying (255)

deve conter validação de url para o campo link. Deve ordenar por categoria em ordem alfabética na exibição

Inserir informações do projeto no site

O website deve conter uma área que defina que ele e um projeto open source, e esta área deve conter as informações para que qualquer usuário que acesse e queira começar a contribuir com o projeto saiba como fazer isso.

Criar Cadastro de interesse em brindes

Depende da issue #31

Criar cadastro de interesse em brindes do evento, para participar do sorteio. Mostrar alerta ao usuário apos ele se inscrever no evento.

Deve apresentar uma tela aonde o usuário escolhe os itens que deseja concorrer no evento dentre os cadastrados para o mesmo.

Incluir Gravatar

Se o usuario não tiver cadastrado uma foto na inscrição do evento tentar puxar o gravatar dele.

Limpar layout

Nossa nota no code climate esta muito baixa devido a erros e códigos ruins de plugins do layout usado. Retirar todos os plugin e javascrips que não estão sendo usados

Adicionar campos ao usuario

Adicionar cpf aos dados do usuário, este campo deve ser preenchido no editar do usuário. Ele não e obrigatório no cadastro para acessar o site, porem para que o usuário se inscreva no evento este campo deve ser preenchido. Criar método no registrar que se este campo não estiver preenchido redirecione o usuário para tela de editar do perfil dele com a mensagem e necessário preencher o cpf antes de inscrever-se no evento.

Criar Estrutura para upload de documentos

Criar estrutura para usar com paperclip/carrierwave para upload de documentos(images, pdfs, etc).

Deve ser possível fazer upload para qualquer classe do sistema

Criar o componente com as partials para ser possível adicionar múltiplos documentos e visualizar os documentos adicionados.

Criar Cadastro de Eventos

Criar cadastro de eventos com titulo, data, descrição, local, limite de participantes, e possibilidade de inscrição dos usuários no evento.

Criar Testimonials Site

Criar crud de depoimentos website, usuário logado terá com enviar um depoimento. Os depoimentos dependem de avaliação para serem publicados. Tela de index deve ter um botão aprovar para publicação seta um boolean.
Listar na pagina principal os depoimentos que estão aprovados.

Criar Patrocinadores/Apoiadores

Depende da tarefa #5
Criar CRUD para apoiadores, eles podem ser de três tipos(patrocinadores, realização, apoiadores)
o cadastro deve conter o basico:
name caracter varying (255)
link caracter varying (255)
order integer
event_id
site boolean
nested documentos poder adicionar a imagem do patrocinador atentar-se ao tamanho das imagens geradas.

Um patrocinador, realizador e apoiador pode ser geral do site ou de um evento especifico. Eventos terão listagem de patrocinadores e apoiadores e o site terá no footer uma listagem dos apoiadores .

Criar Tutoriais

Este funcionalidade será para que qualquer usuário do site possa postar/ler/avaliar/propor mudanças/ de tutoriais.

Um tutorial será um texto postado que explica como fazer certa "coisa", verificar no layout usado one ui tem uma área que define layouts de código que esta área possuirá.

Cadastros necessários para efetuar esta tarefa, tags, categorias, temas.

Tags => ["rails","ruby","Web"]
Categoria => ["Noticias", "Tutoriais","ScreenCasts"]
Temas => ["Gorails","Atualizações","Rails","Ruby","Intalação",]

Categories
has_many :themes

Themes
belongs_to :category

Deve haver um novo perfil moderator, este perfil será responsável por avaliar todos os tutoriais postados por pessoas, quando uma pessoa que não e um moderator posta um usuário o campo published deve vir false, somente o moderator ou admin poderão publicar este tutorial, podendo edita-lo antes da publicação.

Este componente deve ser desenvolvido em dois lugares backend e frontend, views diferentes para diferentes usuários e pessoas logadas ou não.

Um tutorial deve conter uma área lateral que sejam os links para os tópicos dentro do mesmo.
Deve ser possível criar um tutorial a partir de outro tutorial, copiar o mesmo e editar as informações, isto servira por exemplo um tutorial de configuração do ambiente rails no mac, pode conter uma variação de como configurar no unbuntu, estas versões devem ser linkadas, para que seja fácil o usuário encontra-las.
um tutorial deve ter tabs ou outra estrutura que mostre as variações do mesmo

Esta função deve ter no show um interpretador de markup language , uma boa gema a ser utilizada e a redcarpet. e no edit pode se usar o bootstrap editor markdown para facilitar a formatação do texto. E necessário o markdown pois os tutoriais conterão área de códigos.

Um post deve pertencer a um tema, deve conter os campos titulo, texto, autor, publicado, deve conter comentários.

Deve ser possível inserir tags nos posts

Criar Estrutura blog

Criar crud blog de noticias, estas serão referentes a assuntos interessantes que queremos divulgar, eventos, cursos, novidades(raisl, ruby, dev,etc).

Inserir Layout Devise

Inserir layout para partials de cadastro, registro e recuperação de senha da devise.

Criar Estrutura de Autenticação

Criar estrutura de autenticação na aplicação, com Devise, para que seja possível o registro e login de usuários. Criar estrutura com CanCan e rolify para tipos de regras.

Documentar metodos e classes existentes

Na seção documentação do readme existe um badge que leva ao inchi-ci.org , usar ele para verificar que falta na documentação do sistema e providenciar.

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.