Sistema web desenvolvido em Flask para gerenciamento e conferência de manifestos de carga aérea, com sincronização automática com Google Sheets.
- ✅ Importação automática de PDFs de manifestos
- 📊 Dashboard de conferência com status em tempo real
- 🔄 Sincronização com Google Sheets para acompanhamento colaborativo
- 👥 Sistema de autenticação com diferentes níveis de acesso
- 📱 Interface responsiva com Bootstrap 5
- 🔍 Busca avançada de volumes e manifestos
- 📝 Sistema de observações por volume
- ✏️ Gestão de usuários (admin)
- Python 3.8 ou superior
- pip (gerenciador de pacotes Python)
- Conta Google Cloud com API do Google Sheets habilitada
git clone https://github.com/seu-usuario/concan.git
cd concanpython -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activatepip install -r requirements.txtCopie o arquivo .env.example para .env e preencha com suas configurações:
cp .env.example .envEdite o arquivo .env e configure:
FLASK_SECRET_KEY: Uma chave secreta aleatória para o FlaskADMIN_DELETE_PASSWORD: Senha para confirmação de exclusão de manifestosGOOGLE_SPREADSHEET_ID: ID da sua planilha do Google Sheets- Credenciais dos usuários iniciais
- Acesse o Google Cloud Console
- Crie um novo projeto ou selecione um existente
- Habilite a Google Sheets API e Google Drive API
- Crie uma Service Account
- Baixe o arquivo JSON de credenciais
- Renomeie para
credentials.jsone coloque na raiz do projeto - Compartilhe sua planilha do Google Sheets com o email da Service Account
python criar_admin.pyEste comando irá:
- Criar o banco de dados SQLite
- Criar as tabelas necessárias
- Criar o usuário administrador inicial
python app.pyA aplicação estará disponível em http://localhost:5000
Após executar criar_admin.py, você pode fazer login com:
- Usuário: admin
- Senha: admin123
concan/
├── app.py # Aplicação principal Flask
├── criar_admin.py # Script de inicialização do banco
├── requirements.txt # Dependências Python
├── .env.example # Exemplo de variáveis de ambiente
├── .gitignore # Arquivos ignorados pelo Git
├── credentials.json # Credenciais Google (NÃO COMMITAR)
├── data/
│ └── database.db # Banco de dados SQLite
├── src/
│ ├── database.py # Funções de banco de dados
│ ├── pdf_extractor.py # Extração de dados de PDFs
│ └── sheets_sync.py # Sincronização com Google Sheets
├── static/
│ ├── css/
│ └── js/
├── templates/ # Templates HTML (Jinja2)
└── uploads/ # PDFs enviados pelos usuários
- Nunca commite o arquivo
credentials.json - Nunca commite o arquivo
.env - Nunca commite o banco de dados
database.db - Altere todas as senhas padrão em produção
- Use HTTPS em produção
- Mantenha as dependências atualizadas
- Faça upload dos arquivos para o PythonAnywhere
- Configure o arquivo
.envcom as variáveis de produção - Instale as dependências:
pip install -r requirements.txt - Configure o WSGI file apontando para
app.py - Recarregue a aplicação
- Backend: Flask 2.x
- Banco de Dados: SQLite com SQLAlchemy
- Frontend: Bootstrap 5, JavaScript
- Autenticação: Flask-Login
- PDF Processing: PyPDF2, pdfplumber
- Google Sheets: gspread, oauth2client
Este projeto é de uso privado.
Desenvolvido para gestão de manifestos de carga aérea.
Este é um projeto privado. Para sugestões ou melhorias, entre em contato com o desenvolvedor.
Para questões ou problemas, abra uma issue no repositório.
Nota: Este sistema foi desenvolvido especificamente para gestão de manifestos de carga aérea e pode requerer customizações para outros casos de uso.