Este é o meu primeiro projeto CRUD Full-Stack utilizando Rust. O objetivo principal foi explorar o ecossistema de alto desempenho do Rust no backend, integrando-o com um banco de dados relacional e uma interface moderna.
- Language: Rust (Foco em segurança de memória e performance).
- Framework Web: Axum (Baseado em Tokio).
- Database Driver: SQLx (Consultas SQL assíncronas e tipadas em tempo de compilação).
- Banco de Dados: PostgreSQL.
- Interface: HTML5, CSS3 (Flexbox/Grid) e Vanilla JavaScript.
- Estética: Inspirada no design moderno do ClickUp, com foco em usabilidade e clean UI.
- Desenvolvimento: A estrutura visual e a lógica de integração do front foram geradas e refinadas com o auxílio de IA (Gemini/DeepSeek), permitindo focar a energia no aprendizado da arquitetura do Rust.
O sistema permite a gestão de 4 entidades principais: Funcionários, Departamentos, Produtos e Fornecedores.
- Listagem (Read): Busca dinâmica de dados via API.
- Criação (Create): Modal inteligente para inserção de novos registros.
- Edição (Update): Alteração de dados existentes com preenchimento automático.
- Exclusão (Delete): Remoção de registros com confirmação de segurança.
Sendo meu primeiro contato prático com desenvolvimento Web em Rust, os principais desafios foram:
- Gerenciamento de Erros: Entender o sistema de
ResulteOptiondo Rust para lidar com falhas de conexão. - Ambiente Linux: Configuração do ambiente de desenvolvimento no Fedora, incluindo o gerenciamento do serviço PostgreSQL via terminal.
- Variáveis de Ambiente: Troubleshooting de conexões com banco de dados e autenticação (
28P01), resolvido através de manipulação de variáveis no.enve strings de conexão nomain.rs. - CORS: Configuração de middlewares para permitir que o navegador se comunique com o servidor local.
- Certifique-se de ter o Rust e o PostgreSQL instalados.
- Clone o repositório:
git clone [https://github.com/SEU_USUARIO/workers.git](https://github.com/SEU_USUARIO/workers.git)
- Configure seu arquivo
.envna raiz:DATABASE_URL=postgres://usuario:senha@localhost:5432/nome_do_banco
- Rode as migrações ou crie as tabelas conforme as structs em
models.rs. - Execute o servidor:
cargo run
- Acesse
http://localhost:3000no seu navegador.
Desenvolvido por Davicf como projeto de estudo na UFMT-blockchain.