O Festival Cinemado é uma aplicação web desenvolvida para gerenciar um festival fictício de cinema em Gramado. Inspirado por um projeto da matéria de Programação Web do curso de TADS do SENAC - SP, este projeto permite a administração completa dos filmes, ingressos e eventos do festival, além de facilitar a interação do público com as atividades programadas.
- Registrar novos usuários no sistema;
- Fazer login e obter acesso às funcionalidades do sistema;
- Adicionar filmes ao catálogo e permitir edição, listagem ou exclusão de filmes;
- Avaliar os filmes do catálogo com notas de Cinematografia, Originalidade e Comentários Técnicos, além de permitir edição, listagem ou exclusão das avaliações;
- Criar programações baseadas nos filmes do catálogo, especificando título, diretor, data, horário e local da sessão, com opções de edição, listagem ou exclusão das programações;
- Gerar ingressos com base nas programações criadas, especificando o filme, diretor, data, horário, local e quantidade de vagas disponíveis;
- Criar eventos paralelos ou adicionais ao festival, ampliando as opções para o público.
1. Clone o repositório para o seu ambiente local.
2. Abra o terminal na pasta do projeto e execute `npm install` para instalar as dependências.
3. Configure o banco de dados MySQL utilizando o script fornecido na seção "Banco de Dados".
4. Execute `node banco.js` para criar as tabelas necessárias.
5. Inicie a aplicação com `node index.js`.
6. Acesse a aplicação no navegador em `http://localhost:3000` e cadastre-se no sistema.
7. Faça login para acessar as funcionalidades disponíveis.
|
|
|
|
- Express 4.19.2 - É um framework para Node.js que fornece recursos mínimos para construção de servidores web.
- Nodemon 3.1.0 - Para restartar o server sempre que houver uma alteração.
- Jsonwebtoken 8.5.1 - Utilizado para criação e posteriormente verificação de token para autenticação.
- Bcrypt 5.0.1 - Para criptografar as senhas de usuários antes de salvar no banco.
- Crypto 1.0.1 - Utilizado para criar um token aleatório que será transformado em string.
- Cors 2.8.5 - É um mecanismo utilizado pelos navegadores para compartilhar recursos entre diferentes origens.
- Multer 1.4.5 - É um middleware node.js para lidar com multipart, que é usado principalmente para fazer upload de arquivos.
- Nodemailer 6.9.13 - Utilizado para enviar e-mails.
- MySQL 2.18.1 - Banco de dados utilizado (dependência utilizada para conexão da ORM com banco de dados).
- Dotenv 16.4.5 - Utilizado para setar as variáveis de ambiente (dados sensíveis).
- Faça um fork do projeto.
- Crie uma nova branch com as suas alterações:
git checkout -b my-feature
- Salve as alterações e crie uma mensagem de commit contando o que você fez:
git commit -m "feature: My new feature"
- Envie as suas alterações:
git push origin my-feature
Caso tenha alguma dúvida confira este guia de como contribuir no GitHub
Vitor |
Gabrielle |
CREATE DATABASE cinema;
CREATE TABLE usuarios(
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100),
senha VARCHAR(100)
);
CREATE TABLE filmes (
id INT AUTO_INCREMENT PRIMARY KEY,
capa VARCHAR(255),
titulo VARCHAR(255) NOT NULL,
diretor VARCHAR(255) NOT NULL,
genero VARCHAR(100),
duracao INT,
data_lancamento VARCHAR(50),
sinopse TEXT,
classificacao_indicativa VARCHAR(50)
);
CREATE TABLE filmes_avaliacao (
id INT AUTO_INCREMENT PRIMARY KEY,
capa VARCHAR(255),
titulo VARCHAR(255),
diretor VARCHAR(255),
genero VARCHAR(100),
duracao INT,
data_lancamento VARCHAR(50),
classificacao_indicativa VARCHAR(50),
cinematografia VARCHAR(100),
originalidade VARCHAR(100),
comentario_tecnico TEXT
);
CREATE TABLE programacao (
id INT AUTO_INCREMENT PRIMARY KEY,
capa VARCHAR(255),
titulo VARCHAR(255),
diretor VARCHAR(100),
data VARCHAR(50),
horario VARCHAR(50),
local VARCHAR(255)
);
CREATE TABLE eventos (
id INT AUTO_INCREMENT PRIMARY KEY,
capa VARCHAR(255),
nome VARCHAR(255),
data VARCHAR(50),
hora VARCHAR(50),
local VARCHAR(255),
descricao TEXT
);
CREATE TABLE ingressos (
id INT AUTO_INCREMENT PRIMARY KEY,
capa VARCHAR(255),
nome VARCHAR(255),
diretor VARCHAR(100),
data VARCHAR(50),
hora VARCHAR(50),
local VARCHAR(255),
vagas INT
);
CREATE TABLE compras_finalizadas (
id INT AUTO_INCREMENT PRIMARY KEY,
usuario_id INT,
ingresso_id INT,
quantidade INT,
data_compra DATETIME,
FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
FOREIGN KEY (ingresso_id) REFERENCES ingressos(id)
);