Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

BeeCrowd Sync

Extensão Chrome para sincronizar soluções aceitas no BeeCrowd com um repositório GitHub, com autenticação OAuth e API de suporte em Node.js.

Visão geral

O projeto é dividido em dois módulos:

  • Front-end: extensão Chrome (React + Vite) com telas de onboarding, login, seleção de repositório e envio de solução.
  • Back-end: API em Express + Prisma para autenticação com GitHub, listagem de repositórios, criação/atualização de arquivos e estatísticas.

Funcionalidades

  • Login com GitHub via OAuth
  • Seleção do repositório alvo
  • Captura de solução aceita no BeeCrowd via content script
  • Commit de arquivo no GitHub em Beecrowd/<nome-do-problema>.<ext>
  • Estatísticas semanais de submissões salvas

Tecnologias

  • Front-end: React, Vite, React Router, Chart.js
  • Back-end: Node.js, Express, Prisma, Octokit, JWT
  • Banco de dados: PostgreSQL

Estrutura de pastas

BeeCrowd-Sync/
├─ Front-end/   # Extensão Chrome (popup/options, background e content script)
└─ Back-end/    # API, autenticação GitHub e persistência com Prisma

Pré-requisitos

  • Node.js 18+ e npm
  • PostgreSQL
  • App OAuth do GitHub configurado
  • Google Chrome (modo desenvolvedor para carregar extensão)

Configuração do Back-end

  1. Acesse a pasta:
    cd Back-end
  2. Instale as dependências:
    npm ci
  3. Crie um arquivo .env com as variáveis:
    • DATABASE_URL
    • GITHUB_CLIENT_ID
    • GITHUB_CLIENT_SECRET
    • JWT_SECRET
    • PORT (opcional, padrão: 3000)
    • STATS_RETENTION_DAYS (opcional, padrão: 90)
  4. Rode as migrations:
    npx prisma migrate deploy
  5. Inicie o servidor:
    node src/server.js

Configuração do Front-end (Extensão)

  1. Acesse a pasta:
    cd Front-end
  2. Instale as dependências:
    npm ci
  3. Gere o build:
    npm run build
  4. No Chrome, abra chrome://extensions, ative Modo do desenvolvedor e clique em Carregar sem compactação.
  5. Selecione a pasta:
    Front-end/dist
    

Observação: o front e o background usam http://localhost:3000 para acessar a API.

Comandos úteis

Back-end

npm test

Atualmente o script de teste padrão não possui testes implementados.

Front-end

npm run dev
npm run build
npm run preview

Fluxo de uso

  1. Abrir a extensão
  2. Fazer login com GitHub
  3. Selecionar repositório
  4. Abrir uma submissão aceita no BeeCrowd
  5. Clicar em SynK the solution! para enviar ao GitHub

About

Extensão focada em automatizar o fluxo de submissões do BeeCrowd para o GitHub, integrando front-end em React, backend em Express.js e persistência com PostgreSQL.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages