improve setup flow

This commit is contained in:
João Geonizeli
2022-08-10 14:30:04 +00:00
parent f597282b90
commit 21c874118f
7 changed files with 130 additions and 11 deletions

View File

@@ -1,6 +1,16 @@
# Requisitos # Requisitos
- Docker - Docker (Gerenciador de container)
- docker-compose
[Instalando Docker no Windows](https://docs.docker.com/desktop/install/windows-install/)
# Setup # Setup
- Executar no terminal: './scripts/setup' - Execute `./scripts/setup` para gerar a base do container, esse processo pode demorar um pouco pois será baixada todas as depêndencias do projeto, libs e banco de dados.
# Levantar a aplicação
- Execute `docker-compose up`
# Executar comandos no container
- Execute `./scripts/bash` para executar comandos você precisa entrar no console do container, agora você poderar por exemplo rodar as migrações de dados.
- Execute `rails db:migration` para rodar as migrações no banco de dados.
- Execute `bundle exec rake environment "user:create_admin[sem.email@example.com, Seu nome]"` para criar seu usuário
- Execute `rails db:seed` para popular o banco com os assuntos, exios e categorias

View File

@@ -9,6 +9,7 @@
# bloom_taxonomy :string # bloom_taxonomy :string
# body :text # body :text
# check_type :string # check_type :string
# deleted_at :datetime
# difficulty :string # difficulty :string
# explanation :text # explanation :text
# instruction :text # instruction :text

View File

@@ -1,8 +1,100 @@
# This file should contain all the record creation needed to seed the database with its default values. [
# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). {:name=>"Cálculo",
# :category_name=>"Conhecimentos Básicos",
# Examples: :axis_name=>"Algoritmos de Alto Desempenho"},
# {:name=>"Geometria Analítica",
# movies = Movie.create([{ name: "Star Wars" }, { name: "Lord of the Rings" }]) :category_name=>"Conhecimentos Básicos",
# Character.create(name: "Luke", movie: movies.first) :axis_name=>"Algoritmos de Alto Desempenho"},
User.create!(email: 'admin@example.com', name: 'Admin User', password: 'password', password_confirmation: 'password') {:name=>"Álgebra Linear",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Algoritmos de Alto Desempenho"},
{:name=>"Probabilidade e Estatística",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Ciência, Tecnologia e Sociedade"},
{:name=>"Matemática Discreta",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Algoritmos de Alto Desempenho"},
{:name=>"Lógica Matemática",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Sistemas de Software"},
{:name=>"Pesquisa Operacional",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Algoritmos de Alto Desempenho"},
{:name=>"Cálculo Numérico",
:category_name=>"Modelagem e Simulação",
:axis_name=>"Ciência, Tecnologia e Sociedade"},
{:name=>"Física",
:category_name=>"Modelagem e Simulação",
:axis_name=>"Infraestrutura de Sistemas Computacionais"},
{:name=>"Algoritmos e Estruturas de Dados",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Algoritmos de Alto Desempenho"},
{:name=>"Projeto e Análise de Algoritmos",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Algoritmos de Alto Desempenho"},
{:name=>"Programação Estruturada",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Sistemas de Software"},
{:name=>"Programação Orientada a Objetos",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Sistemas de Software"},
{:name=>"Programação Funcional",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Sistemas de Software"},
{:name=>"Programação Web",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Sistemas de Software"},
{:name=>"Programação para Dispositivos ",
:category_name=>"Sistemas Inteligentes",
:axis_name=>"Infraestrutura de Sistemas Computacionais"},
{:name=>"Engenharia de Software",
:category_name=>"Engenharia e Banco de Dados",
:axis_name=>"Sistemas de Software"},
{:name=>"Banco de Dados",
:category_name=>"Engenharia e Banco de Dados",
:axis_name=>"Sistemas de Software"},
{:name=>"Gerência de Projetos",
:category_name=>"Engenharia e Banco de Dados",
:axis_name=>"Sistemas de Software"},
{:name=>"Arquitetura de Computadores",
:category_name=>"Conhecimentos Básicos",
:axis_name=>"Infraestrutura de Sistemas Computacionais"},
{:name=>"Sistemas Digitais",
:category_name=>"Sistemas Inteligentes",
:axis_name=>"Infraestrutura de Sistemas Computacionais"},
{:name=>"Sistemas Operacionais",
:category_name=>"Redes e Sistemas Operacionais",
:axis_name=>"Infraestrutura de Sistemas Computacionais"},
{:name=>"Redes de Computadores",
:category_name=>"Redes e Sistemas Operacionais",
:axis_name=>"Infraestrutura de Sistemas Computacionais"},
{:name=>"Compiladores",
:category_name=>"Sistemas Inteligentes",
:axis_name=>"Infraestrutura de Sistemas Computacionais"},
{:name=>"Teoria da Computação",
:category_name=>"Modelagem e Simulação",
:axis_name=>"Algoritmos de Alto Desempenho"},
{:name=>"Sistemas Inteligentes",
:category_name=>"Sistemas Inteligentes",
:axis_name=>"Algoritmos de Alto Desempenho"},
{:name=>"Robótica",
:category_name=>"Modelagem e Simulação",
:axis_name=>"Infraestrutura de Sistemas Computacionais"},
{:name=>"Computação Gráfica",
:category_name=>"Modelagem e Simulação",
:axis_name=>"Algoritmos de Alto Desempenho"},
{:name=>"Processamento de Sinais",
:category_name=>"Modelagem e Simulação",
:axis_name=>"Algoritmos de Alto Desempenho"
}
].each do |subject|
axis = Axis.find_or_create_by!(name: subject[:axis_name])
category = Category.find_or_create_by!(name: subject[:category_name])
subject = Subject.find_or_create_by!(name: subject[:name], category: category, axis: axis)
if subject
puts "'#{subject.name}' subject created"
else
puts "Did't create '#{subject[:name]}' subject"
end
end

View File

@@ -0,0 +1,9 @@
namespace :user do
task :create_admin, [:email, :name] do |_, args|
User.create!(
email: args[:email],
name: args[:name]
)
end
end

5
scripts/bash Executable file
View File

@@ -0,0 +1,5 @@
run(){
docker-compose run --rm $args rails $@
}
run bash

View File

@@ -9,6 +9,7 @@
# bloom_taxonomy :string # bloom_taxonomy :string
# body :text # body :text
# check_type :string # check_type :string
# deleted_at :datetime
# difficulty :string # difficulty :string
# explanation :text # explanation :text
# instruction :text # instruction :text

View File

@@ -9,6 +9,7 @@
# bloom_taxonomy :string # bloom_taxonomy :string
# body :text # body :text
# check_type :string # check_type :string
# deleted_at :datetime
# difficulty :string # difficulty :string
# explanation :text # explanation :text
# instruction :text # instruction :text