diff --git a/README.md b/README.md new file mode 100644 index 0000000..59ab20f --- /dev/null +++ b/README.md @@ -0,0 +1,143 @@ +# 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 +``` + +### Criar Rifa + +```bash +flask cria-rifa "" +``` + +### Alterar Senha + +```bash +flask muda-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]