Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROSA PRÊMIAÇÕES #2548

Open
EDUARDOFILHO77 opened this issue Oct 8, 2024 · 0 comments
Open

ROSA PRÊMIAÇÕES #2548

EDUARDOFILHO77 opened this issue Oct 8, 2024 · 0 comments

Comments

@EDUARDOFILHO77
Copy link

/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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant