144 lines
3.2 KiB
Markdown
144 lines
3.2 KiB
Markdown
# 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]
|