-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
540d322
commit 193a9b5
Showing
3 changed files
with
117 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 not shown.