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
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
• Class
• Category
• Book
• Reader
• Book