Skip to content

Cross-platform desktop application template using Python. The stack includes PySide6 for the UI, SQLAlchemy for data management, and PyInstaller for easy distribution.

Notifications You must be signed in to change notification settings

carlos-s-lima/notebook-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Caderno Digital

Uma aplicação desktop para gerenciamento de notas desenvolvida com Python, PySide6 e SQLAlchemy.

Python Qt SQLite SQLAlchemy

Sobre o Projeto

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.

Tecnologias

Python Qt SQLite SQLAlchemy

Stack

  • PySide6 - Framework QT para interfaces gráficas
  • SQLAlchemy - ORM para gerenciamento de banco de dados
  • SQLite - Banco de dados relacional local

Estrutura

├── 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)

Funcionalidades

  • 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

Download

Executável Windows

Disponível na Release v1.0.0 - Inclui arquivo .exe standalone.

Arquitetura

Modelo de Dados

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

Padrões Utilizados

  • 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

Limitações

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

Possíveis Melhorias

  • 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

Desenvolvimento

Requisitos:

  • Python 3.8+
  • PySide6
  • SQLAlchemy

Estrutura de commits: Commits não seguem convenção específica (projeto estudantil).

Licença

Projeto desenvolvido para fins educacionais.

Autor

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.

About

Cross-platform desktop application template using Python. The stack includes PySide6 for the UI, SQLAlchemy for data management, and PyInstaller for easy distribution.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages