Giter Club home page Giter Club logo

issueai's Introduction

OpenDevUFCG chat on Discord

Este repositório contém o código que faz o portal da OpenDevUFCG.

Objetivo

Objetivo do opendevufcg.org é ser um site de apresentação para qualquer um que queria saber quem é a OpenDevUFCG, contendo informações sobre o que fazemos, nossos valores, e também uma listagem de projetos e maintainers atuais.

A filosofia desse projeto é ser simples sempre!

Como funciona

O site é feito utilizando apenas o essencial, Javascript, HTML e CSS. Caso não conheça essas linguagens e como elas se comunicam, veja aqui.

Você pode encontrar o código na pasta docs/. Caso queira entender melhor do código, veja nosso Contributing

Desenvolvimento

Caso deseje fazer alterações no código, você pode rodar o site na sua máquina, basta apenas que você tenha algum browser. Recomendamos que você faça um Fork do repositório e o Clone para sua máquina:

git clone https://github.com/<seu_usuario>/opendevufcg.org

Substitua <seu_usuario> pelo seu usuário do github.

Após ter o código baixado, abra o arquivo docs/index.html no navegador de sua preferência, agora é só começar a codificar que você irá poder ver suas alterações no navegador!

Como Contribuir

Veja nosso CONTRIBUTING e o Código de Conduta.

issueai's People

Contributors

anacarolinacv avatar arthurferrao avatar douglaslimaxx avatar evelew avatar fanny avatar felipedaf avatar jessescn avatar joaopslins avatar joserenan avatar jrobsonjr avatar juanbarros2 avatar juliafealves avatar juliobguedes avatar laka3000 avatar leandraos avatar lucasmedeiros avatar lucianerick avatar luismafra avatar mariana-mendes avatar matheusps avatar monuelo avatar mxlysb avatar paulojbleitao avatar richecr avatar rodrigoec avatar thayannevls avatar viniciusbds avatar vinifarias avatar wandersondossantos avatar wdtamagi 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

Watchers

 avatar  avatar  avatar  avatar

issueai's Issues

Espaço para ideias de novos projetos

Talvez pudesse haver um espaço para sugestões de projetos.

Justificativa: às vezes temos boas ideias de projetos, infelizmente não temos tempo para desenvolver, mas queremos muito que exista.

Podem surgir boas ideias e pessoas interessadas em desenvolver :)

Iniciar projeto e configuração

  • Criar aplicação react
  • Integrar GithubApiV4 e receber token do desenvolvedor
  • Definir e documentar escopo do token necessário

Fazer página 'Quem somos?'

em quem-somos/ tem que se ter uma descrição básica e também uma listagem de todos os membros da organização.

  • Fazer query para obter membros da organização

  • Mostrar os membros

  • Contagem de membros

Site do OpenDevUFCG

Queria relembrar da ideia inicial do IssueAi

Nas conversas de corredor, a gente falou sobre o IssueAi ser uma plataforma pra ajudar pessoas de CC na UFCG a achar projetos open source pra contribuir filtrando por linguagem, tecnologia, nível de dificuldade (iniciante, médio, avançado... baseado nas cadeiras de CC na UFCG msm) e etc

Desenvolvendo o IssueAi, viu-se a necessidade de criar um site para a organização OpenDevUFCG. A ideia é dar uma cara para nossa organização, uma single-page inicial, e depois algo parecido com "blog" onde poderíamos postar updates e eventos.

Algo que seja fácil de apresentar para as pessoas entenderem a ideia da organização.

Erro no console

Ao entrar no site appspot ou localmente, aparece o seguinte erro no console:

Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of 'RepositoryGrid'.

O que será o IssueAi

Nas conversas de corredor, a gente falou sobre o IssueAi ser uma plataforma pra ajudar pessoas de CC na UFCG a achar projetos open source pra contribuir filtrando por linguagem, tecnologia, nível de dificuldade (iniciante, médio, avançado... baseado nas cadeiras de CC na UFCG msm) e etc... Inicialmente a gente teria os projetos que a gente citou no README.md (qualquer um pode adicionar mais) mas a ideia é que mais na frente as pessoas cadastrem seus projetos na plataforma e digam algumas informações sobre ele, pra gente conseguir filtrar e etc... o que vocês acham???

Adicionar descrição em Equipe

Somos um grupo open source, e não faria muito sentido manter uma seção de equipe, afinal, equipe são todos os contribuidores. Dessa forma, creio fazer sentido adicionar uma breve descrição explicando o motivo daquelas pessoas estarem ali (o core)

Licença

Costumo escolher licenças de maneira descontraída, mas acho que talvez valha a pena uma pequena discussão. A licença que usamos aqui, pode servir de default para projetos futuros

Talvez a GPL v3.0 seja a mais indicada, acho que o que eu teria a reclamar é que obriga aos que usarem nosso projeto a usarem a mesma licença

#1

Adicionar Hint no site

Ao colocar o mouse sobre os ícones (as estrelas, o talher, etc), deveria aparecer algo que informe ao usuário o que aquele contador significa, uma espécie de hint ou tooltip

Número de cards de projeto não preenchem a tela

Descreva o bug
O IssueAi faz a requisição de 10 repositórios inicialmente, e essa quantidade nem sempre preenche a tela, dando uma sensação de quebra.

Comportamento desejado
Que o número cards por coluna fossem iguais sempre que possível.

Capturas de tela
Screen Shot 2019-10-02 at 21 40 48

README

Um readme com a cara inicial do projeto, assim como guias de como usar e contribuir

Refactoring: Organização do código

Proposta

Venho aqui propor uma nova estrutura de pastas/códigos para essa aplicação visando uma melhor organização, mais intuitiva, usando boas práticas de clean code. Se gostarem, eu mesmo faço a mudança, aproveitar que a aplicação está pequena e da pra fazer essa mudança.

Estrutura

Pastas:

  • public/ -> pasta com o template da aplicação.
  • src/ -> o código em si.
    • src/components/ -> pequenos componentes que fazem parte das páginas.
    • src/pages/ -> páginas da aplicação.
    • src/config/ -> configurações específicas, exemplo do Reactotron.

Libs:

  • styles-components -> usar css dentro do js da uma flexibilidade muito boa, e da para usar a sintax do Sass.
  • babel-plugin-root-import -> poder usar "~" nas importações sendo equivalente ao src/, evitando aquelas sequências de pontos ("../../../").
  • reactotron -> aplicativo que ajuda na parte de debugging.

Código:

  • usar react-hooks ao invés de classes.
  • diminuir o uso excessivo de divs e usar tags mais específicas, isso é muito importante para acessibilidade. aqui um pouco sobre.

Estrutura de pastas

Conceito de times

Pensei em levar o conceito de times para ter um melhor aproveitamento da comunidade. Tipo assim: Tenho um problema com vue e não sei como resolver ele. Independente de meu time ser formado em vue ou não, certamente terá pessoas que programem outros projetos em vue e talvez possa responder a minha questão mais de perto. Aí que entrariam os times. Os usuários poderiam ir se inscrevendo em times que pudessem ajudar e isso facilitaria na hora de tirar dúvidas que não é possível simplesmente procurando em um stackoverflow da vida.

Dito por @JuanBarros2 na #13

Tamburetei

Tamburetei é um repositório que vai te ajudar a fazer de tamburete aquela cadeira de CC. A ideia é que pessoas que já pagaram as cadeiras ajudem que está pagando.

Agora vem o Como? da questão.

Ideias que pensei:

  • MDs contendo Tips e Hacks, que no caso seriam links muito úteis, ou coisas como os scripts que usam em LEDA
  • Seria arriscado colocar leites? @Fannyvieira e @JuanBarros2 viram a necessidade de um repositório colaborativo para leites, esse poderia fazer parte
  • Talvez padronizar os textos que cada disciplina tem que ter, imagino de cara os "Hacks e Tips", tbm algum como "Dificuldades e como superei", talvez um "Como estudar" para aquela cadeira em especifico
  • Muito importante ter um código de conduta e um manual bem definido de como pode se colaborar, só não sei cm ainda
  • De alguma forma incentivar a conversa por issues nesse repositório, para que as pessoas consigam discutir o que mais ajudou naquela cadeira

Primeira versão, como fazer

Nossos objetivos:

  • Listar os repositórios da organização e os que apoiamos
  • Adicionar separação dificuldades de codificação para cada projeto
  • Fazer um deploy simples em algum canto

Discussão: Com o que e como será feito.

Sugestão: React e Github Api. React porque apesar de simples as tasks atuais, possibilita o crescimento e flexibilidade da aplicação no futuro.

Se entramos em acordo, começamos a separação de issues daqui.

Fazer página para 'Junte-se a nós'

Descrição da melhoria:
Criar uma pagina/junte-se com informacoes detalhadas sobre como ter o seu repositório apoiado por nós, e sendo assim exibido na nossa lista.

Fazer botão de "Ver mais"

image

Ele serve pra carregar mais repositórios na listagem.

Seria necessário deixar ele mais bonito e também responsivo, tentando seguir o tema atual.

Mudar direção de opções do menu em telas menores

Atualmente em telas menores o "Quem somos?" e "Contribuir" ficam na vertical
Screen Shot 2019-10-02 at 22 18 27

Há espaço para eles ficarem lado a lado em algumas telas pequenas, e é mais agradável visualmente.

O que pode ser feito: Quando pode, os items do menu ficam na mesma linha, quando não cabe na tela, se quebra para ficar um abaixo do outro. Isso pode ser feito usando Flexbox

Adicionar loading quando está carregando os projetos

Seria bom quando estamos fazendo requisição para pegar a lista de projetos, e está resolvendo a promise, apareça uma animação informando que está carregando para página não ficar vazia.

Extra: O botão "Ver mais" poderia ter uma animação de carregando quando clicasse nele

Build não está funcionando

Ao tentar rodar yarn build, estou tendo o seguinte erro:

yarn build v0.24.5
$ webpack --mode production 
Hash: 85cd21ee556498782ccf
Version: webpack 4.24.0
Time: 6856ms
Built at: 11/19/2018 8:38:30 PM
 2 assets
Entrypoint main = style.6d8465721f63a8eb4fd4.css bundle.85cd21ee556498782ccf.js
  [3] (webpack)/buildin/global.js 489 bytes {0} [built]
 [18] (webpack)/buildin/module.js 497 bytes {0} [built]
 [52] multi react-dev-utils/webpackHotDevClient ./src/index.js 40 bytes {0} [built]
 [65] (webpack)/buildin/amd-options.js 80 bytes {0} [built]
[136] ./src/index.css 1.21 KiB {0} [built]
[137] ./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader!./src/index.css 39 bytes {0} [built]
[140] ./src/index.js + 27 modules 63.8 KiB {0} [built]
      | ./src/index.js 371 bytes [built]
      | ./src/lib/github.js 1.98 KiB [built]
      | ./src/lib/data.js 283 bytes [built]
      |     + 25 hidden modules
    + 156 hidden modules

ERROR in bundle.85cd21ee556498782ccf.js from UglifyJs
undefined
Child html-webpack-plugin for "index.html":
     1 asset
    Entrypoint undefined = index.html
    [0] ./node_modules/html-webpack-plugin/lib/loader.js!./src/index.html 722 bytes {0} [built]
    [2] (webpack)/buildin/global.js 489 bytes {0} [built]
    [3] (webpack)/buildin/module.js 497 bytes {0} [built]
        + 1 hidden module
Child mini-css-extract-plugin node_modules/css-loader/index.js!node_modules/blueprint-css/dist/blueprint.min.css:
    Entrypoint mini-css-extract-plugin = *
       2 modules
Child mini-css-extract-plugin node_modules/css-loader/index.js!src/components/app/App.css:
    Entrypoint mini-css-extract-plugin = *
       2 modules
Child mini-css-extract-plugin node_modules/css-loader/index.js!src/components/commons/header/Header.css:
    Entrypoint mini-css-extract-plugin = *
       2 modules
Child mini-css-extract-plugin node_modules/css-loader/index.js!src/components/commons/repository/Repository.css:
    Entrypoint mini-css-extract-plugin = *
       2 modules
Child mini-css-extract-plugin node_modules/css-loader/index.js!src/components/projects/ProjectsPage.css:
    Entrypoint mini-css-extract-plugin = *
       2 modules
Child mini-css-extract-plugin node_modules/css-loader/index.js!src/index.css:
    Entrypoint mini-css-extract-plugin = *
    [0] ./node_modules/css-loader!./src/index.css 214 bytes {0} [built]
        + 1 hidden module
error Command failed with exit code 2.

Como fazer a paginação de repositórios

Para fazer a paginação, é preciso acessar o atributo HasNextPage e endCursor. Tendo o HasNextPage você sabe que tem uma página a frente e endCursor vai indicar a sua query de onde ele pode começar a próxima requisição tendo até onde a sua última foi.

image
image

Porém com a query que temos, cada cursor fica no seu repositório/organização específico que foi realizada a pesquisa.

Como se poderia implementar para ter um botão de ver mais na tela, e daí ele carregaria mais repositórios dependendo desses Cursor?

Configurar bot para gerenciar o controle de issues

Lendo o readme, eu vi o problema de você ter que ficar checando se a issue já existe, mas existem algumas ferramentas pra fazer esse controle, seria bom darmos uma pesquisada e se for o caso configurá-la aqui.

Criar nova seçao para exibiçao dos mentores dos projetos

Descrição da melhoria:
Seria legal conseguir identificar quais sao os mentores de cada projeto que o Issueai apoia, para ajudar os contribuidores saberem a quem recorrer.

Como ela pode ser implementada:
Uma nova pagina /mentores seria desenvolvida, onde seriam listados os mentores dos projetos que apoiamos, essa pagina seria referenciada no menu do nosso projeto.

Obter dados dos repositórios e mostrar

  • Criar Repository componente
  • Fazer query que a partir do nosso, recupera os repositórios e seus dados da githubAPI
  • Criar modelo do Json de repositórios
  • Consumir do Json para fazer a pesquisa de repositórios na github API
  • Mostrar repositórios com informações na tela:
    • Nome do repositório
    • Número de stars, forks, issues e PRs
    • Dificuldade(Definida por nós no Json)
    • Descrição

Novo modelo de adicionar projetos apoiados

Agora o nosso site utiliza desse arquivo para mostrar os projetos que apoiamos.

É preciso informar no CONTRIBUTING.md e no README.md que essa é a nova forma de incluir um projeto, e também não esquecer de documentar mais sobre os níveis de dificuldades e requisitos necessários para o projeto ser aceito

Criar um CONTRIBUTING.md

Necessário a criação de um CONTRIBUTING.md contendo guias de como rodar o projeto, e regras para abrir issues e pull requests, especificando a necessidade do código e commits serem em inglês.

O que mostrar na palestra da Semana do fera

Iremos ter uma palestra de provavelmente 50min~60min na semana do fera, com o intuito de mostrar o OpenDevUFCG como uma iniciativa estudantil. Essa issue será feita de discussão pra isso.

O que mostrar? Como mostrar? Como organizar? Quais ideias vocês tem?

Repositório para tutoriais e conteúdos sobre Ciência de Dados

Tem algum tempo que eu havia comentado com @juliobguedes sobre como o conteúdo de data science é espalhado e de difícil acesso em alguns casos. Sempre é uma dor de cabeça encontrar tutoriais sobre visualização de dados, utilização de algumas ferramentas de análise e predição de modelos e sempre foi um tema muito querido por nós dois. Chegamos até a criar uma ideia de blog para desenvolver esses conteúdos, mas acabamos deixando na gaveta por um tempo por falta de uma plataforma que ajudasse a expor esse conteúdo. Além disso, seria difícil manter o repositório só os dois, pois não teriamos tempo suficiente pra dedicar toda semana a um post. Daí lembrei da ideia e pensei que poderia ajudar também no Tamburetei. Acredito que existam outras pessoas que também possam compartilhar tutoriais e assuntos importantes sobre visualização, análise, scrapping... Pensei em convidar essas pessoas para ajudar a manter um blog mais robusto contendo esses diversos assuntos da ciência de dados. Poderíamos ter contribuições de outros interessados tbm (@Fannyvieira 😄 ).

Plataforma para solucionário da Poscomp

Pensando na facilidade de reunir provas+soluções da poscomp e aliado com a proporção de pessoas que a opendev está atingindo, acho interessante o desenvolvimento de um site para reunir solucionários. Inicialmente, pensei na poscomp por ter escala nacional e é o exame realizado para entrada de alunos no mestrado da UFCG, mas para próximos passos, poderia daptar também para o Enade, como exemplo. O que vocês acham?

Informações detalhadas sobre repositórios

Ao clicar no card de um repositório, poderia ir para outra tela onde mostraria stats daquele repositórios com algumas visualizações básicas

Algo como
image

Também os membros desse repositório, quantidade de contribuintes, linguagem e etc.

Aproveitar o espacamento do header em telas pequenas

Descrição da melhoria:
Em algumas telas, os componentes do header podiam ser exibidos na mesma linha, mas sao truncados.

Como ela pode ser implementada:
alteracao de algumas propriedades do css do Header, como flex-wrap e margins.

Imagens:

image

Nome da organização [OpenDevUFCG]

OpenDevUFCG já soa bom o suficiente pra mim. Mas fico pensando se alguém tem alguma ideia menos americanizada, e mais brasilerada.

A ideia é que passe a ideia que somos o movimento open source da ufcg, any ideas?

Criação de um HashRouter para as rotas do menu

Descrição da melhoria:
Fazer com que as rotas, ao invés de serem um simples Switch, agora sejam compostas por um HashRouter.

Necessidade da melhoria:
Creio que seria a forma mais fácil de resolver vários problemas com o Github Pages, e algumas rotas não estarem sendo acessíveis.

Como ela pode ser implementada:
O arquivo Routes.js ainda poderia conter o Switch (principalmente para implementação de uma página de erro 404), mas agora teria um componente mais externo que o englobaria: o HashRouter. Com isso, agora teria uma # no caminho da URL, como é o Glossário.

Leites, um problema?

Repositórios de implementações antigas de cadeiras como LEDA são os mais comuns na cadeira de computação. Também como compartilhamento de leites como o GALHERA-CC. Também é o mais fácil de se ter contribuição dos alunos, e também ajuda muita gente.

Acho que seria meio estranho a gente deixar esses tipos de repositórios de fora da organização... O problema é como fazer isso não ser visto com maus olhos. Citei o Tamburetei, mas algumas pessoas vieram comentar comigo se isso dá certo ou não.

O que acham? Publicar leites e implementações antigas de roteiros de LEDA, ou cadeiras como P2 é um problema? Tem alguma ideia de como a gente pode fazer diferente dos repositórios que já existem?

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.