Skip to content
YgorPereiraPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gitrics

Uma plataforma de análise de repositórios GitHub que transforma dados de desenvolvimento em métricas e insights acionáveis.

📚 Índice

📖 Sobre o projeto

O Gitrics é uma plataforma desenvolvida para transformar dados de repositórios do GitHub em métricas e visualizações, permitindo acompanhar informações relevantes sobre o desenvolvimento e obter insights para melhorar o fluxo de trabalho e as entregas.

✨ Funcionalidades

  • 🔗 Integração com o GitHub

  • [] 📊 Coleta e análise de dados de repositórios

  • 📈 Dashboard de métricas de desenvolvimento

  • 🔀 Análise de Pull Requests

    • Tempo médio até a aprovação
    • Tempo médio até o merge
    • Pull Requests abertos e fechados
    • Taxa de aprovação
  • 💻 Análise de commits

    • Frequência de commits
    • Distribuição de commits por período
    • Contribuições por desenvolvedor
    • Evolução das contribuições
  • 📝 Análise de Issues

    • Issues abertas e fechadas
    • Tempo médio de resolução
    • Evolução do backlog
    • Distribuição por status
  • 👥 Métricas da equipe

    • Contribuições por membro
    • Distribuição de trabalho
    • Evolução da atividade da equipe
    • Comparação de métricas ao longo do tempo

📋 Pré-requisitos

Antes de executar o projeto, certifique-se de ter instalado:

🗄️ Configuração do banco de dados

O Gitrics utiliza PostgreSQL. Recomenda-se criar um usuário específico para a aplicação em vez de utilizar diretamente o usuário administrativo postgres.

1. Criando o usuário

Acesse o PostgreSQL:

psql -U postgres

Crie um usuário para o Gitrics:

CREATE USER gitrics_user WITH PASSWORD 'sua_senha';

2. Criando o banco de dados

Crie o banco gitrics atribuindo sua propriedade ao usuário da aplicação:

CREATE DATABASE gitrics OWNER gitrics_user;

Conceda os privilégios necessários:

GRANT ALL PRIVILEGES ON DATABASE gitrics TO gitrics_user;

Saia do PostgreSQL:

\q

3. Configure as variáveis de ambiente

No arquivo .env:

PSGRE_USER="gitrics_user"
PSGRE_PASSWORD="sua_senha"
PSGRE_HOST="localhost"
PSGRE_PORT=5432
PSGRE_DB="gitrics"

4. Execute as migrations

Com o banco criado e as variáveis configuradas, execute:

alembic upgrade head

O Alembic aplicará automaticamente as migrations pendentes e criará as tabelas necessárias.

💡 Recomendação: utilize um usuário específico para a aplicação e evite utilizar o usuário administrativo postgres nas configurações do Gitrics. Isso reduz os privilégios disponíveis para a aplicação e melhora a segurança do ambiente.

🚀 Como executar

1. Clone o repositório

git clone https://github.com/YgorPereira/Gitrics.git
cd Gitrics

2. Configure as variáveis de ambiente

Acesse o diretório do backend:

cd server

Crie o arquivo .env a partir do exemplo:

Copy-Item .env.example .env

Configure as variáveis necessárias no arquivo .env.

3. Configure o backend

Instale o uv:

pip install uv

Instale as dependências:

uv sync

Execute as migrações do banco de dados:

alembic upgrade head

Inicie a aplicação:

 uv run uvicorn app.main:app 

Utilize a flag --reload para rodar em modo de desenvolvimento.

4. Execute o frontend

Em outro terminal, acesse o diretório do frontend:

cd client

Instale as dependências:

npm install

Inicie a aplicação:

npm run dev

⚙️ Variáveis de ambiente

O backend utiliza variáveis de ambiente para configurar o banco de dados, autenticação com o GitHub e chaves de segurança.

Crie o arquivo .env a partir do .env.example e preencha os valores necessários.

🧪 Testes

O projeto utiliza Pytest para execução dos testes, separados em unitários e de integração.

Execute os comandos a partir do diretório server:

Todos os testes

uv run pytest

Testes unitários

uv run pytest -m unit

Testes de integração

uv run pytest -m integration

Exibir detalhes da execução

uv run pytest -v

Executar um arquivo específico

uv run pytest tests/auth/unit/test_auth_service.py

Os markers utilizados são:

Marker Descrição
unit Testes unitários, focados em componentes isolados
integration Testes de integração entre diferentes componentes da aplicação

🛠️ Tecnologias

Frontend

Backend

Database

📚 Documentação

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages