sis_core 1.0.2 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/sis/core/application_controller.rb +10 -2
  3. data/app/controllers/sis/core/menus_controller.rb +22 -0
  4. data/app/controllers/sis/core/users_controller.rb +71 -0
  5. data/app/models/sis/core/academic_programme.rb +17 -0
  6. data/app/models/sis/core/academic_year.rb +7 -0
  7. data/app/models/sis/core/applicant.rb +8 -1
  8. data/app/models/sis/core/application.rb +50 -0
  9. data/app/models/sis/core/application_document.rb +12 -0
  10. data/app/models/sis/core/application_module.rb +8 -0
  11. data/app/models/sis/core/application_setup.rb +23 -0
  12. data/app/models/sis/core/course.rb +10 -0
  13. data/app/models/sis/core/course_registration.rb +9 -0
  14. data/app/models/sis/core/document_requirement.rb +13 -0
  15. data/app/models/sis/core/{program_type.rb → document_type.rb} +1 -1
  16. data/app/models/sis/core/exam.rb +17 -0
  17. data/app/models/sis/core/exam_result.rb +25 -0
  18. data/app/models/sis/core/exam_setup.rb +15 -0
  19. data/app/models/sis/core/instructor.rb +6 -0
  20. data/app/models/sis/core/instructor_course.rb +8 -0
  21. data/app/models/sis/core/menu.rb +11 -0
  22. data/app/models/sis/core/programme.rb +7 -0
  23. data/app/models/sis/core/programme_level.rb +6 -0
  24. data/app/models/sis/core/programme_type.rb +6 -0
  25. data/app/models/sis/core/semester.rb +11 -0
  26. data/app/models/sis/core/student.rb +7 -0
  27. data/app/models/sis/core/user.rb +13 -0
  28. data/app/models/sis/core/user_role.rb +10 -0
  29. data/app/services/sis/core/user_service.rb +25 -0
  30. data/app/uploaders/sis/core/application_document_uploader.rb +51 -0
  31. data/app/uploaders/sis/core/photo_uploader.rb +51 -0
  32. data/config/routes.rb +6 -0
  33. data/db/migrate/20200105072142_create_sis_core_academic_years.rb +10 -0
  34. data/db/migrate/20200106072246_create_sis_core_semesters.rb +14 -0
  35. data/db/migrate/20200106130428_create_sis_core_programmes.rb +10 -0
  36. data/db/migrate/20200106132035_create_sis_core_academic_programmes.rb +21 -0
  37. data/db/migrate/20200106132521_create_sis_core_application_setups.rb +19 -0
  38. data/db/migrate/20200106133034_create_sis_core_document_requirements.rb +19 -0
  39. data/db/migrate/20200106133937_create_sis_core_applicants.rb +14 -2
  40. data/db/migrate/20200107094449_create_sis_core_applications.rb +24 -0
  41. data/db/migrate/20200107101638_create_sis_core_application_documents.rb +16 -0
  42. data/db/migrate/20200107302251_create_sis_core_exam_setups.rb +15 -0
  43. data/db/migrate/20200107333411_create_sis_core_exams.rb +17 -0
  44. data/db/migrate/20200107434658_create_sis_core_exam_results.rb +18 -0
  45. data/db/migrate/20200307033100_create_sis_core_courses.rb +19 -0
  46. data/db/migrate/20200307071511_create_sis_core_instructors.rb +10 -0
  47. data/db/migrate/20200307071736_create_sis_core_instructor_courses.rb +16 -0
  48. data/db/migrate/20200307072006_create_sis_core_students.rb +16 -0
  49. data/db/migrate/20200307072317_create_sis_core_course_registrations.rb +20 -0
  50. data/db/migrate/20200507114003_create_sis_core_users.rb +17 -0
  51. data/db/migrate/20200511165121_create_sis_core_application_modules.rb +15 -0
  52. data/db/migrate/20200511165241_create_sis_core_user_roles.rb +15 -0
  53. data/db/migrate/20200511165450_create_sis_core_menus.rb +18 -0
  54. data/lib/authorize_request.rb +18 -0
  55. data/lib/json_web_token.rb +12 -0
  56. data/lib/sis/core/engine.rb +2 -2
  57. data/lib/sis/core/version.rb +1 -1
  58. data/lib/sis_core.rb +5 -0
  59. data/spec/factories/sis/core/academic_programmes.rb +8 -0
  60. data/spec/factories/sis/core/academic_years.rb +6 -0
  61. data/spec/factories/sis/core/applicants.rb +9 -2
  62. data/spec/factories/sis/core/application_documents.rb +7 -0
  63. data/spec/factories/sis/core/application_modules.rb +6 -0
  64. data/spec/factories/sis/core/application_setups.rb +9 -0
  65. data/spec/factories/sis/core/applications.rb +11 -0
  66. data/spec/factories/sis/core/course_registrations.rb +7 -0
  67. data/spec/factories/sis/core/courses.rb +12 -0
  68. data/spec/factories/sis/core/document_requirements.rb +9 -0
  69. data/spec/factories/sis/core/document_types.rb +5 -0
  70. data/spec/factories/sis/core/exam_results.rb +8 -0
  71. data/spec/factories/sis/core/exam_setups.rb +8 -0
  72. data/spec/factories/sis/core/exams.rb +10 -0
  73. data/spec/factories/sis/core/instructor_courses.rb +6 -0
  74. data/spec/factories/sis/core/instructors.rb +6 -0
  75. data/spec/factories/sis/core/menus.rb +9 -0
  76. data/spec/factories/sis/core/programme_levels.rb +5 -0
  77. data/spec/factories/sis/core/programme_types.rb +5 -0
  78. data/spec/factories/sis/core/programmes.rb +6 -0
  79. data/spec/factories/sis/core/semesters.rb +7 -0
  80. data/spec/factories/sis/core/students.rb +9 -0
  81. data/spec/factories/sis/core/user_roles.rb +6 -0
  82. data/spec/factories/sis/core/users.rb +9 -0
  83. metadata +169 -22
  84. data/app/models/sis/core/attached_document.rb +0 -8
  85. data/app/models/sis/core/enrollment_application.rb +0 -9
  86. data/app/models/sis/core/program.rb +0 -9
  87. data/app/models/user.rb +0 -9
  88. data/config/initializers/devise_token_auth.rb +0 -55
  89. data/db/migrate/20200106001016_create_sis_core_field_of_studies.rb +0 -9
  90. data/db/migrate/20200106130428_create_sis_core_programs.rb +0 -10
  91. data/db/migrate/20200108092202_devise_token_auth_create_users.rb +0 -53
  92. data/db/migrate/20200108094449_create_sis_core_enrollment_applications.rb +0 -10
  93. data/db/migrate/20200108101638_create_sis_core_attached_documents.rb +0 -11
  94. data/spec/factories/sis/core/attached_documents.rb +0 -7
  95. data/spec/factories/sis/core/enrollment_applications.rb +0 -7
  96. data/spec/factories/sis/core/field_of_studies.rb +0 -6
  97. data/spec/factories/sis/core/program_types.rb +0 -5
  98. data/spec/factories/sis/core/programs.rb +0 -7
@@ -0,0 +1,16 @@
1
+ class CreateSisCoreStudents < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_students do |t|
4
+ t.string :student_id, null: false, unique: true
5
+ t.string :full_name, null: false
6
+ t.date :date_of_birth, null: false
7
+ t.string :nationality, null: false
8
+ t.references :academic_programme,
9
+ index: { name: 'program_on_student_indx' },
10
+ null: false,
11
+ foreign_key: { to_table: :sis_core_academic_programmes }
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ class CreateSisCoreCourseRegistrations < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_course_registrations do |t|
4
+ t.references :course,
5
+ index: { name: 'course_on_cr_indx' },
6
+ null: false,
7
+ foreign_key: { to_table: :sis_core_courses }
8
+ t.references :student,
9
+ index: { name: 'student_on_cr_indx' },
10
+ null: false,
11
+ foreign_key: { to_table: :sis_core_students }
12
+ t.references :semester,
13
+ index: { name: 'semester_on_cr_indx' },
14
+ null: false,
15
+ foreign_key: { to_table: :sis_core_semesters }
16
+
17
+ t.timestamps
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ class CreateSisCoreUsers < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_users do |t|
4
+ t.string :first_name, null: false
5
+ t.string :last_name, null: false
6
+ t.string :email, null: false
7
+ t.boolean :active, default: true
8
+ t.string :password_digest, null: false
9
+ t.string :reset_password_token
10
+ t.datetime :reset_password_sent_at
11
+ t.string :secret_question
12
+ t.string :secret_question_answer
13
+
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ class CreateSisCoreApplicationModules < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_application_modules do |t|
4
+ t.string :code, null: false
5
+ t.string :name, null: false
6
+
7
+ t.timestamps
8
+ end
9
+
10
+ create_table :sis_core_application_modules_users, id: false do |t|
11
+ t.belongs_to :application_module, index: { name: 'app_module_on_app_modules_usr_indx' }
12
+ t.belongs_to :user, index: { name: 'usr_on_app_modules_usr_indx' }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ class CreateSisCoreUserRoles < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_user_roles do |t|
4
+ t.string :name, null: false
5
+ t.references :application_module, index: { name: 'app_module_on_usr_role_indx' }
6
+
7
+ t.timestamps
8
+ end
9
+
10
+ create_table :sis_core_user_roles_users, id: false do |t|
11
+ t.belongs_to :user, index: { name: 'usr_on_usr_role_usrs_indx' }
12
+ t.belongs_to :user_role, index: { name: 'usr_role_on_usr_role_usrs_indx' }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ class CreateSisCoreMenus < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_menus do |t|
4
+ t.string :text, null: false
5
+ t.string :icon_cls
6
+ t.string :location
7
+ t.integer :parent_id
8
+ t.references :application_module, index: { name: 'app_module_on_menus_indx' }
9
+
10
+ t.timestamps
11
+ end
12
+
13
+ create_table :sis_core_menus_user_roles, id: false do |t|
14
+ t.belongs_to :menu, index: { name: 'menu_on_menus_usr_role_indx' }
15
+ t.belongs_to :user_role, index: { name: 'usr_role_on_menus_usr_role_indx' }
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ class AuthorizeRequest
2
+ class << self
3
+ def user(headers)
4
+ @user ||= User.find(decoded_auth_token(headers)[:id]) if decoded_auth_token(headers)
5
+ @user || nil
6
+ end
7
+
8
+ def decoded_auth_token(headers)
9
+ @decoded_auth_token ||= JsonWebToken.decode(http_auth_header(headers)) if http_auth_header(headers)
10
+ end
11
+
12
+ def http_auth_header(headers)
13
+ return headers['Authorization'].split(' ').last if headers['Authorization'].present?
14
+
15
+ nil
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ class JsonWebToken
2
+ class << self
3
+ def encode(payload)
4
+ JWT.encode(payload, Rails.application.secrets.secret_key_base)
5
+ end
6
+
7
+ def decode(token)
8
+ body = JWT.decode(token, Rails.application.secrets.secret_key_base)[0]
9
+ HashWithIndifferentAccess.new body
10
+ end
11
+ end
12
+ end
@@ -1,11 +1,11 @@
1
- require 'devise_token_auth'
2
-
3
1
  module Sis
4
2
  module Core
5
3
  class Engine < ::Rails::Engine
6
4
  isolate_namespace Sis::Core
7
5
 
8
6
  config.generators.api_only = true
7
+ config.eager_load_paths << Sis::Core::Engine.root.join('lib')
8
+ config.autoload_paths << Sis::Core::Engine.root.join('lib')
9
9
 
10
10
  config.generators do |g|
11
11
  g.test_framework :rspec
@@ -1,5 +1,5 @@
1
1
  module Sis
2
2
  module Core
3
- VERSION = '1.0.2'.freeze
3
+ VERSION = '1.0.7'.freeze
4
4
  end
5
5
  end
@@ -1,2 +1,7 @@
1
1
  require 'sis/core'
2
2
  require 'sis/core/engine'
3
+ require 'jwt'
4
+ require 'bcrypt'
5
+ require 'aasm'
6
+ require 'active_model_serializers'
7
+ require 'carrierwave'
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :academic_programme, class: Sis::Core::AcademicProgramme do
3
+ association :programme
4
+ association :programme_type
5
+ association :programme_level
6
+ duration { 4 }
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :academic_year, class: Sis::Core::AcademicYear do
3
+ year { FFaker::Name.name }
4
+ label { 'Academic year of 2000/01' }
5
+ end
6
+ end
@@ -1,9 +1,16 @@
1
1
  FactoryBot.define do
2
- factory :applicant, class: 'Sis::Core::Applicant' do
2
+ factory :applicant, class: Sis::Core::Applicant do
3
3
  first_name { FFaker::Name.name }
4
4
  middle_name { FFaker::Name.name }
5
5
  last_name { FFaker::Name.name }
6
+ password { FFaker::Name.name }
6
7
  email { FFaker::Internet.email }
7
- phone_number { FFaker::PhoneNumber.phone_number }
8
+ primary_phone_number { FFaker::PhoneNumber.phone_number }
9
+ alternative_telephone_number { FFaker::PhoneNumber.phone_number }
10
+ date_of_birth { '2000-10-05' }
11
+ gender { FFaker::Gender.binary }
12
+ nationality { FFaker::Name.name }
13
+ address { FFaker::Address.city }
14
+ photo { FFaker::Name.name }
8
15
  end
9
16
  end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :application_document, class: Sis::Core::ApplicationDocument do
3
+ document { FFaker::Name.name }
4
+ association :document_requirement
5
+ association :application
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :application_module, class: Sis::Core::ApplicationModule do
3
+ code { FFaker::Name.unique.name }
4
+ name { FFaker::Name.name }
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :application_setup, class: Sis::Core::ApplicationSetup do
3
+ association :academic_programme
4
+ association :target_semester, factory: :semester
5
+ start_date { Date.today - 15.days }
6
+ end_date { Date.today + 15.days }
7
+ status { 'Open' }
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ FactoryBot.define do
2
+ factory :application, class: Sis::Core::Application do
3
+ status { :draft }
4
+ payment_made { false }
5
+ payment_information { nil }
6
+ application_date { Date.today }
7
+ association :applicant
8
+ association :academic_programme
9
+ association :application_setup
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :course_registration, class: 'Sis::Core::CourseRegistration' do
3
+ association :course
4
+ association :student
5
+ association :semester
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ FactoryBot.define do
2
+ factory :course, class: 'Sis::Core::Course' do
3
+ code { FFaker::Name.name }
4
+ title { FFaker::Name.name }
5
+ description { FFaker::Lorem.paragraph }
6
+ credit_hours { FFaker::Random.rand(1..4) }
7
+ ects { FFaker::Random.rand(1..10) }
8
+ lecture_hours { FFaker::Random.rand(1..4) }
9
+ lab_hours { FFaker::Random.rand(1..4) }
10
+ association :program
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :document_requirement, class: Sis::Core::DocumentRequirement do
3
+ association :document_type
4
+ association :application_setup
5
+ original { 1 }
6
+ copy { 1 }
7
+ remark { FFaker::Name.name }
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :document_type, class: Sis::Core::DocumentType, parent: :lookup do
3
+ type { 'Sis::Core::DocumentType' }
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :exam_result, class: Sis::Core::ExamResult do
3
+ association :exam
4
+ association :application
5
+ points { 15 }
6
+ status { Sis::Core::ExamResult::PASS }
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :exam_setup, class: Sis::Core::ExamSetup do
3
+ date { Date.today }
4
+ hours { 3 }
5
+ venue { FFaker::Name.name }
6
+ association :application_setup
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ FactoryBot.define do
2
+ factory :exam, class: Sis::Core::Exam do
3
+ title { FFaker::Name.name }
4
+ start { Time.zone.parse('5:00 AM') }
5
+ finish { Time.zone.parse('6:00 AM') }
6
+ points { 30 }
7
+ pass_point { 15 }
8
+ association :exam_setup
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :instructor_course, class: 'Sis::Core::InstructorCourse' do
3
+ # association :instructor
4
+ # association :course
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :instructor, class: 'Sis::Core::Instructor' do
3
+ # full_name { FFaker::Name.name }
4
+ # date_of_birth { Date.new(2000, 1, 1) }
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :menu, class: Sis::Core::Menu do
3
+ text { FFaker::Name.name }
4
+ icon_cls { 'xf001' }
5
+ location { '/programme' }
6
+ parent_id { nil }
7
+ association :application_module
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :programme_level, class: Sis::Core::ProgrammeLevel, parent: :lookup do
3
+ type { 'Ecom::Core::ProgrammeLevel' }
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :programme_type, class: Sis::Core::ProgrammeType, parent: :lookup do
3
+ type { 'Sis::Core::ProgrammeType' }
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :programme, class: Sis::Core::Programme do
3
+ code { FFaker::Name.name }
4
+ name { FFaker::Name.name }
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :semester, class: Sis::Core::Semester do
3
+ association :academic_year
4
+ name { FFaker::Name.name }
5
+ description { FFaker::Name.name }
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :student, class: 'Sis::Core::Student' do
3
+ # student_id { FFaker::Name.name }
4
+ # full_name { FFaker::Name.name }
5
+ # date_of_birth { Date.new(2000, 1, 1) }
6
+ # nationality { FFaker::Name.name }
7
+ # association :program
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :user_role, class: Sis::Core::UserRole do
3
+ name { FFaker::Name.name }
4
+ association :application_module
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :user, class: Sis::Core::User do
3
+ first_name { FFaker::Name.name }
4
+ last_name { FFaker::Name.name }
5
+ email { FFaker::Internet.email }
6
+ active { false }
7
+ password { FFaker::Name.name }
8
+ end
9
+ end
metadata CHANGED
@@ -1,17 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sis_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-01 00:00:00.000000000 Z
11
+ date: 2020-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: devise_token_auth
14
+ name: aasm
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: active_model_serializers
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.10.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: bcrypt
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.1.7
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.1.7
55
+ - !ruby/object:Gem::Dependency
56
+ name: carrierwave
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: carrierwave-base64
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: jwt
15
85
  requirement: !ruby/object:Gem::Requirement
16
86
  requirements:
17
87
  - - ">="
@@ -44,6 +114,20 @@ dependencies:
44
114
  - - ">="
45
115
  - !ruby/object:Gem::Version
46
116
  version: 6.0.2.1
117
+ - !ruby/object:Gem::Dependency
118
+ name: sqlite3
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
47
131
  - !ruby/object:Gem::Dependency
48
132
  name: factory_bot_rails
49
133
  requirement: !ruby/object:Gem::Requirement
@@ -115,19 +199,25 @@ dependencies:
115
199
  - !ruby/object:Gem::Version
116
200
  version: '0'
117
201
  - !ruby/object:Gem::Dependency
118
- name: sqlite3
202
+ name: pg
119
203
  requirement: !ruby/object:Gem::Requirement
120
204
  requirements:
121
205
  - - ">="
122
206
  - !ruby/object:Gem::Version
123
- version: '0'
207
+ version: '0.18'
208
+ - - "<"
209
+ - !ruby/object:Gem::Version
210
+ version: '2.0'
124
211
  type: :development
125
212
  prerelease: false
126
213
  version_requirements: !ruby/object:Gem::Requirement
127
214
  requirements:
128
215
  - - ">="
129
216
  - !ruby/object:Gem::Version
130
- version: '0'
217
+ version: '0.18'
218
+ - - "<"
219
+ - !ruby/object:Gem::Version
220
+ version: '2.0'
131
221
  description: An engine which contains the core of the student information system app
132
222
  as a layer.
133
223
  email:
@@ -140,37 +230,94 @@ files:
140
230
  - README.md
141
231
  - Rakefile
142
232
  - app/controllers/sis/core/application_controller.rb
233
+ - app/controllers/sis/core/menus_controller.rb
234
+ - app/controllers/sis/core/users_controller.rb
235
+ - app/models/sis/core/academic_programme.rb
236
+ - app/models/sis/core/academic_year.rb
143
237
  - app/models/sis/core/applicant.rb
238
+ - app/models/sis/core/application.rb
239
+ - app/models/sis/core/application_document.rb
240
+ - app/models/sis/core/application_module.rb
144
241
  - app/models/sis/core/application_record.rb
145
- - app/models/sis/core/attached_document.rb
146
- - app/models/sis/core/enrollment_application.rb
242
+ - app/models/sis/core/application_setup.rb
243
+ - app/models/sis/core/course.rb
244
+ - app/models/sis/core/course_registration.rb
245
+ - app/models/sis/core/document_requirement.rb
246
+ - app/models/sis/core/document_type.rb
247
+ - app/models/sis/core/exam.rb
248
+ - app/models/sis/core/exam_result.rb
249
+ - app/models/sis/core/exam_setup.rb
147
250
  - app/models/sis/core/field_of_study.rb
251
+ - app/models/sis/core/instructor.rb
252
+ - app/models/sis/core/instructor_course.rb
148
253
  - app/models/sis/core/lookup.rb
149
- - app/models/sis/core/program.rb
150
- - app/models/sis/core/program_type.rb
151
- - app/models/user.rb
254
+ - app/models/sis/core/menu.rb
255
+ - app/models/sis/core/programme.rb
256
+ - app/models/sis/core/programme_level.rb
257
+ - app/models/sis/core/programme_type.rb
258
+ - app/models/sis/core/semester.rb
259
+ - app/models/sis/core/student.rb
260
+ - app/models/sis/core/user.rb
261
+ - app/models/sis/core/user_role.rb
262
+ - app/services/sis/core/user_service.rb
263
+ - app/uploaders/sis/core/application_document_uploader.rb
264
+ - app/uploaders/sis/core/photo_uploader.rb
152
265
  - config/database.ci.yml
153
- - config/initializers/devise_token_auth.rb
154
266
  - config/routes.rb
155
267
  - db/migrate/20200105061717_create_sis_core_lookups.rb
156
- - db/migrate/20200106001016_create_sis_core_field_of_studies.rb
157
- - db/migrate/20200106130428_create_sis_core_programs.rb
268
+ - db/migrate/20200105072142_create_sis_core_academic_years.rb
269
+ - db/migrate/20200106072246_create_sis_core_semesters.rb
270
+ - db/migrate/20200106130428_create_sis_core_programmes.rb
271
+ - db/migrate/20200106132035_create_sis_core_academic_programmes.rb
272
+ - db/migrate/20200106132521_create_sis_core_application_setups.rb
273
+ - db/migrate/20200106133034_create_sis_core_document_requirements.rb
158
274
  - db/migrate/20200106133937_create_sis_core_applicants.rb
159
- - db/migrate/20200108092202_devise_token_auth_create_users.rb
160
- - db/migrate/20200108094449_create_sis_core_enrollment_applications.rb
161
- - db/migrate/20200108101638_create_sis_core_attached_documents.rb
275
+ - db/migrate/20200107094449_create_sis_core_applications.rb
276
+ - db/migrate/20200107101638_create_sis_core_application_documents.rb
277
+ - db/migrate/20200107302251_create_sis_core_exam_setups.rb
278
+ - db/migrate/20200107333411_create_sis_core_exams.rb
279
+ - db/migrate/20200107434658_create_sis_core_exam_results.rb
280
+ - db/migrate/20200307033100_create_sis_core_courses.rb
281
+ - db/migrate/20200307071511_create_sis_core_instructors.rb
282
+ - db/migrate/20200307071736_create_sis_core_instructor_courses.rb
283
+ - db/migrate/20200307072006_create_sis_core_students.rb
284
+ - db/migrate/20200307072317_create_sis_core_course_registrations.rb
285
+ - db/migrate/20200507114003_create_sis_core_users.rb
286
+ - db/migrate/20200511165121_create_sis_core_application_modules.rb
287
+ - db/migrate/20200511165241_create_sis_core_user_roles.rb
288
+ - db/migrate/20200511165450_create_sis_core_menus.rb
289
+ - lib/authorize_request.rb
290
+ - lib/json_web_token.rb
162
291
  - lib/sis/core.rb
163
292
  - lib/sis/core/engine.rb
164
293
  - lib/sis/core/version.rb
165
294
  - lib/sis_core.rb
166
295
  - lib/tasks/sis_core_tasks.rake
296
+ - spec/factories/sis/core/academic_programmes.rb
297
+ - spec/factories/sis/core/academic_years.rb
167
298
  - spec/factories/sis/core/applicants.rb
168
- - spec/factories/sis/core/attached_documents.rb
169
- - spec/factories/sis/core/enrollment_applications.rb
170
- - spec/factories/sis/core/field_of_studies.rb
299
+ - spec/factories/sis/core/application_documents.rb
300
+ - spec/factories/sis/core/application_modules.rb
301
+ - spec/factories/sis/core/application_setups.rb
302
+ - spec/factories/sis/core/applications.rb
303
+ - spec/factories/sis/core/course_registrations.rb
304
+ - spec/factories/sis/core/courses.rb
305
+ - spec/factories/sis/core/document_requirements.rb
306
+ - spec/factories/sis/core/document_types.rb
307
+ - spec/factories/sis/core/exam_results.rb
308
+ - spec/factories/sis/core/exam_setups.rb
309
+ - spec/factories/sis/core/exams.rb
310
+ - spec/factories/sis/core/instructor_courses.rb
311
+ - spec/factories/sis/core/instructors.rb
171
312
  - spec/factories/sis/core/lookups.rb
172
- - spec/factories/sis/core/program_types.rb
173
- - spec/factories/sis/core/programs.rb
313
+ - spec/factories/sis/core/menus.rb
314
+ - spec/factories/sis/core/programme_levels.rb
315
+ - spec/factories/sis/core/programme_types.rb
316
+ - spec/factories/sis/core/programmes.rb
317
+ - spec/factories/sis/core/semesters.rb
318
+ - spec/factories/sis/core/students.rb
319
+ - spec/factories/sis/core/user_roles.rb
320
+ - spec/factories/sis/core/users.rb
174
321
  homepage: http://www.mks.com.et
175
322
  licenses:
176
323
  - MIT