GithubHelp home page GithubHelp logo

slice-pdf-api's Introduction

slice-pdf-backend

Sobre

Ferramenta para auxiliar a leitura no celular de livros escaneados. Projeto muito importante a nível pessoal, pois marca a minha evolução como programador, uma vez que esse projeto já tinha sido implementado no ano de 2018 mas de uma maneira muito crua e iniciante. Esta "segunda versão" é bem mais robusta comparada com a primeira pois é uma API onde é feito upload do arquivo e possui um site com uma interface amigável.

Caso tenha ficado curioso(a) sobre como a "primeira versão" foi implementada, o repositório do projeto está aqui. Era um programa desktop feito em Python utilizando o PyQt para a interface gráfica e cheio de gambiarrinhas :D.

Tecnologias

Python FastAPI Docker

Como usar

Acesse o site do projeto e faça o upload de um PDF propício para o "fatiamento".

Arquivo propício para o "fatiamento"

Utilize o arquivo "test.pdf" presente na pasta docs para fazer um upload no site e ver o sistema funcionando.

Contato

Minha redes para contato:

slice-pdf-api's People

Contributors

wcardosos avatar

Watchers

James Cloos avatar  avatar

slice-pdf-api's Issues

Adicionar permissão de CORS no endpoint de fatiamento

É preciso adicionar o Access-Control-Allow-Origin ao retorno da resposta do endpoint de fatiamento, para que o front possa fazer o download normalmente do arquivo retornado.

Implementação necessária:
return FileResponse(new_pdf_filename, headers={'Access-Control-Allow-Origin': '*'})

Adicionar criação dinâmica do arquivo de configurações do Firebase

O deploy foi feito na App Platform da DigitalOcean, e por conta disso não conseguimos guardar arquivos que não estejam presentes no repositório. Por motivos de segurança, o arquivo de configurações do Firebase não está presente no repositório do projeto.

Para resolver este problema o arquivo será criado dinamicamente a partir das variáveis ambiente.

Criar lib de manipulação de PDF's

A lib deverá abrir arquivos PDF's, extrair as páginas em arquivos de imagens, e também criar novos arquivos PDF's a partir de imagens.

Criar endpoint para criação de logs

Após o usuário clicar no botão de download, criar logs no banco com os seguintes dados:

  • timestamp;
  • nome do arquivo;

Isso irá implicar na desnecessidade das regras de retorno e atualização dos dados no repository do Firestore. A troca que irá ocorrer é o seguinte:

  • o retorno será a partir da quantidade de logs existentes no banco;
  • a atualização será feita apenas com a criação do log;

Criar logger

Criar um logger para facilitar acompanhamento do que acontece na aplicação.

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.