{"id":14976004,"url":"https://github.com/lucasvmarangoni/financial-file-manager","last_synced_at":"2026-03-06T05:03:52.532Z","repository":{"id":206024732,"uuid":"714942004","full_name":"Lucasvmarangoni/financial-file-manager","owner":"Lucasvmarangoni","description":"Sistema robusto para o armazenamento e controle de documentos financeiros. Ele oferece aos clientes e administradores de instituições financeiras a capacidade de fazer upload, gerenciar e recuperar documentos financeiros de forma eficiente.","archived":false,"fork":false,"pushed_at":"2025-02-07T13:17:33.000Z","size":921,"stargazers_count":0,"open_issues_count":11,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T20:40:32.692Z","etag":null,"topics":["aes","bcrypt","cockroachdb","ddd","docker","golang","google-cloud-storage","graphql","graphql-api","grpc","jwt","microservice","prometheus","rabbitmq","rest-api","sha-256","zerolog"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lucasvmarangoni.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-06T06:56:24.000Z","updated_at":"2025-02-07T13:17:36.000Z","dependencies_parsed_at":"2023-11-28T19:28:04.800Z","dependency_job_id":"6b06a7bd-1b3f-41cf-ae2b-b434563bf097","html_url":"https://github.com/Lucasvmarangoni/financial-file-manager","commit_stats":{"total_commits":318,"total_committers":1,"mean_commits":318.0,"dds":0.0,"last_synced_commit":"8c3066f94af1d065457b0d81bb5cb3baa6a32eb3"},"previous_names":["lucasvmarangoni/sistema-de-documentos-financeiros","lucasvmarangoni/financial-file-manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lucasvmarangoni/financial-file-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasvmarangoni%2Ffinancial-file-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasvmarangoni%2Ffinancial-file-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasvmarangoni%2Ffinancial-file-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasvmarangoni%2Ffinancial-file-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lucasvmarangoni","download_url":"https://codeload.github.com/Lucasvmarangoni/financial-file-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasvmarangoni%2Ffinancial-file-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30162766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T04:43:31.446Z","status":"ssl_error","status_checked_at":"2026-03-06T04:40:30.133Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes","bcrypt","cockroachdb","ddd","docker","golang","google-cloud-storage","graphql","graphql-api","grpc","jwt","microservice","prometheus","rabbitmq","rest-api","sha-256","zerolog"],"created_at":"2024-09-24T13:53:07.480Z","updated_at":"2026-03-06T05:03:52.503Z","avatar_url":"https://github.com/Lucasvmarangoni.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ca href=\"#projeto\" target=\"_blank\"\u003e\n    \u003cimg align=\"center\" src=\"https://img.shields.io/badge/-Projeto-05122A?style=flat\u0026logo=\" alt=\"\"/\u003e\n  \u003c/a\u003e \n \u003ca href=\"#tecnologias\"\u003e\n     \u003cimg align=\"center\" src=\"https://img.shields.io/badge/-Tecnologias-05122A?style=flat\u0026logo=Tecnologias\" alt=\"\"/\u003e  \n\u003c/a\u003e   \n \u003ca href=\"#execução\"\u003e\n     \u003cimg align=\"center\" src=\"https://img.shields.io/badge/-Execução-05122A?style=flat\u0026logo=Execução\" alt=\"\"/\u003e  \n\u003c/a\u003e     \n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# Financial file manager\n## Sistema de Armazenamento e Controle de Documentos Financeiros\n\n## \u003cu\u003ePROJETO INTERROMPIDO\u003c/u\u003e\n\n\u003c/div\u003e\n\n**Nota:** \u003cu\u003eO desenvolvimento do projeto foi interrompido, pois estou me dedicando a outro projeto, desenvolvido com código fechado.\u003c/u\u003e\nNesse momento, não tenho intenção aplicar alterações no código desse projeto, contudo posso fazer atualizações nos *\u003ca href=\"./docs/registros-de-engenharia-de-software.md\"\u003e \u003cu\u003eRegistros de engenharia de software\u003c/u\u003e.\u003c/a\u003e*, apontando correções a erros que tive na engenharia do projeto.   \n**Nota:** O projeto teve uma pausa no desenvolvimento, que durou de 29 Mar 2024 até 02 Jul 2024.  \n\n\n**Acompanhe: \u003ca href=\"https://github.com/users/Lucasvmarangoni/projects/11\"\u003e Project Board\u003c/a\u003e**\n\n## PROJETO\n\n**Projeto de portfólio, tem como objetivos aprendizado, prática e demonstração das minhas habilidades como desenvolvedor. Portanto, as escolhas no projeto são, principalmente, com esses objetivos.**\n\nEste projeto tem como objetivo desenvolver um sistema robusto para o armazenamento e controle de documentos financeiros. Ele oferece aos clientes e administradores de instituições financeiras a capacidade de fazer upload, gerenciar e recuperar documentos financeiros de forma eficiente.\n\n### Principais recursos\n\n- **Documentos**: Os documentos são inicialmente armazenados localmente no servidor e, posteriormente transferidos para um serviço de armazenamento em nuvem. Sendo requisito manter versões do documento para visualizar seu histórico.\n\n- **Consultas**: Cada documento é acompanhado de metadados, incluindo nome, data, tipo de documento e informações relacionadas a transações financeiras.\n\n- **Segurança**: O sistema mantém nível de segurança e controle de acesso rigoroso, além de observabilidade e registro de atividades para fins de auditoria.\n\n- **Resiliência**: O sistema deve ser projetado para minimizar o impacto de falhas e garantir que as operações possam ser retomadas o mais rápido possível após uma falha.\n\n⇝ *\u003ca href=\"./docs/doc-de-requisitos.md\"\u003e \u003cu\u003eDocumentação de requisitos\u003c/u\u003e.\u003c/a\u003e*\n\n⇝ *\u003ca href=\"./docs/registros-de-engenharia-de-software.md\"\u003e \u003cu\u003eRegistros de engenharia de software\u003c/u\u003e.\u003c/a\u003e* \n\n⇝ *\u003ca href=\"./docs/bug-log.md\"\u003e \u003cu\u003eBug Log\u003c/u\u003e.\u003c/a\u003e* Registro de bugs/problemas e suas soluções.\n\n### Bibliotecas \n\nBibliotecas e pacotes que criei em razão desse projeto.\n\n⇝ *\u003ca href=\"https://github.com/Lucasvmarangoni/logella\"\u003e \u003cu\u003eLogella\u003c/u\u003e.\u003c/a\u003e*\n\n\n\u003cbr\u003e\n\n## EXECUÇÃO \n\nPara iniciar o projeto nasta executar o comando:\n\n    bash bash scripts/start.sh\n\nAntes disso é necessário realizar as configurações do ambiente.\n\n### Configurações\n\n#### Permissões\n\nDe permissão para o container escrever na pasta logs. Isso é necessário para que o sistema possa salvar os arquivos de logs na pasta logs, localizada na raiz do projeto.\n\nInicialmente pode ser necessário dar permissão de read and writer (5) para others. Isso apenas para poder verificar quem é o usuário do container no host. Antes de executar o programa execute:\n\n    chmod -R 775 logs\n\nEm seguida pode iniciar o programa. Ele vai criar os arquivos de log na pasta logs.\n\nPara identificar o usuário do container no host basta verificar qual usuário escreveu os arquivos de log:\n\n    ls -lt logs\n\nA saida será algo assim:\n\n    $ ls -lt logs\n    total 0\n    -rw-r--r-- 1 65532 65532 0 Jul  9 21:28 modsec_audit.log\n    -rw-r--r-- 1 65532 65532 0 Jul  9 21:28 modsec_debug.log\n\nIdentificado o usuário e grupo, basta dar a permissão. Eu escolhi dar permissão de owner e mantive o grupo do meu usuário.\n\n    sudo chown 65532:\u003cmyusergroup\u003e logs\n\nPronto. As permissões necessárias estão prontas.\n\n#### Variáveis e Secrets\n\nConfigure o arquivo .env. As variáveis necessárias estão no arquivo example.env, aqui nesse repositório.\n\n\u003ca href=\"https://github.com/Lucasvmarangoni/financial-file-manager/blob/main/example.env\"\u003eexample.env\u003c/a\u003e\n\nConfigure as secrets, elas estão no diretório \"secrets\", aqui nesse repositório.\n\n\u003ca href=\"https://github.com/Lucasvmarangoni/financial-file-manager/tree/main/secrets\"\u003esecrets\u003c/a\u003e\n\n\n## TECNOLOGIAS\n\n**Linguagem**: Go (Golang) \u003cbr\u003e\n**Arquitetura**: Microservices e Domain-Driven Design (DDD) \u003cbr\u003e\n\n### Persistência de dados\n\n- **Banco de dados**: CockroachDB \n- **Driver de banco de dados**: Pgx \n- **Armazenamento**: Google Cloud Storage\n- **Cache**: Memcached\n- **Transporte**: \n  - **Filas**: RabbitMQ \n  - **Comunicação de Serviço**: gRPC\n\n### HTTP\n\n- **API**: Rest, GraphQL e gRPC \n- **Roteador**: go-chi\n- **Framework GraphQL**: 99designs/gqlgen\n\n### Observabilidade\n\n- **Logs**: Zerolog \n- **Métricas**: Prometheus \n- **Busca e Análise**: Elasticsearch\n\n### Segurança\n\n- **Autenticação e Autorização**: JSON Web Token (JWT)\n- **Criptografia (password)**: Bcrypt\n- **Criptografia (Dados sensíveis)**: AES e SHA-256\n\n### Infraestrutura\n\n- **Contêineres**: Docker\n- **CI/CD**: Github Actions\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasvmarangoni%2Ffinancial-file-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasvmarangoni%2Ffinancial-file-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasvmarangoni%2Ffinancial-file-manager/lists"}