Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
cb09fe7
features BDD criadas
GustavoHCavalcanti Nov 17, 2025
cf480fe
features 98 a 101 implementadas
GustavoHCavalcanti Nov 17, 2025
30ecee7
issues 102 e 103 implementadas
GustavoHCavalcanti Nov 17, 2025
8800a52
arquivo txt
GustavoHCavalcanti Nov 17, 2025
d3a8e46
Update entrega_sprint1.txt
gabrielcaixeta01 Nov 18, 2025
7b79908
feat: issue 104
gabrielcaixeta01 Nov 18, 2025
e21db90
feat: issue 105
gabrielcaixeta01 Nov 18, 2025
cc1f21f
feat: issue 106
gabrielcaixeta01 Nov 18, 2025
f892243
feat: issue 107
gabrielcaixeta01 Nov 18, 2025
86ccf86
feat: issue 108
gabrielcaixeta01 Nov 18, 2025
6da09ad
feat: issue 109
gabrielcaixeta01 Nov 18, 2025
e1407df
fix: adicionando tags de issue
gabrielcaixeta01 Nov 18, 2025
09a8bc4
feat: adicionando Sprint1.md (wiki)
gabrielcaixeta01 Nov 18, 2025
4f96742
fix: adicionando link do repositorio em entrega_sprint1.txt
gabrielcaixeta01 Nov 18, 2025
007a59f
fix: arrumando ordem das issues na wiki
gabrielcaixeta01 Nov 18, 2025
36e53e9
fix: padronizando nome dos arquivos com base nas features
gabrielcaixeta01 Nov 18, 2025
ecc7bb4
delete: issue 248 era exemplo, removida
gabrielcaixeta01 Nov 18, 2025
4ed2d79
fix: link clicavel do repositorio
gabrielcaixeta01 Nov 18, 2025
40dc0cc
fix: adicionando link do repositorio em entrega_sprint1.txt tentativa 2
gabrielcaixeta01 Nov 18, 2025
5408981
fix: adicionando link do repositorio em entrega_sprint1.txt tentativa…
gabrielcaixeta01 Nov 18, 2025
63a6528
arquivo txt nao da pra deixar clicavel, tmj boa noite
gabrielcaixeta01 Nov 18, 2025
c4b4b9e
fix: update Sprint1.md no padrao pedido
gabrielcaixeta01 Nov 18, 2025
7353cf0
fix: ajuste no caminho dos links
gabrielcaixeta01 Nov 18, 2025
28ae9ef
fix: update na formatacao dos links em Sprint1.md
gabrielcaixeta01 Nov 18, 2025
500291f
feat: Adiciona especificações Gherkin para issues 110 a 113
vitor100110 Nov 18, 2025
115fa3f
Implementação inicial de autenticação e testes RSpec
GustavoHCavalcanti Nov 28, 2025
3b17d96
feat: adiciona definição e redefinição de senha(@issue-105, @issue-107)
GustavoHCavalcanti Nov 29, 2025
1cdfbef
test: adiciona testes para definição e redefinição de senha (@issue-1…
GustavoHCavalcanti Nov 29, 2025
68cec4c
feat: implementa lógica de formularios pendentes (@issue-109)
GustavoHCavalcanti Nov 29, 2025
35ee20e
feat(issue-99): implementa serviço de resposta de formulário
GustavoHCavalcanti Dec 1, 2025
1bb6c6f
todos arquivos faltando
vitor100110 Dec 3, 2025
4e31dbd
todos arquivos faltando
vitor100110 Dec 3, 2025
856d8b1
fix: gerar relatório de administrador
GustavoHCavalcanti Dec 3, 2025
d5f6d9e
fix: todos os testes consertados
GustavoHCavalcanti Dec 3, 2025
2a97a32
wiki adicionada
GustavoHCavalcanti Dec 8, 2025
5fd2751
links atualizados
GustavoHCavalcanti Dec 8, 2025
6e8dd65
links
GustavoHCavalcanti Dec 8, 2025
0c45a74
feat: rails instalado no projeto
gabrielcaixeta01 Dec 10, 2025
54bfadd
fix: ajustes na formatacao das features, sem alterar o conteudo
gabrielcaixeta01 Dec 10, 2025
cc606d9
Gemfile ajustado
gabrielcaixeta01 Dec 10, 2025
a7745a2
fix: dependencias adicionadas no gemfile
gabrielcaixeta01 Dec 10, 2025
fee7abb
feat: pagina inicial
gabrielcaixeta01 Dec 10, 2025
4dba3ca
feat: estrutura das paginas com rails generate
gabrielcaixeta01 Dec 10, 2025
376fc83
feat: criando models
gabrielcaixeta01 Dec 10, 2025
d8e409d
feat: rodando migrations
gabrielcaixeta01 Dec 10, 2025
ec95c69
fix: Boostrap ajustado e funcionado
gabrielcaixeta01 Dec 11, 2025
7604c99
fix: Estilo das paginas inicias funcionando
gabrielcaixeta01 Dec 11, 2025
d5ce21e
feat: Boostrap das paginas melhorado e bonito, partindo pra parte fun…
gabrielcaixeta01 Dec 11, 2025
9b3d30f
fix: dando pra adicionar usuarios
gabrielcaixeta01 Dec 11, 2025
3461547
feat: login com adm criado pelo banco funcionando
gabrielcaixeta01 Dec 11, 2025
153fb2b
fix: fluxo pos login de adm
gabrielcaixeta01 Dec 11, 2025
d4c4c14
feat: CRUD de formularios funcionando
gabrielcaixeta01 Dec 11, 2025
91c46db
fix: nos botoes de form
gabrielcaixeta01 Dec 11, 2025
9419e4b
CRUD de templates e turmas criado, nao testado ainda
gabrielcaixeta01 Dec 11, 2025
526287b
fix: CRUD de turma funcionando
gabrielcaixeta01 Dec 11, 2025
16e36af
fix: ajustes no layout
gabrielcaixeta01 Dec 11, 2025
a3a4dda
fix:navbar ajustada
gabrielcaixeta01 Dec 11, 2025
5fd9ded
fix: erro ao entrar no form corrigido
gabrielcaixeta01 Dec 11, 2025
4d35596
fix: tela de admin ajustada
gabrielcaixeta01 Dec 11, 2025
05b2393
CRUD de templates funcionando
gabrielcaixeta01 Dec 11, 2025
0b5cf91
fix: css de editar e criar template arrumado
gabrielcaixeta01 Dec 11, 2025
075a14f
CRUD de formularios pronto e estilizado
gabrielcaixeta01 Dec 11, 2025
68dcdc9
CRUD de turmas funcionando, relacao M:N entre alunos e turmas adicionada
gabrielcaixeta01 Dec 11, 2025
f07e4ab
fix: estilo da nav e da pagina de perfil ajustado
gabrielcaixeta01 Dec 11, 2025
2d8a5cd
fix: erros na nav corrigidos
gabrielcaixeta01 Dec 11, 2025
be700a4
refactor: removendo arquivos antigos, sem funcao atualmente
gabrielcaixeta01 Dec 11, 2025
c5183af
feat: importacao de turma csv funcionando
gabrielcaixeta01 Dec 11, 2025
3024d88
feat: formulario da pra responder apenas 1 vez e depois apenas ver as…
gabrielcaixeta01 Dec 11, 2025
b938da4
feat: como adm da pra ver as respostas anonimas
gabrielcaixeta01 Dec 11, 2025
dfc037b
test: aumentando test coverage
GustavoHCavalcanti Dec 12, 2025
5564b3d
test: test coverage > 90%
GustavoHCavalcanti Dec 12, 2025
ec717b8
Versoes ajustadas para compatibilidade, README informando tecnologias…
gabrielcaixeta01 Dec 12, 2025
7b2650d
feat: documentacao dos metodos completa pro Rdoc
gabrielcaixeta01 Dec 12, 2025
915f838
Cobertura de 91,67%
gabrielcaixeta01 Dec 12, 2025
e88c939
fix: ajustes na nota de TurmasImportService, coverage subiu
gabrielcaixeta01 Dec 12, 2025
56287db
fix: ajuste em bug nos formularios
gabrielcaixeta01 Dec 12, 2025
8e33eeb
fix: ajuste demora para carregar as turmas
gabrielcaixeta01 Dec 12, 2025
154e5ec
informacoes para login adicionadas no readme
gabrielcaixeta01 Dec 12, 2025
b5e5072
feat: possibilidade de editar senha
gabrielcaixeta01 Dec 12, 2025
115ecc4
Coverage abaixo de 90
gabrielcaixeta01 Dec 12, 2025
a669d45
test: test coverage > 90%
GustavoHCavalcanti Dec 14, 2025
e98915e
fix: ajustes no lint e na documentacao
gabrielcaixeta01 Dec 14, 2025
45ad67e
rdoc
gabrielcaixeta01 Dec 14, 2025
642c7cf
Update repository clone URL in README
GustavoHCavalcanti Dec 14, 2025
cc6bc49
Projeto finalizado
GustavoHCavalcanti Dec 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
Binary file added .DS_Store
Binary file not shown.
2 changes: 2 additions & 0 deletions .bundle/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
BUNDLE_PATH: "vendor/bundle"
51 changes: 51 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 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 assets.
/node_modules/
/app/assets/builds/*
!/app/assets/builds/.keep
/public/assets

# Ignore CI service files.
/.github

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

# Ignore development files
/.devcontainer

# Ignore Docker-related files
/.dockerignore
/Dockerfile*
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DATABASE_URL=postgresql://postgres:rpSMTfujVuHcXODYVqpHKtLvRSPKeKAG@shinkansen.proxy.rlwy.net:48163/railway
12 changes: 12 additions & 0 deletions .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: weekly
open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 10
124 changes: 124 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: CI

on:
pull_request:
push:
branches: [ main ]

jobs:
scan_ruby:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- name: Scan for common Rails security vulnerabilities using static analysis
run: bin/brakeman --no-pager

- name: Scan for known security vulnerabilities in gems used
run: bin/bundler-audit

scan_js:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- name: Scan for security vulnerabilities in JavaScript dependencies
run: bin/importmap audit

lint:
runs-on: ubuntu-latest
env:
RUBOCOP_CACHE_ROOT: tmp/rubocop
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- name: Prepare RuboCop cache
uses: actions/cache@v4
env:
DEPENDENCIES_HASH: ${{ hashFiles('.ruby-version', '**/.rubocop.yml', '**/.rubocop_todo.yml', 'Gemfile.lock') }}
with:
path: ${{ env.RUBOCOP_CACHE_ROOT }}
key: rubocop-${{ runner.os }}-${{ env.DEPENDENCIES_HASH }}-${{ github.ref_name == github.event.repository.default_branch && github.run_id || 'default' }}
restore-keys: |
rubocop-${{ runner.os }}-${{ env.DEPENDENCIES_HASH }}-

- name: Lint code for consistent style
run: bin/rubocop -f github

test:
runs-on: ubuntu-latest

# services:
# redis:
# image: valkey/valkey:8
# ports:
# - 6379:6379
# options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- name: Run tests
env:
RAILS_ENV: test
# RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
# REDIS_URL: redis://localhost:6379/0
run: bin/rails db:test:prepare test

system-test:
runs-on: ubuntu-latest

# services:
# redis:
# image: valkey/valkey:8
# ports:
# - 6379:6379
# options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- name: Run System Tests
env:
RAILS_ENV: test
# RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
# REDIS_URL: redis://localhost:6379/0
run: bin/rails db:test:prepare test:system

- name: Keep screenshots from failed system tests
uses: actions/upload-artifact@v4
if: failure()
with:
name: screenshots
path: ${{ github.workspace }}/tmp/screenshots
if-no-files-found: ignore
3 changes: 3 additions & 0 deletions .kamal/hooks/docker-setup.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

echo "Docker set up on $KAMAL_HOSTS..."
3 changes: 3 additions & 0 deletions .kamal/hooks/post-app-boot.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

echo "Booted app version $KAMAL_VERSION on $KAMAL_HOSTS..."
14 changes: 14 additions & 0 deletions .kamal/hooks/post-deploy.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/sh

# A sample post-deploy hook
#
# These environment variables are available:
# KAMAL_RECORDED_AT
# KAMAL_PERFORMER
# KAMAL_VERSION
# KAMAL_HOSTS
# KAMAL_ROLES (if set)
# KAMAL_DESTINATION (if set)
# KAMAL_RUNTIME

echo "$KAMAL_PERFORMER deployed $KAMAL_VERSION to $KAMAL_DESTINATION in $KAMAL_RUNTIME seconds"
3 changes: 3 additions & 0 deletions .kamal/hooks/post-proxy-reboot.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

echo "Rebooted kamal-proxy on $KAMAL_HOSTS"
3 changes: 3 additions & 0 deletions .kamal/hooks/pre-app-boot.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

echo "Booting app version $KAMAL_VERSION on $KAMAL_HOSTS..."
51 changes: 51 additions & 0 deletions .kamal/hooks/pre-build.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/sh

# A sample pre-build hook
#
# Checks:
# 1. We have a clean checkout
# 2. A remote is configured
# 3. The branch has been pushed to the remote
# 4. The version we are deploying matches the remote
#
# These environment variables are available:
# KAMAL_RECORDED_AT
# KAMAL_PERFORMER
# KAMAL_VERSION
# KAMAL_HOSTS
# KAMAL_ROLES (if set)
# KAMAL_DESTINATION (if set)

if [ -n "$(git status --porcelain)" ]; then
echo "Git checkout is not clean, aborting..." >&2
git status --porcelain >&2
exit 1
fi

first_remote=$(git remote)

if [ -z "$first_remote" ]; then
echo "No git remote set, aborting..." >&2
exit 1
fi

current_branch=$(git branch --show-current)

if [ -z "$current_branch" ]; then
echo "Not on a git branch, aborting..." >&2
exit 1
fi

remote_head=$(git ls-remote $first_remote --tags $current_branch | cut -f1)

if [ -z "$remote_head" ]; then
echo "Branch not pushed to remote, aborting..." >&2
exit 1
fi

if [ "$KAMAL_VERSION" != "$remote_head" ]; then
echo "Version ($KAMAL_VERSION) does not match remote HEAD ($remote_head), aborting..." >&2
exit 1
fi

exit 0
47 changes: 47 additions & 0 deletions .kamal/hooks/pre-connect.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env ruby

# A sample pre-connect check
#
# Warms DNS before connecting to hosts in parallel
#
# These environment variables are available:
# KAMAL_RECORDED_AT
# KAMAL_PERFORMER
# KAMAL_VERSION
# KAMAL_HOSTS
# KAMAL_ROLES (if set)
# KAMAL_DESTINATION (if set)
# KAMAL_RUNTIME

hosts = ENV["KAMAL_HOSTS"].split(",")
results = nil
max = 3

elapsed = Benchmark.realtime do
results = hosts.map do |host|
Thread.new do
tries = 1

begin
Socket.getaddrinfo(host, 0, Socket::AF_UNSPEC, Socket::SOCK_STREAM, nil, Socket::AI_CANONNAME)
rescue SocketError
if tries < max
puts "Retrying DNS warmup: #{host}"
tries += 1
sleep rand
retry
else
puts "DNS warmup failed: #{host}"
host
end
end

tries
end
end.map(&:value)
end

retries = results.sum - hosts.size
nopes = results.count { |r| r == max }

puts "Prewarmed %d DNS lookups in %.2f sec: %d retries, %d failures" % [ hosts.size, elapsed, retries, nopes ]
Loading