Skip to content

VitorGeovani/festival-de-cinema

Repository files navigation

Festival Cinemado

📑 Aplicação Web para o Festival fictício de cinema de Gramado (Cinemado)



ℹ️ Especificações do Projeto

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.

📌 Funcionalidades

- 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.

💻 Como Usar

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.

⚒ Recursos utilizados neste projeto

Linguagem

Front-End

Back-End

Banco de Dados

Dependências do projeto:

  • 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).

Como contribuir para o projeto ⁉️

  1. Faça um fork do projeto.
  2. Crie uma nova branch com as suas alterações: git checkout -b my-feature
  3. Salve as alterações e crie uma mensagem de commit contando o que você fez: git commit -m "feature: My new feature"
  4. Envie as suas alterações: git push origin my-feature

Caso tenha alguma dúvida confira este guia de como contribuir no GitHub


🚀 Desenvolvedores :octocat:

Imagem do perfil do Vitor
Vitor
Imagem do perfil da Gabi
Gabrielle

Banco de Dados 📝

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

© 2024 Cinemado - Administração

About

Projeto de Programação Web (PW) do 2º Semestre de TADS no Centro Universitário SENAC - Santo Amaro

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •