Skip to content

tlsilva89/admin-users-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Gerenciador de Usuários - Fullstack com Rust e Vanilla JS

Um projeto fullstack simples para demonstrar a criação de uma aplicação CRUD (Create, Read, Update, Delete) utilizando Rust com o framework Axum no backend e HTML, CSS e JavaScript puros (Vanilla JS) no frontend.

✨ Funcionalidades

  • Criar (Create): Adicionar novos usuários ao banco de dados através de um formulário.
  • Ler (Read): Listar todos os usuários cadastrados em tempo real.
  • Atualizar (Update): Editar as informações de um usuário existente.
  • Deletar (Delete): Remover um usuário da lista e do banco de dados.

🛠️ Tech Stack

Este projeto é dividido em duas partes principais:

Backend

  • Rust: Linguagem de programação moderna e segura.
  • Axum: Framework web ergonômico e modular, construído sobre o ecossistema Tokio.
  • Tokio: Runtime assíncrono para aplicações em Rust.
  • SQLx: Toolkit SQL assíncrono e seguro para Rust.
  • SQLite: Banco de dados relacional embarcado, utilizado para simplicidade.
  • Serde: Framework para serialização e desserialização de dados (JSON).

Frontend

  • HTML5: Estrutura da página web.
  • CSS3: Estilização moderna e responsiva.
  • JavaScript (Vanilla JS): Lógica do cliente para consumir a API RESTful e manipular o DOM.

📋 Pré-requisitos

Antes de começar, certifique-se de que você tem as seguintes ferramentas instaladas em seu sistema:

cargo install sqlx-cli
  • Python 3: Utilizado para servir os arquivos estáticos do frontend com um servidor web simples.

🚀 Começando

Siga os passos abaixo para configurar e rodar o projeto localmente.

1. Clone o Repositório

# Se estiver usando git
git clone https://exemplo.com/seu-repositorio.git
cd seu-repositorio

2. Configure o Backend

Todas as ações a seguir devem ser executadas dentro da pasta backend/.

cd backend

a. Crie o arquivo de ambiente .env:

Este arquivo conterá a URL de conexão com o banco de dados.

echo "DATABASE_URL=sqlite:database.db" > .env

b. Crie o arquivo do banco de dados SQLite:

O sqlx-cli lerá o arquivo .env para saber qual banco de dados criar.

sqlx database create

c. Rode as migrações:

Este comando criará a tabela users no banco de dados com base nos arquivos da pasta migrations/.

sqlx migrate run

3. Configure o Frontend

Nenhuma configuração é necessária para o frontend, pois ele consiste apenas de arquivos estáticos.

▶️ Rodando a Aplicação

Para rodar a aplicação, você precisará de dois terminais abertos simultaneamente.

Terminal 1: Iniciar o Servidor Backend

Navegue até a pasta backend/ e inicie o servidor Rust.

cd backend
cargo run

O servidor estará rodando e escutando em http://127.0.0.1:3000.

Terminal 2: Iniciar o Servidor Frontend

Navegue até a pasta frontend/ e inicie um servidor web simples com Python.

cd frontend
python -m http.server 8000

Agora, abra seu navegador e acesse a seguinte URL:

http://localhost:8000

📂 Estrutura do Projeto

.
├── backend
│   ├── Cargo.toml
│   ├── .env            # Configuração do banco (criado manualmente)
│   ├── database.db     # Arquivo do banco (criado pelo sqlx)
│   ├── migrations/
│   │   └── ..._create_users_table.sql
│   └── src
│       └── main.rs     # Lógica da API
│
└── frontend
    ├── index.html      # Estrutura da página
    ├── script.js       # Lógica do cliente
    └── style.css       # Estilos

🗺️ Endpoints da API

O backend expõe os seguintes endpoints RESTful:

Método HTTP Endpoint Descrição
POST /users Cria um novo usuário.
GET /users Retorna a lista de todos os usuários.
GET /users/{id} Retorna um usuário específico.
PUT /users/{id} Atualiza um usuário existente.
DELETE /users/{id} Deleta um usuário específico.

📝 Exemplo de Uso da API

Criar um usuário

curl -X POST http://127.0.0.1:3000/users \
  -H "Content-Type: application/json" \
  -d '{"name": "João Silva", "email": "joao@example.com"}'

Listar todos os usuários

curl http://127.0.0.1:3000/users

Atualizar um usuário

curl -X PUT http://127.0.0.1:3000/users/1 \
  -H "Content-Type: application/json" \
  -d '{"name": "João Santos", "email": "joao.santos@example.com"}'

Deletar um usuário

curl -X DELETE http://127.0.0.1:3000/users/1

🤝 Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published