2026.1 MeasureSoftGram-Service
August 21, 2026 · View on GitHub
Badges
O que é
The MeasureSoftGram-Service is responsible for containing and manipulating MeasureSoftGram data: metrics, configuration goals, analyzes performed, etc. It uses the MVC layer pattern for building and organizing the service.
How to use Service
How to run Service
1. Configure as variáveis de ambiente
A pasta env-vars/ é gitignored (contém credenciais). O repositório traz uma pasta env-vars-example/ com os templates dos arquivos de ambiente. Antes do primeiro docker compose up, copie o exemplo:
cp -R env-vars-example env-vars
Os arquivos esperados em env-vars/ são:
.postgres.env— credenciais do Postgres (host, db, user, port, password).service.env—DEBUG,SECRET_KEY,GITHUB_CLIENT_ID,GITHUB_SECRET, etc.
Edite os valores que precisar (em desenvolvimento, os defaults do env-vars-example já funcionam).
Nota: em semestres anteriores o
docker-composeliaenv-vars-example/diretamente. A partir desta release a separaçãoexample/×env-vars/é obrigatória — o caminho./env-vars/.postgres.envestá fixado emdocker-compose.yml.
Atalho:
make envfaz ocp -R env-vars-example env-vars(emake setupjá copia antes de subir). Mantemos a pastaenv-vars/em vez de um único.envna raiz porque os caminhos./env-vars/.service.enve./env-vars/.postgres.envestão fixados nodocker-compose.yml.
1.1. Configurar o GitHub OAuth App (login com GitHub em dev)
Os defaults de GITHUB_CLIENT_ID / GITHUB_SECRET no env-vars-example/.service.env são placeholders (CL13NT1D / S3CR3T): a API sobe, mas o login real com GitHub só funciona com um OAuth App próprio. Para habilitá-lo em desenvolvimento:
-
Acesse GitHub → Settings → Developer settings → OAuth Apps → New OAuth App (https://github.com/settings/developers).
-
Preencha:
- Application name: livre (ex:
MeasureSoftGram (dev)). - Homepage URL:
http://127.0.0.1:3000 - Authorization callback URL:
http://127.0.0.1:3000— precisa bater com oLOGIN_REDIRECT_URL. O backend usa esse valor comocallback_urlna troca docode(src/accounts/views.py); em dev o callback é o próprio frontend, que recebe o?code=do GitHub e o repassa ao backend.
- Application name: livre (ex:
-
Clique em Register application e gere um client secret.
-
Cole os valores em
env-vars/.service.env:GITHUB_CLIENT_ID=<client id do OAuth App> GITHUB_SECRET=<client secret gerado> LOGIN_REDIRECT_URL=http://127.0.0.1:3000 -
Suba ou reinicie o service (
make up/docker compose up).
Os scopes (read:user, user:email, read:project, read:org, repo) já estão definidos no backend (SOCIALACCOUNT_PROVIDERS em config/settings/base.py); não precisam ser configurados no OAuth App.
Produção: use um OAuth App separado, com a Authorization callback URL apontando pro domínio real (ex:
http://msgram.lappis.rocks) e as credenciais noenv-vars/.service.envdo servidor. Os placeholders de PROD estão comentados noenv-vars-example/.service.env.
2. Suba os containers
docker compose up
Em segundo plano:
docker compose up -d
3. Hot-reload em desenvolvimento
Esta release adiciona develop.watch no docker-compose.yml. Em vez de reconstruir manualmente a cada mudança, rode:
docker compose watch
Isso sincroniza automaticamente alterações em src/ e refaz a instalação de dependências quando pyproject.toml muda.
4. Verifique
API disponível em http://localhost:8080/.
Endpoints
Swagger fica na rota link/swagger/
Acessa o painel administrativo do MeasureSoftGram
- GET: https://epsmsg.shop/admin/
- Converse com os membros da equipe para solicitar uma credencial de acesso
How to run tests
A partir desta release, o gerenciamento de dependências usa uv com pyproject.toml + uv.lock (substituindo o antigo requirements.txt).
Instale o uv (caso ainda não tenha):
curl -LsSf https://astral.sh/uv/install.sh | sh
Sincronize as dependências:
uv sync
Rode os testes via tox:
uv run tox
Para testar um pacote ou arquivo específico:
uv run tox <PACKAGE OR FILE>
Another informations
Our services are available on Docker Hub:
Wiki
For more informations, you can see our wiki:
- Wiki.
Contribute
Do you want to contribute with our project? Access our contribution guide where we explain how you do it.
License
AGPL-3.0 License
Documentation
The documentation of this project can be accessed at this website: Documentation.