sis_core 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +24 -0
  5. data/app/controllers/sis/core/application_controller.rb +7 -0
  6. data/app/models/sis/core/applicant.rb +8 -0
  7. data/app/models/sis/core/application_record.rb +7 -0
  8. data/app/models/sis/core/attached_document.rb +8 -0
  9. data/app/models/sis/core/enrollment_application.rb +9 -0
  10. data/app/models/sis/core/field_of_study.rb +9 -0
  11. data/app/models/sis/core/lookup.rb +8 -0
  12. data/app/models/sis/core/program.rb +9 -0
  13. data/app/models/sis/core/program_type.rb +6 -0
  14. data/app/models/user.rb +9 -0
  15. data/config/database.ci.yml +12 -0
  16. data/config/initializers/devise_token_auth.rb +55 -0
  17. data/config/routes.rb +2 -0
  18. data/db/migrate/20200105061717_create_sis_core_lookups.rb +12 -0
  19. data/db/migrate/20200106001016_create_sis_core_field_of_studies.rb +9 -0
  20. data/db/migrate/20200106130428_create_sis_core_programs.rb +10 -0
  21. data/db/migrate/20200106133937_create_sis_core_applicants.rb +13 -0
  22. data/db/migrate/20200108092202_devise_token_auth_create_users.rb +53 -0
  23. data/db/migrate/20200108094449_create_sis_core_enrollment_applications.rb +10 -0
  24. data/db/migrate/20200108101638_create_sis_core_attached_documents.rb +11 -0
  25. data/lib/sis/core/engine.rb +25 -0
  26. data/lib/sis/core/version.rb +5 -0
  27. data/lib/sis/core.rb +4 -0
  28. data/lib/sis_core.rb +2 -0
  29. data/lib/tasks/sis_core_tasks.rake +4 -0
  30. data/spec/factories/sis/core/applicants.rb +9 -0
  31. data/spec/factories/sis/core/attached_documents.rb +7 -0
  32. data/spec/factories/sis/core/enrollment_applications.rb +7 -0
  33. data/spec/factories/sis/core/field_of_studies.rb +6 -0
  34. data/spec/factories/sis/core/lookups.rb +6 -0
  35. data/spec/factories/sis/core/program_types.rb +5 -0
  36. data/spec/factories/sis/core/programs.rb +7 -0
  37. metadata +183 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c29d73de70fc5e92e4a2baf75b7637f66b15f0395472700be1a3e95ed553d199
4
+ data.tar.gz: 229c654db2906234a28159fe5fbe2efac479d1fe35ca5aacdf4922238574bbc9
5
+ SHA512:
6
+ metadata.gz: 7a7f8a28687b32e2a1816c96d6a5292e92a74764a3092ccd892fb045bf3c0ff1f4c07e096b52fc9335117435789fd8e1073090815f4834b3804660bfc8b1e73a
7
+ data.tar.gz: db2706e8aefa17e8c3dedc7fd0cb707d7b2e6d702df06b4279d4e2c88514b00b1ec1b21afdf3e4c20852de25e905cec7fe31caebdd93870b92b4d8f02772d8c6
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2020 Henock L.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # SisCore
2
+ Short description and motivation.
3
+
4
+ ## Usage
5
+ How to use my plugin.
6
+
7
+ ## Installation
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'sis_core'
12
+ ```
13
+
14
+ And then execute:
15
+ ```bash
16
+ $ bundle
17
+ ```
18
+
19
+ Or install it yourself as:
20
+ ```bash
21
+ $ gem install sis_core
22
+ ```
23
+
24
+ ## Contributing
25
+ Contribution directions go here.
26
+
27
+ ## License
28
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,24 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'SisCore'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path('spec/dummy/Rakefile', __dir__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+ load 'rails/tasks/statistics.rake'
21
+
22
+ require 'bundler/gem_tasks'
23
+ require 'rspec/core/rake_task'
24
+ RSpec::Core::RakeTask.new(spec: 'app:db:test:prepare')
@@ -0,0 +1,7 @@
1
+ module Sis
2
+ module Core
3
+ class ApplicationController < ActionController::Base
4
+ protect_from_forgery with: :exception
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ module Sis
2
+ module Core
3
+ class Applicant < ApplicationRecord
4
+ validates :first_name, :middle_name, :last_name, :email, :phone_number, presence: true
5
+ validates :email, uniqueness: true
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ module Sis
2
+ module Core
3
+ class ApplicationRecord < ActiveRecord::Base
4
+ self.abstract_class = true
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ module Sis
2
+ module Core
3
+ class AttachedDocument < ApplicationRecord
4
+ validates :document, :document_type, presence: true
5
+ belongs_to :enrollment_application, class_name: 'Sis::Core::EnrollmentApplication'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module Sis
2
+ module Core
3
+ class EnrollmentApplication < ApplicationRecord
4
+ validates :status, presence: true
5
+ belongs_to :applicant, class_name: 'Sis::Core::Applicant'
6
+ belongs_to :program, class_name: 'Sis::Core::Program'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Sis
2
+ module Core
3
+ class FieldOfStudy < ApplicationRecord
4
+ belongs_to :program_type, class_name: 'Sis::Core::ProgramType', foreign_key: 'lookup_id'
5
+ validates :name, presence: true
6
+ validates :name, uniqueness: { case_sensitive: true }
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Sis
2
+ module Core
3
+ class Lookup < ApplicationRecord
4
+ validates :name, :type, presence: true
5
+ validates :name, uniqueness: { scope: :type }
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module Sis
2
+ module Core
3
+ class Program < ApplicationRecord
4
+ belongs_to :program_type, class_name: 'Sis::Core::ProgramType', foreign_key: 'lookup_id'
5
+ belongs_to :field_of_study, class_name: 'Sis::Core::FieldOfStudy'
6
+ validates :mode_of_attendance, presence: true
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module Sis
2
+ module Core
3
+ class ProgramType < Lookup
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User < ActiveRecord::Base
4
+ # Include default devise modules. Others available are:
5
+ # :confirmable, :lockable, :timeoutable and :omniauthable
6
+ devise :database_authenticatable, :registerable,
7
+ :recoverable, :rememberable, :trackable, :validatable
8
+ include DeviseTokenAuth::Concerns::User
9
+ end
@@ -0,0 +1,12 @@
1
+ default: &default
2
+ adapter: postgresql
3
+ encoding: unicode
4
+ pool: 5
5
+ timeout: 5000
6
+ host: <%= ENV['DB_HOST'] %>
7
+ username: <%= ENV['POSTGRES_USER'] %>
8
+ password: <%= ENV['POSTGRES_PASSWORD'] %>
9
+ database: <%= ENV['POSTGRES_DB'] %>
10
+
11
+ test:
12
+ <<: *default
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ DeviseTokenAuth.setup do |config|
4
+ # By default the authorization headers will change after each request. The
5
+ # client is responsible for keeping track of the changing tokens. Change
6
+ # this to false to prevent the Authorization header from changing after
7
+ # each request.
8
+ # config.change_headers_on_each_request = true
9
+
10
+ # By default, users will need to re-authenticate after 2 weeks. This setting
11
+ # determines how long tokens will remain valid after they are issued.
12
+ # config.token_lifespan = 2.weeks
13
+
14
+ # Limiting the token_cost to just 4 in testing will increase the performance of
15
+ # your test suite dramatically. The possible cost value is within range from 4
16
+ # to 31. It is recommended to not use a value more than 10 in other environments.
17
+ config.token_cost = Rails.env.test? ? 4 : 10
18
+
19
+ # Sets the max number of concurrent devices per user, which is 10 by default.
20
+ # After this limit is reached, the oldest tokens will be removed.
21
+ # config.max_number_of_devices = 10
22
+
23
+ # Sometimes it's necessary to make several requests to the API at the same
24
+ # time. In this case, each request in the batch will need to share the same
25
+ # auth token. This setting determines how far apart the requests can be while
26
+ # still using the same auth token.
27
+ # config.batch_request_buffer_throttle = 5.seconds
28
+
29
+ # This route will be the prefix for all oauth2 redirect callbacks. For
30
+ # example, using the default '/omniauth', the github oauth2 provider will
31
+ # redirect successful authentications to '/omniauth/github/callback'
32
+ # config.omniauth_prefix = "/omniauth"
33
+
34
+ # By default sending current password is not needed for the password update.
35
+ # Uncomment to enforce current_password param to be checked before all
36
+ # attribute updates. Set it to :password if you want it to be checked only if
37
+ # password is updated.
38
+ # config.check_current_password_before_update = :attributes
39
+
40
+ # By default we will use callbacks for single omniauth.
41
+ # It depends on fields like email, provider and uid.
42
+ # config.default_callbacks = true
43
+
44
+ # Makes it possible to change the headers names
45
+ # config.headers_names = {:'access-token' => 'access-token',
46
+ # :'client' => 'client',
47
+ # :'expiry' => 'expiry',
48
+ # :'uid' => 'uid',
49
+ # :'token-type' => 'token-type' }
50
+
51
+ # By default, only Bearer Token authentication is implemented out of the box.
52
+ # If, however, you wish to integrate with legacy Devise authentication, you can
53
+ # do so by enabling this flag. NOTE: This feature is highly experimental!
54
+ # config.enable_standard_devise_support = false
55
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ Sis::Core::Engine.routes.draw do
2
+ end
@@ -0,0 +1,12 @@
1
+ class CreateSisCoreLookups < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_lookups do |t|
4
+ t.string :name, null: false
5
+ t.string :type, null: false
6
+
7
+ t.timestamps
8
+ end
9
+
10
+ add_index :sis_core_lookups, %i[name type], unique: true
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ class CreateSisCoreFieldOfStudies < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_field_of_studies do |t|
4
+ t.string :name
5
+ t.references :lookup, index: true, null: false, foreign_key: { to_table: :sis_core_lookups }
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSisCorePrograms < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_programs do |t|
4
+ t.string :mode_of_attendance, null: false
5
+ t.references :lookup, index: true, null: false, foreign_key: { to_table: :sis_core_lookups }
6
+ t.references :field_of_study, index: true, null: false, foreign_key: { to_table: :sis_core_field_of_studies }
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ class CreateSisCoreApplicants < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_applicants do |t|
4
+ t.string :first_name, null: false
5
+ t.string :middle_name, null: false
6
+ t.string :last_name, null: false
7
+ t.string :email, null: false, unique: true
8
+ t.string :phone_number, null: false
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,53 @@
1
+ class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table(:users) do |t|
4
+ ## Required
5
+ t.string :provider, null: false, default: 'email'
6
+ t.string :uid, null: false, default: ''
7
+
8
+ ## Database authenticatable
9
+ t.string :encrypted_password, null: false, default: ''
10
+
11
+ ## Recoverable
12
+ t.string :reset_password_token
13
+ t.datetime :reset_password_sent_at
14
+ t.boolean :allow_password_change, default: false
15
+
16
+ ## Rememberable
17
+ t.datetime :remember_created_at
18
+
19
+ ## Confirmable
20
+ t.string :confirmation_token
21
+ t.datetime :confirmed_at
22
+ t.datetime :confirmation_sent_at
23
+ t.string :unconfirmed_email # Only if using reconfirmable
24
+ ## Trackable
25
+ t.integer :sign_in_count, default: 0, null: false
26
+ t.datetime :current_sign_in_at
27
+ t.datetime :last_sign_in_at
28
+ t.string :current_sign_in_ip
29
+ t.string :last_sign_in_ip
30
+ ## Lockable
31
+ # t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts
32
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
33
+ # t.datetime :locked_at
34
+
35
+ ## User Info
36
+ t.string :name
37
+ t.string :nickname
38
+ t.string :image
39
+ t.string :email
40
+
41
+ ## Tokens
42
+ t.text :tokens
43
+
44
+ t.timestamps
45
+ end
46
+
47
+ add_index :users, :email, unique: true
48
+ add_index :users, %i[uid provider], unique: true
49
+ add_index :users, :reset_password_token, unique: true
50
+ add_index :users, :confirmation_token, unique: true
51
+ # add_index :users, :unlock_token, unique: true
52
+ end
53
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSisCoreEnrollmentApplications < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_enrollment_applications do |t|
4
+ t.string :status, null: false
5
+ t.references :applicant, index: true, null: false, foreign_key: { to_table: :sis_core_applicants }
6
+ t.references :program, index: true, null: false, foreign_key: { to_table: :sis_core_programs }
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ class CreateSisCoreAttachedDocuments < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :sis_core_attached_documents do |t|
4
+ t.string :document, null: false
5
+ t.string :document_type, null: false
6
+ t.references :enrollment_application, index: true, null: false,
7
+ foreign_key: { to_table: :sis_core_enrollment_applications }
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,25 @@
1
+ module Sis
2
+ module Core
3
+ class Engine < ::Rails::Engine
4
+ isolate_namespace Sis::Core
5
+
6
+ config.generators.api_only = true
7
+
8
+ config.generators do |g|
9
+ g.test_framework :rspec
10
+ g.fixture_replacement :factory_bot
11
+ g.factory_bot dir: 'spec/factories'
12
+ end
13
+
14
+ initializer 'sis_core.factories', after: 'factory_bot.set_factory_paths' do
15
+ FactoryBot.definition_file_paths << File.expand_path('../../../spec/factories', __dir__) if defined?(FactoryBot)
16
+ end
17
+
18
+ initializer :append_migrations do |app|
19
+ unless app.root.to_s.match(root.to_s + File::SEPARATOR)
20
+ app.config.paths['db/migrate'].concat(config.paths['db/migrate'].expanded)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ module Sis
2
+ module Core
3
+ VERSION = '1.0.0'.freeze
4
+ end
5
+ end
data/lib/sis/core.rb ADDED
@@ -0,0 +1,4 @@
1
+ module Sis
2
+ module Core
3
+ end
4
+ end
data/lib/sis_core.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'sis/core'
2
+ require 'sis/core/engine'
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :sis_core do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :applicant, class: 'Sis::Core::Applicant' do
3
+ first_name { FFaker::Name.name }
4
+ middle_name { FFaker::Name.name }
5
+ last_name { FFaker::Name.name }
6
+ email { FFaker::Internet.email }
7
+ phone_number { FFaker::PhoneNumber.phone_number }
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :attached_document, class: 'Sis::Core::AttachedDocument' do
3
+ document { FFaker::Name.name }
4
+ document_type { FFaker::Name.name }
5
+ association :enrollment_application
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :enrollment_application, class: 'Sis::Core::EnrollmentApplication' do
3
+ status { FFaker::Name.name }
4
+ association :applicant
5
+ association :program
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :field_of_study, class: 'Sis::Core::FieldOfStudy' do
3
+ name { FFaker::Name.name }
4
+ association :program_type
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :lookup, class: 'Sis::Core::Lookup' do
3
+ name { FFaker::Name.name }
4
+ type { 'Sis::Core::Lookup' }
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :program_type, class: 'Sis::Core::ProgramType', parent: :lookup do
3
+ type { 'Sis::Core::ProgramType' }
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :program, class: 'Sis::Core::Program' do
3
+ mode_of_attendance { FFaker::Name.name }
4
+ association :program_type
5
+ association :field_of_study
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,183 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sis_core
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Henock L.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-03-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 6.0.2
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 6.0.2.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 6.0.2
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 6.0.2.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: factory_bot_rails
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: ffaker
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec-rails
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: shoulda-matchers
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: simplecov
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: sqlite3
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ description: An engine which contains the core of the student information system app
118
+ as a layer.
119
+ email:
120
+ - henockl@live.com
121
+ executables: []
122
+ extensions: []
123
+ extra_rdoc_files: []
124
+ files:
125
+ - MIT-LICENSE
126
+ - README.md
127
+ - Rakefile
128
+ - app/controllers/sis/core/application_controller.rb
129
+ - app/models/sis/core/applicant.rb
130
+ - app/models/sis/core/application_record.rb
131
+ - app/models/sis/core/attached_document.rb
132
+ - app/models/sis/core/enrollment_application.rb
133
+ - app/models/sis/core/field_of_study.rb
134
+ - app/models/sis/core/lookup.rb
135
+ - app/models/sis/core/program.rb
136
+ - app/models/sis/core/program_type.rb
137
+ - app/models/user.rb
138
+ - config/database.ci.yml
139
+ - config/initializers/devise_token_auth.rb
140
+ - config/routes.rb
141
+ - db/migrate/20200105061717_create_sis_core_lookups.rb
142
+ - db/migrate/20200106001016_create_sis_core_field_of_studies.rb
143
+ - db/migrate/20200106130428_create_sis_core_programs.rb
144
+ - db/migrate/20200106133937_create_sis_core_applicants.rb
145
+ - db/migrate/20200108092202_devise_token_auth_create_users.rb
146
+ - db/migrate/20200108094449_create_sis_core_enrollment_applications.rb
147
+ - db/migrate/20200108101638_create_sis_core_attached_documents.rb
148
+ - lib/sis/core.rb
149
+ - lib/sis/core/engine.rb
150
+ - lib/sis/core/version.rb
151
+ - lib/sis_core.rb
152
+ - lib/tasks/sis_core_tasks.rake
153
+ - spec/factories/sis/core/applicants.rb
154
+ - spec/factories/sis/core/attached_documents.rb
155
+ - spec/factories/sis/core/enrollment_applications.rb
156
+ - spec/factories/sis/core/field_of_studies.rb
157
+ - spec/factories/sis/core/lookups.rb
158
+ - spec/factories/sis/core/program_types.rb
159
+ - spec/factories/sis/core/programs.rb
160
+ homepage: http://www.mks.com.et
161
+ licenses:
162
+ - MIT
163
+ metadata: {}
164
+ post_install_message:
165
+ rdoc_options: []
166
+ require_paths:
167
+ - lib
168
+ required_ruby_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ required_rubygems_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ requirements: []
179
+ rubygems_version: 3.1.2
180
+ signing_key:
181
+ specification_version: 4
182
+ summary: Core engine for student information system application.
183
+ test_files: []