Skip to content

ROSA PRÊMIAÇÕES #2548

@EDUARDOFILHO77

Description

@EDUARDOFILHO77

/meu-sistema-rifa
├── /public # Arquivos públicos (HTML, CSS, JS)
├── /routes # Rotas do backend (Node.js)
├── /views # Templates de páginas (se necessário)
├── /models # Modelos de banco de dados
├── server.js # Arquivo principal do servidor Node.js
└── package.json # Arquivo de dependências do Node.js
mkdir meu-sistema-rifa
cd meu-sistema-rifa
npm init -y
npm install express mysql body-parser
const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql');

const app = express();
app.use(bodyParser.json());
app.use(express.static('public')); // Para servir arquivos HTML, CSS e JS

// Configuração do banco de dados MySQL
const db = mysql.createConnection({
host: 'localhost',
user: 'root', // Mude para seu usuário
password: '', // Mude para sua senha
database: 'rifa_db'
});

db.connect((err) => {
if (err) throw err;
console.log('Conectado ao banco de dados MySQL');
});

// Rota para comprar bilhete
app.post('/comprar', (req, res) => {
const { nome, email } = req.body;
const numeroBilhete = Math.floor(Math.random() * 1000) + 1;

const query = 'INSERT INTO bilhetes (nome, email, numero) VALUES (?, ?, ?)';
db.query(query, [nome, email, numeroBilhete], (err, result) => {
if (err) throw err;
res.send({ message: Bilhete comprado! Seu número é: ${numeroBilhete} });
});
});

// Rota para sortear um vencedor
app.get('/sortear', (req, res) => {
const query = 'SELECT * FROM bilhetes ORDER BY RAND() LIMIT 1';
db.query(query, (err, result) => {
if (err) throw err;
res.send({ message: O vencedor é: ${result[0].nome}, com o número ${result[0].numero} });
});
});

// Iniciar servidor
app.listen(3000, () => {
console.log('Servidor rodando na porta 3000');
});
CREATE DATABASE rifa_db;

USE rifa_db;

CREATE TABLE bilhetes (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
numero INT NOT NULL
);

<title>Rifa Online</title>

Sistema de Rifa

Comprar Bilhete
<script> document.getElementById('form-rifa').addEventListener('submit', async function(event) { event.preventDefault(); const nome = document.getElementById('nome').value; const email = document.getElementById('email').value; const response = await fetch('/comprar', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nome, email }) }); const data = await response.json(); document.getElementById('resultado').innerText = data.message; }); </script> node server.js curl http://localhost:3000/sortear

Valor do bilhete: R$

document.getElementById('preco-bilhete').innerText = '10.00'; // Exemplo de preço const valorBilhete = 10.00; // Valor fixo da rifa, você pode mudar isso dinamicamente depois

app.post('/comprar', (req, res) => {
const { nome, email } = req.body;
const numeroBilhete = Math.floor(Math.random() * 1000) + 1;

// Aqui você pode adicionar a lógica de pagamento, calculando o valor e integrando com o banco
const query = 'INSERT INTO bilhetes (nome, email, numero, valor) VALUES (?, ?, ?, ?)';
db.query(query, [nome, email, numeroBilhete, valorBilhete], (err, result) => {
if (err) throw err;
res.send({ message: Bilhete comprado por R$${valorBilhete}! Seu número é: ${numeroBilhete} });
});
});
Prêmio da Rifa
ALTER TABLE bilhetes ADD COLUMN data_sorteio DATETIME;
const dataSorteio = '2024-12-25 18:00:00'; // Definir uma data fixa

app.post('/comprar', (req, res) => {
const { nome, email } = req.body;
const numeroBilhete = Math.floor(Math.random() * 1000) + 1;

const query = 'INSERT INTO bilhetes (nome, email, numero, valor, data_sorteio) VALUES (?, ?, ?, ?, ?)';
db.query(query, [nome, email, numeroBilhete, valorBilhete, dataSorteio], (err, result) => {
if (err) throw err;
res.send({ message: Bilhete comprado por R$${valorBilhete}! Sorteio em: ${dataSorteio}. Seu número é: ${numeroBilhete} });
});
});

O sorteio será realizado em:

<script> document.getElementById('data-sorteio').innerText = '25/12/2024 às 18:00'; </script>

npm install stripe
const stripe = require('stripe')('sua-chave-secreta-do-stripe');

app.post('/pagamento', async (req, res) => {
const { valor } = req.body;

try {
const pagamento = await stripe.paymentIntents.create({
amount: valor * 100, // Valor em centavos
currency: 'brl',
payment_method_types: ['pix'],
});
res.send({ clientSecret: pagamento.client_secret });
} catch (err) {
res.status(500).send({ error: err.message });
}
});
Logotipo 500x500  px  (4)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions