Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • VIR - wiki VIR - wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VIR - Visual Interactive Reading
  • VIR - wikiVIR - wiki
  • Wiki
  • banco_dados

Last edited by Guilherme Poletti da Costa Nov 30, 2024
Page history

banco_dados

Home Escopo Processo Mockups Configuração Arquitetura Gerência Código BD Qualidade Utilização

Banco de Dados

Descrição

O banco foi desenvolvido utilizando Flask como framework e SQLAlchemy como ORM, a escolha destas tecnologias ocorreu para facilitar a interação com o banco de dados de forma mais intuitiva e estruturada.

Modelagem

diagram1710


Tabelas

1 - User Armazena informações sobre os usuários do sistema, como os administradores do sistema ou o pessoal responsável pelas escolas.

•	id: Identificador único do usuário (chave primária).
•	name: Nome do usuário.
•	email: E-mail único para cada usuário.
•	password: Senha criptografada do usuário.
•	role: Privilégio administrativo do usuário.

2 - School Representa as escolas que utilizam o sistema. Cada escola pode ter várias turmas associadas.

•	id: Identificador único da escola (chave primária).
•	user_id: Relaciona o leitor ao seu usuário específico (chave estrangeira).
•	name: Nome da escola.
•	address: Endereço da escola.
•	CNPJ: CNPJ da escola.

3 - Class Representa as turmas dentro de uma escola. Cada turma pode ter vários leitores, ou alunos, associados e pode ter um ou mais livros sendo lidos.

•	id: Identificador único da turma (chave primária).
•	school_id: Relaciona a turma a uma escola específica (chave estrangeira).
•	name: Nome da turma.

4 - Reader Armazena informações sobre os alunos, ou leitores, que estão utilizando o sistema para acompanhar seu progresso na leitura de livros.

•	id: Identificador único do leitor (chave primária).
•	user_id: Relaciona o leitor ao seu usuário específico (chave estrangeira).
•	school_id: Relaciona o leitor a uma escola específica (chave estrangeira).
•	class_id: Relaciona o leitor a uma turma específica (chave estrangeira).
•	name: Nome do leitor.

5 - Category Representa as categorias dos livros disponíveis no sistema. Os livros foram classificados de maneira pré-definida, como "Ficção", "Aventura", "Educação", etc.

•	id: Identificador único da categoria (chave primária).
•	name: Nome da categoria.

6 - Book Armazena informações sobre os livros disponíveis no sistema, incluindo os dados do livro e a associação com categorias.

•	id: Identificador único do livro (chave primária).
•	title: Título do livro.
•	cover: Caminho para a imagem de capa do livro.
•	total_page: Número total de páginas do livro.
•	category_id: Relaciona o livro a uma categoria (chave estrangeira).
•	file_id: Relaciona o livro a um arquivo PDF (chave estrangeira).

7 - Chapter Armazena os capítulos de cada livro. Cada capítulo pode conter uma descrição e um GIF para ilustrar o que aconteceu no capítulo.

•	id: Identificador único do capítulo (chave primária).
•	book_id: Relaciona o capítulo ao livro (chave estrangeira).
•	title: Título do capítulo.
•	start_page: Página inicial do capítulo.
•	end_page: Página final do capítulo.

8 - ReaderProgress Monitora o progresso de leitura de cada aluno para cada livro. Armazena em que capítulo o aluno está e o percentual de progresso.

•	id: Identificador único do progresso (chave primária).
•	reader_id: Relaciona o progresso a um aluno (chave estrangeira).
•	book_id: Relaciona o progresso ao livro (chave estrangeira).
•	chapter_number: O último capítulo que o leitor parou. 
•	page_numer: A última página que o leitor parou.

9 - File Armazena os arquivos PDF dos livros, que são os documentos de leitura.

•	id: Identificador único do arquivo (chave primária).
•	book_id: Relaciona o arquivo ao livro (chave estrangeira).
•	name: Nome do arquivo.
•	file_url: Caminho para o arquivo PDF do livro.

Relações Entre as Tabelas

• User ↔ School: Um usuário com o privilégio de escola pode ter acesso a uma escolas, assim como cada escola tem um único usuário com privilégio de escola.

• School ↔ Class: Uma escola pode ter várias turmas, mas cada turma pertence a uma única escola.

• Class ↔ Reader: Uma turma pode ter vários leitores (alunos), mas cada aluno pertence a uma única turma.

• Category ↔ Book: Cada livro pertence a uma categoria, mas uma categoria pode ter vários livros associados.

• Book ↔ Chapter: Cada livro pode ter vários capítulos, mas um capítulo pertence a um único livro.

• Reader ↔ ReaderProgress ↔ Book ↔ Chapter: Cada leitor pode ter um ou mais registros de progresso, cada um associando o progresso do leitor a um livro e um capítulo específicos. Isso permite monitorar em que ponto o aluno está em cada livro e capítulo.

• Book ↔ File: Cada livro tem um arquivo PDF associado, armazenado na tabela File.

Clone repository
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • configurações
  • design_mockups
  • escopo
  • gerencia
  • Home
  • processo
  • qualidade
  • utilizacao