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
This is an old version of this page. You can view the most recent version or browse the 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

eddiagr


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