rifalto/README.md

144 lines
3.2 KiB
Markdown
Raw Normal View History

2025-06-18 19:42:01 -03:00
# Rifalto - Sistema de Rifas
Um sistema web para gerenciamento de rifas e vendas de números, desenvolvido em Flask.
## Descrição
O Rifalto é uma aplicação web que permite:
- Criação e gerenciamento de rifas
- Venda de números por vendedores autenticados
- Reserva de números pelos compradores
- Controle de estoque de números disponíveis
- Backup automático do banco de dados
## Instalação
### Usando Docker (Recomendado)
1. Clone o repositório
2. Configure o arquivo de configuração (veja seção de Configuração)
3. Execute com Docker:
```bash
docker build -t rifalto .
docker run -p 5000:5000 -v $(pwd)/instance:/rifalto/instance rifalto
```
### Instalação Local
1. Clone o repositório
2. Instale as dependências:
```bash
pip install -r requirements.txt
```
3. Configure as variáveis de ambiente:
```bash
export FLASK_APP=rifaserver.app
```
4. Execute a aplicação:
```bash
./start.sh
```
## Configuração
### Arquivo de Configuração
Crie um arquivo `instance/config.json` na raiz do projeto com as seguintes configurações:
```json
{
"SECRET_KEY": "sua-chave-secreta-aqui",
"REDIRECT_ROOT_URL": "https://seu-site.com"
}
```
**Parâmetros de configuração:**
- `SECRET_KEY`: Chave secreta para sessões Flask (será gerada automaticamente se não fornecida)
- `REDIRECT_ROOT_URL`: URL para redirecionamento da página raiz (opcional)
### Variáveis de Ambiente
Você também pode configurar usando variáveis de ambiente com prefixo `FLASK_`:
```bash
export FLASK_SECRET_KEY="sua-chave-secreta"
export FLASK_REDIRECT_ROOT_URL="https://seu-site.com"
```
## Comandos CLI
### Criar Vendedor
```bash
flask create-seller <username> <password>
```
### Criar Rifa
```bash
flask cria-rifa "<descrição da rifa>"
```
### Alterar Senha
```bash
flask muda-senha <usuario> <nova_senha>
```
## Estrutura do Banco de Dados
O sistema usa SQLite por padrão e cria automaticamente as seguintes tabelas:
- `sellers`: Vendedores do sistema
- `purchases`: Compras/vendas realizadas
- `raffles`: Rifas disponíveis
- `tickets`: Números reservados
## Backup
O sistema realiza backup automático do banco de dados a cada hora, salvando os arquivos na pasta `instance/backup/`.
## Desenvolvimento
### Executar Testes
```bash
pytest test/
```
### Migrações do Banco
```bash
flask db upgrade
```
## Estrutura de Arquivos
```
rifalto/
├── rifaserver/ # Código principal da aplicação
│ ├── app.py # Aplicação Flask principal
│ ├── models.py # Modelos do banco de dados
│ ├── templates/ # Templates HTML
│ └── static/ # Arquivos estáticos (CSS, JS)
├── migrations/ # Migrações do banco de dados
├── test/ # Testes automatizados
├── instance/ # Arquivos de configuração e dados
│ ├── config.json # Configuração da aplicação
│ ├── raffle.db # Banco de dados SQLite
│ └── backup/ # Backups automáticos
├── requirements.txt # Dependências Python
├── Containerfile # Configuração Docker
└── start.sh # Script de inicialização
```
## Licença
[Adicione informações de licença aqui]