Skip to content

Commit

Permalink
arquivo das entregas
Browse files Browse the repository at this point in the history
  • Loading branch information
kauaneiras committed Sep 20, 2024
1 parent 540d322 commit 193a9b5
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 0 deletions.
49 changes: 49 additions & 0 deletions docs/entrega2/entrega2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Projeto de Banco de Dados - Entrega 2

## Descrição

Este projeto consiste na criação de um banco de dados para um jogo de cartas inspirado na obra *Alice no País das Maravilhas*. O sistema gerencia interações com cartas, diálogos, cenas e recursos que influenciam o andamento do jogo e os resultados finais.

No projeto, trabalhamos com três tipos de arquivos SQL principais:

1. **[DDL (Data Definition Language)](./DDL.sql)**: Este arquivo contém as instruções para a **definição** das estruturas do banco de dados, ou seja, a criação das tabelas e relacionamentos entre elas.

- **Tabelas Criadas**:
- `Ending`: Armazena os finais do jogo com título, descrição e imagem.
- `Adventure`: Armazena os status da rainha, popularidade, saúde e tamanho, e refere-se à tabela `Ending`.
- `Deck`: Gerencia os decks de cartas, com referências para o início e o fim do deck.
- `Normal` e `Event`: Categorias de decks específicos com suas regras e tentativas.
- `Scene`: Armazena cenas com imagens e nomes dos personagens.
- `Dialogue`: Armazena os diálogos que o jogador vai interagir, com opções de respostas.
- `Item`: Armazena itens que podem ser coletados durante o jogo.
- `Resource`: Define os atributos que vão sendo alterados ao longo do jogo (rainha, popularidade, saúde, tamanho).
- `Card`: Armazena cartas com referências para cenas, diálogos, próximos cards e recursos.

2. **[DML (Data Manipulation Language)](./DML.sql)**: Este arquivo é responsável pela **inserção de dados** nas tabelas criadas pelo DDL. Ele preenche o banco de dados com as informações necessárias para o jogo.

- **Dados Inseridos**:
- **Tabela `Ending`**: São inseridos vários finais do jogo, cada um com sua descrição e imagem associada.
- **Tabela `Resource`**: Insere os recursos que impactam os atributos do jogo, como saúde, popularidade e tamanho.
- **Tabela `Scene`**: Popula com cenas como "Gato", "Chapeleiro Maluco", "Coelho Branco", e mais.
- **Tabela `Dialogue`**: Inserções de diálogos com opções de resposta à esquerda e à direita, permitindo diferentes interações do jogador.
- **Tabela `Item`**: Inserção de itens que o jogador pode coletar, como bolos, bebidas e chapéus.
- **Tabela `Card`**: População das cartas, vinculando cenas e diálogos, com os próximos cards e os recursos afetados.

3. **[DQL (Data Query Language)](./DQL.sql)**: Este arquivo contém consultas SQL para **verificar e extrair dados** das tabelas do banco de dados. Ele é utilizado para garantir que os dados foram inseridos corretamente e para testar a integridade do banco de dados.

- **Consultas Incluídas**:
- Verificação de todas as cartas e seus respectivos diálogos e cenas.
- Consultas para verificar os recursos associados às cartas.
- Recuperação dos diferentes finais do jogo com suas descrições e imagens.

## Links para os Arquivos

- **[DDL.sql - Definição das Tabelas](./DDL.sql)**: Contém a definição do esquema de banco de dados.
- **[DML.sql - Inserção de Dados](./DML.sql)**: Inserções de dados nas tabelas criadas.
- **[DQL.sql - Consultas SQL](./DQL.sql)**: Consultas para verificar e testar o banco de dados.

## Instruções de Execução

1. **Criação das Tabelas**: Execute o arquivo `DDL.sql` para criar todas as tabelas do banco de dados.
2. **Inserção de Dados**: Após a criação das tabelas, execute o arquivo `DML.sql` para popular o banco de dados com as informações essenciais.
3. **Consultas de Verificação**: Use o arquivo `DQL.sql` para testar se os dados foram inseridos corretamente e para recuperar informações do banco.
68 changes: 68 additions & 0 deletions docs/entrega3/entrega3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Jogo de Cartas - Entrega 3

## Apresentação do Projeto

[![Vídeo de Apresentação](https://img.youtube.com/vi/kk5Ff5-jXC0/maxresdefault.jpg)](https://www.youtube.com/watch?v=kk5Ff5-jXC0)

## Descrição

Este projeto é um jogo de cartas interativo inspirado em *Alice no País das Maravilhas*. O sistema inclui um **backend** que gerencia os dados das cartas e finais do jogo, e um **frontend** onde os jogadores podem interagir com as cartas, fazer escolhas e ver os resultados dessas escolhas, que afetam atributos como popularidade, saúde e tamanho.

## Estrutura do Projeto

### 1. **Frontend**

O frontend do jogo é responsável pela interface visual e pela interação do jogador. Ele foi desenvolvido usando HTML, CSS e JavaScript.

- **[index.html](./index.html)**: Estrutura principal do jogo. Contém o layout da interface, com os componentes de pontuação, as cartas, e os botões de ação para o jogador interagir. Ele também carrega os scripts de lógica e estilo【23†source】.

- **[styles.css](./styles.css)**: Define o estilo visual do jogo. Ele inclui a formatação dos elementos da página, como o container principal do jogo, as barras de pontuação, os botões de ação e as cartas【24†source】.

- **[game.js](./game.js)**: Script JavaScript que gerencia a lógica do jogo. Ele carrega o deck de cartas a partir do backend, atualiza os atributos do jogador (rainha, popularidade, saúde, tamanho), e decide quando o jogo termina, com base nas ações do jogador【25†source】.

### 2. **Backend**

O backend do projeto é uma API que fornece os dados necessários para o funcionamento do jogo, como o deck de cartas e os finais possíveis. Ele foi desenvolvido com Node.js e utiliza a biblioteca Express para servir os dados.

Dentro da pasta `backend`, temos:

- **`Dockerfile`**: Arquivo de configuração para containerização do backend, permitindo que ele seja executado em um ambiente Docker.

- **`.env`**: Arquivo de configuração de variáveis de ambiente para conexão com o banco de dados e outras configurações do backend.

- **`package.json` e `package-lock.json`**: Gerenciamento de dependências e scripts npm para o projeto.

- **`src/`**:
- **`controllers/`**: Contém os controladores que definem a lógica de negócios para o backend, como a manipulação de cartas e finais.
- **`routes/`**: Define as rotas da API, como `/api/deck` para obter o deck de cartas e `/api/end` para obter os finais possíveis.
- **`models/`**: Definição dos modelos de dados que mapeiam para as tabelas do banco de dados.
- **`app.js`**: Arquivo principal da aplicação, onde o Express é configurado e as rotas são vinculadas.

### 3. **Scripts SQL**

- **[TRIGGERS.sql](./TRIGGERS.sql)**: Script SQL responsável pela criação de **triggers** no banco de dados, que monitoram e automatizam determinadas ações, como verificar condições de integridade e atualizar atributos automaticamente.

- **[normlizacao.md](./normlizacao.md)**: Arquivo que descreve a **normalização** do banco de dados, explicando o processo de separação dos dados em tabelas normalizadas para evitar redundância e melhorar a eficiência do sistema.

## Instruções de Execução

1. **Executar o Backend**:
- Navegue até o diretório `backend` e execute os comandos:
```bash
npm install
docker build -t game-backend .
docker run game-backend
```
- Isso irá inicializar o backend que fornecerá os dados para o frontend.

2. **Iniciar o Frontend**:
- Abra o arquivo `index.html` no seu navegador para iniciar o jogo.
- O jogo será carregado e você poderá interagir com as cartas, fazer escolhas, e ver como isso afeta os atributos do jogo.

## Links para os Arquivos

- **[index.html](./index.html)**: Estrutura HTML do frontend.
- **[styles.css](./styles.css)**: Estilos do jogo.
- **[game.js](./game.js)**: Lógica de interação do jogo.
- **[TRIGGERS.sql](./TRIGGERS.sql)**: Triggers para o banco de dados.
- **[normlizacao.md](./normlizacao.md)**: Documentação sobre a normalização do banco de dados.
Binary file removed game/backend/backend.zip
Binary file not shown.

0 comments on commit 193a9b5

Please sign in to comment.