Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d374236
feat: estrutura inicial do frontend nuxt e telas
Marquito-2003 Nov 30, 2025
62123b5
feat: tela de login
luuhcy Nov 30, 2025
e9202fc
feat: ajuste tela de login
luuhcy Nov 30, 2025
1c8afd5
feat/tela de avalicao
luuhcy Nov 30, 2025
07814fc
feat/ajuste tela
luuhcy Nov 30, 2025
3a10d74
Fix capitalization in welcome message
luuhcy Nov 30, 2025
87d356f
Add database files and setup script
Dec 1, 2025
454ff01
Add database user guide in Portuguese
Dec 1, 2025
8370c61
Update database structure based on ER diagram
Dec 4, 2025
ffe06b9
docs:ajuste pasta
luuhcy Dec 5, 2025
5745c80
feat:Implementação da tela de cadastro e componentes de login
luuhcy Dec 5, 2025
014bc98
feat: implementa UI completa baseada nos templates e features SIGAA S…
Dec 5, 2025
55eeeed
resolve: merge conflicts sprint-2
Dec 5, 2025
16303fa
feature: Criação de telas/componentes de admin
luuhcy Dec 5, 2025
33b42ce
feat:sistema de login/cadastro
luuhcy Dec 6, 2025
e40b84c
feat: criação de bd e ajustes
luuhcy Dec 6, 2025
fe620f4
versão anterior
luuhcy Dec 6, 2025
792c168
Merge branch 'sprint-2' with remote changes
luuhcy Dec 6, 2025
05fc753
fix: corrigindo erro do banco de dados
Marquito-2003 Dec 6, 2025
7456925
fix: ajuste de tela de login
luuhcy Dec 6, 2025
b16c5c2
fix: ajuste de redirecionamento tela de login
luuhcy Dec 6, 2025
74581c2
feat: fluxo de usuário admin e criação de login
luuhcy Dec 7, 2025
66e0914
feat: implementação de importação de dados sigaa
luuhcy Dec 7, 2025
4993932
fix: correção de importação de arquivo cvs sigaa
luuhcy Dec 7, 2025
7eea380
feat: implementação de atualização de dados cvs
luuhcy Dec 7, 2025
4769255
fix: consertando a estrutura do projeto
Marquito-2003 Dec 8, 2025
2e1d247
fix: conectando o frontend
Marquito-2003 Dec 8, 2025
efd7b51
fix: criação banco de dados
Marquito-2003 Dec 8, 2025
4cd862b
fix: correção de funcionalidades
Marquito-2003 Dec 8, 2025
9d1ffb2
fix: ajuste de importação de dados sigaa
luuhcy Dec 8, 2025
2cb4b07
test: configuração do rspec
luuhcy Dec 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
266 changes: 266 additions & 0 deletions GUIA_BANCO_DADOS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,266 @@
# Guia do Banco de Dados CAMAAR

## Visão Geral
O CAMAAR é um sistema para avaliação de atividades acadêmicas remotas do CIC. O banco de dados SQLite armazena informações sobre disciplinas, turmas, docentes e discentes.

## Estrutura do Banco

### Tabelas Principais

#### 1. disciplinas
Armazena as disciplinas oferecidas
```sql
CREATE TABLE disciplinas (
code TEXT PRIMARY KEY, -- Código da disciplina (ex: CIC0097)
name TEXT NOT NULL -- Nome da disciplina (ex: BANCOS DE DADOS)
);
```

#### 2. turmas
Representa as turmas de cada disciplina por semestre
```sql
CREATE TABLE turmas (
id INTEGER PRIMARY KEY AUTOINCREMENT,
disciplina_code TEXT NOT NULL, -- FK para disciplinas
class_code TEXT NOT NULL, -- Código da turma (ex: TA)
semester TEXT NOT NULL, -- Semestre (ex: 2021.2)
time TEXT -- Horário (ex: 35T45)
);
```

#### 3. docentes
Informações dos professores
```sql
CREATE TABLE docentes (
usuario TEXT PRIMARY KEY, -- CPF ou ID único
nome TEXT NOT NULL,
departamento TEXT,
formacao TEXT, -- DOUTORADO, MESTRADO, etc.
email TEXT UNIQUE NOT NULL,
ocupacao TEXT DEFAULT 'docente'
);
```

#### 4. discentes
Informações dos estudantes
```sql
CREATE TABLE discentes (
matricula TEXT PRIMARY KEY, -- Matrícula do aluno
nome TEXT NOT NULL,
curso TEXT NOT NULL,
usuario TEXT UNIQUE NOT NULL, -- Usuário de login
formacao TEXT DEFAULT 'graduando',
ocupacao TEXT DEFAULT 'dicente',
email TEXT UNIQUE NOT NULL
);
```

#### 5. turma_docente
Relacionamento N:M entre turmas e docentes
```sql
CREATE TABLE turma_docente (
turma_id INTEGER,
docente_usuario TEXT,
PRIMARY KEY (turma_id, docente_usuario)
);
```

#### 6. matriculas
Relacionamento N:M entre turmas e discentes
```sql
CREATE TABLE matriculas (
turma_id INTEGER,
discente_matricula TEXT,
PRIMARY KEY (turma_id, discente_matricula)
);
```

## Consultas Essenciais

### 1. Listar todas as disciplinas
```sql
SELECT code, name FROM disciplinas;
```

### 2. Buscar turmas de uma disciplina específica
```sql
SELECT t.*, d.name as disciplina_nome
FROM turmas t
JOIN disciplinas d ON t.disciplina_code = d.code
WHERE d.code = 'CIC0097';
```

### 3. Listar alunos de uma turma
```sql
SELECT ds.matricula, ds.nome, ds.curso, ds.email
FROM discentes ds
JOIN matriculas m ON ds.matricula = m.discente_matricula
JOIN turmas t ON m.turma_id = t.id
WHERE t.disciplina_code = 'CIC0097'
AND t.class_code = 'TA'
AND t.semester = '2021.2';
```

### 4. Buscar professor de uma turma
```sql
SELECT doc.nome, doc.email, doc.departamento
FROM docentes doc
JOIN turma_docente td ON doc.usuario = td.docente_usuario
JOIN turmas t ON td.turma_id = t.id
WHERE t.disciplina_code = 'CIC0097'
AND t.class_code = 'TA'
AND t.semester = '2021.2';
```

### 5. Contar alunos por curso em uma disciplina
```sql
SELECT ds.curso, COUNT(*) as total_alunos
FROM discentes ds
JOIN matriculas m ON ds.matricula = m.discente_matricula
JOIN turmas t ON m.turma_id = t.id
WHERE t.disciplina_code = 'CIC0097'
GROUP BY ds.curso
ORDER BY total_alunos DESC;
```

### 6. Buscar todas as turmas de um professor
```sql
SELECT d.name as disciplina, t.class_code, t.semester, t.time
FROM turmas t
JOIN disciplinas d ON t.disciplina_code = d.code
JOIN turma_docente td ON t.id = td.turma_id
JOIN docentes doc ON td.docente_usuario = doc.usuario
WHERE doc.email = 'mholanda@unb.br';
```

## Operações de Inserção

### 1. Adicionar nova disciplina
```sql
INSERT INTO disciplinas (code, name)
VALUES ('CIC0123', 'NOVA DISCIPLINA');
```

### 2. Criar nova turma
```sql
INSERT INTO turmas (disciplina_code, class_code, semester, time)
VALUES ('CIC0123', 'TB', '2024.1', '24M34');
```

### 3. Matricular aluno em turma
```sql
-- Primeiro, obter o ID da turma
SELECT id FROM turmas
WHERE disciplina_code = 'CIC0123'
AND class_code = 'TB'
AND semester = '2024.1';

-- Depois, inserir a matrícula (assumindo turma_id = 4)
INSERT INTO matriculas (turma_id, discente_matricula)
VALUES (4, '190084006');
```

### 4. Associar professor à turma
```sql
INSERT INTO turma_docente (turma_id, docente_usuario)
VALUES (4, '83807519491');
```

## Operações de Atualização

### 1. Atualizar email de aluno
```sql
UPDATE discentes
SET email = 'novo.email@aluno.unb.br'
WHERE matricula = '190084006';
```

### 2. Alterar horário de turma
```sql
UPDATE turmas
SET time = '46T23'
WHERE disciplina_code = 'CIC0097'
AND class_code = 'TA'
AND semester = '2021.2';
```

### 3. Atualizar formação do docente
```sql
UPDATE docentes
SET formacao = 'PÓS-DOUTORADO'
WHERE usuario = '83807519491';
```

## Integração com a Aplicação

### Para Login de Usuários
```sql
-- Verificar se é docente
SELECT usuario, nome, email, 'docente' as tipo
FROM docentes
WHERE email = ? AND usuario = ?;

-- Verificar se é discente
SELECT usuario, nome, email, 'discente' as tipo
FROM discentes
WHERE email = ? AND usuario = ?;
```

### Para Dashboard do Professor
```sql
-- Turmas do professor logado
SELECT d.name, t.class_code, t.semester,
COUNT(m.discente_matricula) as total_alunos
FROM turmas t
JOIN disciplinas d ON t.disciplina_code = d.code
JOIN turma_docente td ON t.id = td.turma_id
LEFT JOIN matriculas m ON t.id = m.turma_id
WHERE td.docente_usuario = ?
GROUP BY t.id, d.name, t.class_code, t.semester;
```

### Para Dashboard do Aluno
```sql
-- Disciplinas do aluno logado
SELECT d.name, t.class_code, t.semester, doc.nome as professor
FROM turmas t
JOIN disciplinas d ON t.disciplina_code = d.code
JOIN matriculas m ON t.id = m.turma_id
JOIN turma_docente td ON t.id = td.turma_id
JOIN docentes doc ON td.docente_usuario = doc.usuario
WHERE m.discente_matricula = ?;
```

## Configuração Inicial

1. **Instalar SQLite** (se não estiver instalado)
2. **Executar setup**:
```bash
cd db-files
bash setup_database.sh
```
3. **Conectar na aplicação**:
```javascript
// Node.js exemplo
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('./db-files/camaar.db');
```

## Backup e Manutenção

### Backup do banco
```bash
cp camaar.db camaar_backup_$(date +%Y%m%d).db
```

### Verificar integridade
```sql
PRAGMA integrity_check;
```

### Estatísticas das tabelas
```sql
SELECT name,
(SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=m.name) as count
FROM sqlite_master m WHERE type='table';
```
2 changes: 0 additions & 2 deletions README.md

This file was deleted.

45 changes: 45 additions & 0 deletions backend/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# See https://docs.docker.com/engine/reference/builder/#dockerignore-file for more about ignoring files.

# Ignore git directory.
/.git/
/.gitignore

# Ignore bundler config.
/.bundle

# Ignore all environment files.
/.env*

# Ignore all default key files.
/config/master.key
/config/credentials/*.key

# Ignore all logfiles and tempfiles.
/log/*
/tmp/*
!/log/.keep
!/tmp/.keep

# Ignore pidfiles, but keep the directory.
/tmp/pids/*
!/tmp/pids/.keep

# Ignore storage (uploaded files in development and any SQLite databases).
/storage/*
!/storage/.keep
/tmp/storage/*
!/tmp/storage/.keep

# Ignore CI service files.
/.github

# Ignore Kamal files.
/config/deploy*.yml
/.kamal

# Ignore development files
/.devcontainer

# Ignore Docker-related files
/.dockerignore
/Dockerfile*
9 changes: 9 additions & 0 deletions backend/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# See https://git-scm.com/docs/gitattributes for more about git attribute files.

# Mark the database schema as having been generated.
db/schema.rb linguist-generated

# Mark any vendored files as having been vendored.
vendor/* linguist-vendored
config/credentials/*.yml.enc diff=rails_credentials
config/credentials.yml.enc diff=rails_credentials
12 changes: 12 additions & 0 deletions backend/.github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10
Loading