O Caderno Digital é uma aplicação desktop que permite criar, editar, excluir e organizar notas em cadernos. Este projeto foi desenvolvido como trabalho acadêmico para aplicar conceitos de programação desktop, persistência de dados e interfaces gráficas com QT.
Nota: Este é um projeto estudantil. O código não está refinado e pode apresentar limitações, bugs e áreas que necessitam de otimização. Não é um software de produção.
- PySide6 - Framework QT para interfaces gráficas
- SQLAlchemy - ORM para gerenciamento de banco de dados
- SQLite - Banco de dados relacional local
├── src/
│ ├── database.py # Configuração do banco de dados e engine
│ ├── models.py # Modelos ORM (Note, Notebook)
│ ├── crud.py # Operações CRUD
│ ├── dialogs.py # Componentes de diálogo
│ └── main.py # Aplicação principal e interface
└── meu_banco.db # SQLite database (gerado em runtime)
- Gerenciamento de múltiplos cadernos
- CRUD completo de notas
- Sistema de busca por título e conteúdo
- Interface com tema escuro
- Persistência em SQLite
- Prévia de conteúdo na listagem
- Timestamp de criação/edição
Disponível na Release v1.0.0 - Inclui arquivo .exe
standalone.
Notebooks
- id: Integer (PK)
- name: String
- created_at: DateTime
- notes: Relationship
Notes
- id: Integer (PK)
- title: String
- content: String
- date: DateTime
- notebook_id: Integer (FK)
- notebook: Relationship
- ORM Pattern via SQLAlchemy
- Repository Pattern no módulo CRUD
- MVC (parcial) - separação de models, views e lógica
- Session Management com context do SQLAlchemy
Este projeto possui limitações típicas de um trabalho acadêmico:
- Ausência de testes automatizados
- Tratamento de erros básico
- Sem sistema de backup/exportação
- Interface não totalmente responsiva
- Código não completamente modularizado
- Sem validações robustas de entrada
- Implementar testes unitários e de integração
- Sistema de tags e filtros avançados
- Exportação para Markdown, PDF e TXT
- Editor de texto rico (WYSIWYG)
- Refatoração seguindo SOLID
- Sincronização em nuvem
- Sistema de anexos
- Themes customizáveis
Requisitos:
- Python 3.8+
- PySide6
- SQLAlchemy
Estrutura de commits: Commits não seguem convenção específica (projeto estudantil).
Projeto desenvolvido para fins educacionais.
Carlos Lima Meu LinkedIn
Aviso: Código em estágio de aprendizado. Não utilizar como referência de boas práticas ou em produção.