diff --git a/README.md b/README.md index 723d87c..a5bb25e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,16 @@ # Requisitos -- Docker -- docker-compose +- Docker (Gerenciador de container) + +[Instalando Docker no Windows](https://docs.docker.com/desktop/install/windows-install/) # Setup -- Executar no terminal: './scripts/setup' \ No newline at end of file +- 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 \ No newline at end of file diff --git a/app/models/question.rb b/app/models/question.rb index 5cce21c..ef30873 100644 --- a/app/models/question.rb +++ b/app/models/question.rb @@ -9,6 +9,7 @@ # bloom_taxonomy :string # body :text # check_type :string +# deleted_at :datetime # difficulty :string # explanation :text # instruction :text diff --git a/db/seeds.rb b/db/seeds.rb index a129214..50a1c26 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -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). -# -# Examples: -# -# movies = Movie.create([{ name: "Star Wars" }, { name: "Lord of the Rings" }]) -# Character.create(name: "Luke", movie: movies.first) -User.create!(email: 'admin@example.com', name: 'Admin User', password: 'password', password_confirmation: 'password') \ No newline at end of file +[ + {:name=>"Cálculo", + :category_name=>"Conhecimentos Básicos", + :axis_name=>"Algoritmos de Alto Desempenho"}, + {:name=>"Geometria Analítica", + :category_name=>"Conhecimentos Básicos", + :axis_name=>"Algoritmos de Alto Desempenho"}, + {: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 \ No newline at end of file diff --git a/lib/tasks/create_user.rake b/lib/tasks/create_user.rake new file mode 100644 index 0000000..34d81cf --- /dev/null +++ b/lib/tasks/create_user.rake @@ -0,0 +1,9 @@ +namespace :user do + task :create_admin, [:email, :name] do |_, args| + User.create!( + email: args[:email], + name: args[:name] + ) + end +end + diff --git a/scripts/bash b/scripts/bash new file mode 100755 index 0000000..556e1af --- /dev/null +++ b/scripts/bash @@ -0,0 +1,5 @@ +run(){ + docker-compose run --rm $args rails $@ +} + +run bash \ No newline at end of file diff --git a/spec/factories/questions.rb b/spec/factories/questions.rb index 5c5f6c3..f26aaaa 100644 --- a/spec/factories/questions.rb +++ b/spec/factories/questions.rb @@ -9,6 +9,7 @@ # bloom_taxonomy :string # body :text # check_type :string +# deleted_at :datetime # difficulty :string # explanation :text # instruction :text diff --git a/spec/models/question_spec.rb b/spec/models/question_spec.rb index 83a4302..60f1284 100644 --- a/spec/models/question_spec.rb +++ b/spec/models/question_spec.rb @@ -9,6 +9,7 @@ # bloom_taxonomy :string # body :text # check_type :string +# deleted_at :datetime # difficulty :string # explanation :text # instruction :text