Skip to content

Gabriel-Baroni/Bem-Aprendi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

185 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

Um trabalho para o PROJETO INTEGRADOR e para DESENVOLVIMENTO DE APLICAÇÕES WEB - 4º Informática do IFSP-Jacareí


👓 Professores responsáveis

  • Ana Paula Abrantes de Castro Shiguemori
  • Flavia Beatriz Rodrigues Prisco da Cunha
  • Ariadne Arrais Cruz
  • Luis Eduardo Sales do Nascimento

🎯 Objetivo do projeto

O objetivo do projeto é construir um jogo de navegador educativo, que visa ensinar e estimular crianças a apreder de forma lúdica e prática. O estimulo ocorre com mimi games educativos, exercitanto o raciocício lógico das crianças. Os personagens pertencem a fauna brasileira e o mascote é um bem-te-vi, dando origem ao nome do jogo (Bem-Aprendi), cada personagem ensina uma matéria distinta, deixando a experiência mais divertida.

👥 Público-alvo

O público-alvo desse projeto são crianças da faixa etária a partir de 8 anos que saibam ler e escrever.

🔨 Requisitos Funionais para o site

  • Sistema de Login e cadastro de usuários: Armazenamento dos dados do usuário no banco de dados.

  • Mini games: Mini games educativos que ensinem as crianças conceitos báscios das matérias.

  • Sistema de pontuação e Ranking: Pontuação do usuário em cada disciplina e pontuação geral do usuário. A pontuação geral é usada como base para a criação de um ranking entre os usuários.

☑️ Requisitos não funcionais para o site

Requisitos de Produto:

  • Segurança: Garantir a segurança dos dados do usuário.

  • Facilidade de uso: Garantir que o sistema seja de uso fácil e intuitivo, possibilitando que crianças utilizem do sistema sem grandes dificuldades.

  • Desempenho: Garantir que o site funcione sem travamentos.

  • Qualidade educacional: Garantir que os minigames estejam conceitualmente corretos e que proporcionem um aprendizado de qualidade às crianças

Requisitos Organizacionais:

  • Sistema operacional compatível: O sistema deve ser acessado por qualquer navegador dos seguintes sistemas: Windows, Linux, android, ios, MacOs.

  • Tecnologias utilizadas: O sistema deve ser WEB, ou seja, precisa ser desenvolvido para ser acessados pelos navegadores.

Requisitos Externos:

  • Lei Geral de Proteção de Dados (LGPD) - Lei nº 13.709/2018: O sistema deve seguir as normas estabelecidas pela LGPD.

  • Marco Civil da Internet (Lei nº 12.965/2014): O sistema deve seguir as normas estabelecidas pelo Marco Civil da Internet.

  • Código de Defesa do Consumidor (CDC) – Lei nº 8.078/1990: O sistema deve seguir as normas estabelecidas pelo Código de Defesa do Consumidor.

📑 Matriz de Requisitos


  • Observação: C.T significa Criação de Tela

📱Mockup do APP

Esboço da Interface: Mockup do site: https://www.canva.com/design/DAGhcNGDoB4/RJ91RutQgmSEIraWqMDJyQ/edit

🧍Diagramas UML

Diagrama de Caso de Uso

Diagrama de Classes

Modelo Entidade Relacionamento (MER)

📖 Dicionário de Dados

Esse projeto contará com as seguintes Entidades e atributos

Users

Essa entidade é necessária para cadastrar os dados dos usuários, utilizando o serviço de autenticação do supabase. Os dados são os atributos:

  • uuid: É um atributo do tipo uuid. É o responsável por criar um Id único para o usuário(CHAVE PRIMÁRIA).
  • email: É um atributo do tipo TEXT. É o responsável por armazenar o email do usuário.

Entidade Usuario_infos

Essa entidade é necessária para cadastrar os dados adicionais dos usuários. Os dados são os atributos:

  • id: É um atributo do tipo INT8. É o responsável por criar um Id único para o usuário(CHAVE PRIMÁRIA).
  • tipo: É um atributo do tipo TEXT. É o responsável por armazenar o tipo do usuário: responsável ou criança.
  • nome: É um atributo do tipo TEXT. É o responsável por armazenar o nome do usuário.
  • idade: É um atributo do tipo INT8. É o responsável por armazenar a idade do usuário.
  • id_auth: É um atributo do tipo UUID. É o responsável por referênciar esse usuário a entidade Users(CHAVE ESTRANGEIRA).

Entidade Crianca

Essa entidade é necessária para cadastrar os dados das crianças. Os dados são os atributos:

  • id: É um atributo do tipo INT8. É o responsável por criar um Id único para o usuário(CHAVE PRIMÁRIA).
  • nome: É um atributo do tipo TEXT. É o responsável por armazenar o nome do usuário.
  • idade: É um atributo do tipo INT8. É o responsável por armazenar a idade do usuário.
  • id_responsavel: É um atributo do tipo UUID. É o responsável por referênciar essa criança a algum responsável da entidade Users(CHAVE ESTRANGEIRA).

Entidade pontuaçoes-materias

Essa entidade é necessária para relacionar a última pontuação feita com a criança. Os dados são os atributos:

  • id: É um atributo do tipo INT8. É o responsável por criar um Id único para a pontuação(CHAVE PRIMÁRIA).

  • materia: É um atributo do tipo TEXT. É o responsável por armazenar o nome da matéria referente a pontuação.

  • pontuacao: É um atributo do tipo INT8. É o responsável por armazenar a pontuação obtida pela crianca.

  • updated_at: É um atributo do tipo timestamptz. É o responsável por armazenar a data e hora da atualização da pontuação.

  • id_crianca: É um atributo do tipo UUID. É o responsável por referênciar essa pontuação a açguma criança da entidade Crianca(CHAVE ESTRANGEIRA).

    Entidade historico-tentativas

Essa entidade é necessária para armazenar as tentativas feitas pela criança. Os dados são os atributos:

  • id: É um atributo do tipo INT8. É o responsável por criar um Id único para a pontuação(CHAVE PRIMÁRIA).
  • materia: É um atributo do tipo TEXT. É o responsável por armazenar o nome da matéria referente a pontuação.
  • pontuacao: É um atributo do tipo INT8. É o responsável por armazenar a pontuação obtida pela crianca.
  • created_at: É um atributo do tipo timestamptz. É o responsável por armazenar a data e hora da criação da tentativa.
  • id_crianca: É um atributo do tipo UUID. É o responsável por referênciar essa pontuação a açguma criança da entidade Crianca(CHAVE ESTRANGEIRA).

Como utilizar 🤔

1. Pré-requisitos

Antes de começar, você vai precisar ter as seguintes ferramentas instaladas em sua máquina:

  • Node.js: (Recomendado v18 ou superior)
  • npm: (geralmente instalado junto com o Node.js)
  • Git: (para clonar o repositório)

2. Instalação

  1. Clone o repositório (substitua pela URL do seu repositório):

    git clone [https://github.com/seu-usuario/BEM-APRENDI.git](https://github.com/seu-usuario/BEM-APRENDI.git)
  2. Entre na pasta do projeto:

    cd BEM-APRENDI
  3. Instale as dependências do Node.js:

    npm install

3. Configuração do Ambiente (.env)

Este projeto precisa de um arquivo .env na raiz para armazenar chaves de API e outras variáveis de ambiente.

  1. Crie um arquivo chamado .env na pasta principal do projeto.

  2. Adicione as variáveis de ambiente necessárias. (Como seu projeto usa o Supabase, você precisará das chaves do seu painel):

    # Exemplo para conexão com Supabase
    SUPABASE_URL=COLE_AQUI_A_URL_DO_SEU_PROJETO_SUPABASE
    SUPABASE_KEY=COLE_AQUI_A_SUA_CHAVE_ANON_SUPABASE

    Nota: Você encontra essas chaves no painel do seu projeto no Supabase, em "Project Settings" > "API".


4. Executando o Servidor

Após instalar e configurar, você pode iniciar o servidor.

  1. Inicie o servidor local:

    node server/index.js

    (Como alternativa, se você tiver um script "start" no seu package.json, você pode usar npm start)

  2. O terminal deverá exibir a mensagem:

    Servidor rodando em http://localhost:3000
    
  3. Abra seu navegador e acesse o jogo: http://localhost:3000


🧰 Tecnologias Utilizadas

Front-end:

Back-end:

Banco de Dados:

Diagramas e Mockups:

💻 Desenvolvedores


Gabriel de Paula Baroni

Vinícius Ferreira Guimarães Maximo

Renan Alexandre Morais de Souza

Felipe Oliveira Batista Silva

About

Projeto integrador e de Desenvolvimento WEB do 4º ano Informática IFSP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors