k_manager 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +31 -0
  3. data/.gitignore +50 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +85 -0
  6. data/Assessment1.md +127 -0
  7. data/Assessment2.md +88 -0
  8. data/CODE_OF_CONDUCT.md +74 -0
  9. data/Gemfile +25 -0
  10. data/Guardfile +30 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +82 -0
  13. data/Rakefile +33 -0
  14. data/STORIES.md +42 -0
  15. data/ToDo.md +8 -0
  16. data/USAGE.md +19 -0
  17. data/bin/console +16 -0
  18. data/bin/k +36 -0
  19. data/bin/kgitsync +76 -0
  20. data/bin/khotfix +244 -0
  21. data/bin/setup +11 -0
  22. data/hooks/pre-commit +87 -0
  23. data/hooks/update-version +33 -0
  24. data/k_manager.gemspec +47 -0
  25. data/lib/k_manager.rb +50 -0
  26. data/lib/k_manager/configuration/project_config.rb +14 -0
  27. data/lib/k_manager/create_document.rb +31 -0
  28. data/lib/k_manager/documents/basic_document.rb +21 -0
  29. data/lib/k_manager/documents/builder_document.rb +18 -0
  30. data/lib/k_manager/documents/document_taggable.rb +94 -0
  31. data/lib/k_manager/documents/model_document.rb +19 -0
  32. data/lib/k_manager/project.rb +50 -0
  33. data/lib/k_manager/resources/base_resource.rb +182 -0
  34. data/lib/k_manager/resources/csv_file_resource.rb +27 -0
  35. data/lib/k_manager/resources/factories/document_factory.rb +52 -0
  36. data/lib/k_manager/resources/factories/ruby_document_factory.rb +57 -0
  37. data/lib/k_manager/resources/file_resource.rb +93 -0
  38. data/lib/k_manager/resources/json_file_resource.rb +22 -0
  39. data/lib/k_manager/resources/ruby_file_resource.rb +32 -0
  40. data/lib/k_manager/resources/unknown_file_resource.rb +22 -0
  41. data/lib/k_manager/resources/x_resource.rb +243 -0
  42. data/lib/k_manager/resources/yaml_file_resource.rb +21 -0
  43. data/lib/k_manager/version.rb +5 -0
  44. data/lib/k_manager/x_project.rb +698 -0
  45. data/lib/k_manager/x_project_manager.rb +133 -0
  46. data/lib/k_manager/x_register.rb +199 -0
  47. data/lib/k_manager/x_resource_documents/resource_document.rb +51 -0
  48. metadata +150 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5e1e2ee281f38810223b80d27b7ed6ba17f6d766c9bc3362925cb781faea6e6f
4
+ data.tar.gz: cce3bcc06ce095f5f00c55bc60ac47b0ea493930db4ebed635fe106303cf5957
5
+ SHA512:
6
+ metadata.gz: 7c6154b2a689a193cc88415d89959ca564783b04ee256a74c9a845c3d94102c2ae69be11d47e6cf01cc8e75ca52784d2f4a5b4cb8f373be074112464e7a1da5c
7
+ data.tar.gz: 70e7121af0c37a4458670b4668e4e8a9f0e4c798e317bca98ccdb27414529b4b7966373f0689a654991eefabdd9af783536aba33691c54b844cc51ade55071c5
@@ -0,0 +1,31 @@
1
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
2
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
3
+ name: Ruby
4
+
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
9
+ branches: [ master ]
10
+
11
+ jobs:
12
+ test:
13
+
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - uses: actions/checkout@v2
18
+ - name: Set up Ruby
19
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
20
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: 2.7.1
24
+ - name: Install dependencies
25
+ run: |
26
+ gem install bundler -v 2.2.5
27
+ bundle install
28
+ - name: Run tests
29
+ run: bundle exec rspec
30
+ - name: Run rubocop
31
+ run: bundle exec rubocop
data/.gitignore ADDED
@@ -0,0 +1,50 @@
1
+ # Move this into a KLUE SATELITE DOCUMENT
2
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
3
+ #
4
+ # If you find yourself ignoring temporary files generated by your text editor
5
+ # or operating system, you probably want to add a global ignore instead:
6
+ # git config --global core.excludesfile '~/.gitignore_global'
7
+ #
8
+ # The Octocat has a Gist containing some good rules to add to this file.
9
+ # https://gist.github.com/octocat/9257657
10
+
11
+ # Ignore Klue Setup.sh
12
+ /bin/runonce/
13
+ k_manager.yml
14
+
15
+ /_/
16
+ /.bundle/
17
+ /.history/
18
+ /.yardoc
19
+ /_yardoc/
20
+ /coverage/
21
+ /log/
22
+ !/log/.keep
23
+ /doc/
24
+ /pkg/
25
+ /spec/reports/
26
+ /tmp/
27
+ !/tmp/.keep
28
+ *.bundle
29
+ *.so
30
+ *.o
31
+ *.a
32
+ mkmf.log
33
+
34
+ # Ruby Version
35
+ .ruby-version
36
+
37
+ # Environment File
38
+ .env
39
+
40
+ # Gems should not use a Gemfile.lock
41
+ Gemfile.lock
42
+
43
+ # RubyGem definitions
44
+ *.gem
45
+
46
+ # rspec failure tracking
47
+ .rspec_status
48
+
49
+ # ByeBug history
50
+ .byebug_history
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,85 @@
1
+ require: rubocop-rake
2
+ AllCops:
3
+ TargetRubyVersion: 2.5
4
+ DisplayCopNames: true
5
+ ExtraDetails: true
6
+ NewCops: enable
7
+ Exclude:
8
+ - "_/**/*"
9
+ - "spec/samples/**/*"
10
+
11
+ Metrics/BlockLength:
12
+ Exclude:
13
+ - "**/spec/**/*"
14
+ - "*.gemspec"
15
+ IgnoredMethods:
16
+ - configure
17
+ - context
18
+ - define
19
+ - describe
20
+ - draw
21
+ - factory
22
+ - feature
23
+ - guard
24
+ - included
25
+ - it
26
+ - let
27
+ - let!
28
+ - scenario
29
+ - setup
30
+ - shared_context
31
+ - shared_examples
32
+ - shared_examples_for
33
+ - transaction
34
+
35
+ Metrics/MethodLength:
36
+ Max: 25
37
+
38
+ Layout/LineLength:
39
+ Max: 200
40
+ # Ignores annotate output
41
+ IgnoredPatterns: ['\A# \*\*']
42
+ IgnoreCopDirectives: true
43
+
44
+ Lint/UnusedMethodArgument:
45
+ AllowUnusedKeywordArguments: true
46
+
47
+ Style/Documentation:
48
+ Enabled: false
49
+
50
+ Style/BlockComments:
51
+ Enabled: false
52
+ Include:
53
+ - "**/spec/*"
54
+
55
+ # My Preferences - Start
56
+ Metrics/ClassLength:
57
+ Enabled: false
58
+ Metrics/ModuleLength:
59
+ Exclude:
60
+ - "**/spec/**/*"
61
+ Naming/MemoizedInstanceVariableName:
62
+ Enabled: false
63
+ Naming/VariableNumber:
64
+ Exclude:
65
+ - "**/spec/**/*"
66
+ Style/EmptyMethod:
67
+ Exclude:
68
+ - "**/spec/**/*"
69
+ Metrics/ParameterLists:
70
+ Exclude:
71
+ - "**/spec/**/*"
72
+ Layout/EmptyLineBetweenDefs:
73
+ Exclude:
74
+ - "**/spec/**/*"
75
+
76
+ Lint/AmbiguousBlockAssociation:
77
+ Exclude:
78
+ - "**/spec/**/*"
79
+
80
+ Style/AccessorGrouping:
81
+ Enabled: false
82
+
83
+ Layout/SpaceBeforeComma:
84
+ Enabled: false
85
+ # My Preferences - End
data/Assessment1.md ADDED
@@ -0,0 +1,127 @@
1
+ 1. Business modelling tools and Technical modelling tools
2
+
3
+ Technical modelling tools 
4
+ ERD
5
+  
6
+ - Entity Relationship Diagram used for Databases
7
+
8
+ Tools: Gliffy, Lucid Charts,   
9
+
10
+ 2. Software development methodologies 
11
+ - Agile/ 
12
+ - Waterflow 
13
+ - RAD 
14
+ - Extreme XP 
15
+ - Feature Driven 
16
+ - Scrum
17
+
18
+ 3. Application architecture diagram
19
+ - N-Tier (Layered) vs - Microservices
20
+ - Application Architecture Diagram
21
+ - Integration Architecture Diagram
22
+ - Deployment Architecture Diagram
23
+ - DevOps Architecture Diagram
24
+ - Data Architecture Diagram
25
+
26
+ 4. Software risk analysis
27
+ - Estimates, Scope Creep, Stake holder expectations, Low Stake holder engagement, 
28
+ - Requirements / Use Cases
29
+ -  Abuse or security analysis 
30
+ - Unproven Technology 
31
+ - Choice of Infrustruction
32
+  
33
+ - Cloud, Server/On-Premise/Integrations
34
+ - UX Design
35
+  
36
+ - Framwork, Accesibility
37
+ - Risk analysis
38
+  
39
+ - Code Quality
40
+  
41
+ - Anti Patterns,
42
+  
43
+ - Poor Architecture
44
+ - Test Design
45
+  
46
+ - Data edge cases
47
+ - Static Analysis tools
48
+  
49
+ - Linters
50
+ - Pen Testing
51
+  
52
+ 5. Database diagram processes and steps
53
+ - ERD
54
+ - Conceptual model  
55
+ - Purpose of database     
56
+    - Monolith vs Microservice     
57
+ - Relational, Object/JSON/NoSql Store, Key/Value Store, Event Sourced
58
+ 6. Design database process and steps 
59
+ - Normalized tables     
60
+ - Entities     
61
+ - Attributes 
62
+ - Relationships, (1-1, 1-m, m-m)     
63
+  - Define cardinality, maximum number of values
64
+  - Define ordinality, minimum number of values     
65
+  - Lhs can be zero or one or many     
66
+  - Rhs can be zero, one or many      
67
+  - Referential integrity, constraints, indexes
68
+ 7. Implement database database processes and steps 
69
+ - DDL 
70
+ - create database 
71
+ - create table     
72
+ - primary key     
73
+ - attributes 
74
+ - create index and constraints 
75
+ - create foreign key references 
76
+ - create views   
77
+ 8. Principles of database-management systems. 
78
+
79
+ - Shared collection of related data 
80
+ - Data Modeling 
81
+ - Data Storage   
82
+ - Structured Data   
83
+ - Unstructured Data 
84
+ - Transactions (Local or Distributed) 
85
+ - Referential Integrity 
86
+ - Cardinatlity/Ordinality 
87
+ - Distributed Data 
88
+ - Data Warehouses / Big Data 
89
+ - Relational, Object/JSON Store, Key/Value Stores, Event Sourced
90
+
91
+ 9. Object-oriented programming concepts 
92
+ - Encapsulation, Inheritance, Abstraction, Polymorphism
93
+
94
+ 10. Characteristics of a programming language (C#) 
95
+ - Object Oriented 
96
+ - Memory Management 
97
+ - Garbage Collection 
98
+ - Type Safe 
99
+ - Compiled to Byte Code 
100
+ - Cross Platform  
101
+ 11. Open-source development tools and platforms 
102
+ - Git Hub 
103
+ - VSCode 
104
+ - Bootstrap, Material, Tailwind CSS 
105
+ - Angular, React, Vue   
106
+ 12. Input and output requirements & examples 
107
+ - Input   
108
+ - Console, Terminal, Browser, Ports, Devices -
109
+ Output   - Console, Screen, Printer, Devices (3D Printer, Robot), Ports (Database, Message Queue)
110
+ 13. Testing techniques 
111
+ - Unit Testing 
112
+ - Integration Test 
113
+ - Regression Testing 
114
+ - Penn Testing 
115
+ - User Acceptance Testing  
116
+ 14. Computer hardware & why it is important in soft dev
117
+  
118
+ - PC, Mac, Embedded Device, IOT, Mobile (Android, IOS, Tablets) 
119
+ - Operating systems, Kernals, VM's and Dockerization 
120
+ - Provides both a physical devices  and virtual environments on which to run applications  
121
+ 15. Computer networking components & why it is important in soft dev 
122
+ - Allows for distributed computing 
123
+ - Scalable databases 
124
+ - Scalable services 
125
+ - Provides redundancy and resilience. 
126
+ - Provides external backup stores
127
+
data/Assessment2.md ADDED
@@ -0,0 +1,88 @@
1
+ # Assessment
2
+
3
+ Validate Software
4
+
5
+ ICPTPRG520 Validate an application design against specifications
6
+
7
+ ## PART 1
8
+
9
+ 1. Develop a proof of concept
10
+ 2. Present the prototype system
11
+ 3. Perform design and code validation
12
+ 4. Document and report validation results
13
+
14
+ A. Determine the procedures and tools required to perform
15
+
16
+ * Software requirements validation
17
+ * Database validation
18
+ * Software design validation
19
+ * Source code validation
20
+ * User Interface (UI) validation
21
+ * Test validation
22
+
23
+ B. Now it is time to design and build a prototype.
24
+ 1. Identify a prototyping tool to develop proof of concept
25
+ 2. Identify the use cases from the software requirements.
26
+ 3. Develop a prototype using the selected tool.
27
+
28
+ C. Save your word-processed document as VDP_Part1
29
+
30
+ ## PART 2
31
+
32
+ 10-15 minutes to present your prototype
33
+
34
+ Role Play Participants:
35
+ Client and Developer.
36
+
37
+ 1. Identify each use case requirements that you need to fulfil
38
+ 2. Confirm the completeness and correctness of the requirements using appropriate questioning and listening techniques.
39
+ 3. Demonstrate the prototype (from Part 1) to the client and determine whether any further refinements need to be made.
40
+ 4. Record the outcome of the presentation and any changes required in a document.
41
+
42
+ ## PART 3
43
+
44
+ Now you have implement selected use cases, its time for you to validate it.
45
+
46
+ Record your validation details
47
+ - Date
48
+ - Name
49
+ - Procedures
50
+ - Results (including screen shots)
51
+
52
+ 1. Validate the software design to ensure the design is complete, accurate and feasible.
53
+ 1. Include diagrams, class, erd, activity, seq, flow etc...
54
+ 2. Validate the database structure and elements, inluding screenshots
55
+ 3. Validate the UI design
56
+ 4. Validate the software code for consistency and analysis of the code using 2 static analysis tools (c# and web). Include screen shots
57
+
58
+ ## PART 4
59
+
60
+ Document and report validation results
61
+ See: Original document for this.
62
+
63
+ ### Application Requirements
64
+
65
+ Sydney club needs a simple membership system.
66
+
67
+ System should allow club employees to enter member details.
68
+
69
+ Future: Guests can sign-up and manage their membership online via the clubs website and via mobile app.
70
+
71
+ ## Database
72
+
73
+ ### Users
74
+
75
+ The users table will hold a list of employees who can add new members to the system.
76
+
77
+ * email - Valid email that acts as a unique user name
78
+ * password - hashed value that holds the users password
79
+
80
+ ### Members
81
+
82
+ Members table will store member details
83
+
84
+ * First name
85
+ * Last name
86
+ * Phone number
87
+ * Date of Birth
88
+
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ - Using welcoming and inclusive language
18
+ - Being respectful of differing viewpoints and experiences
19
+ - Gracefully accepting constructive criticism
20
+ - Focusing on what is best for the community
21
+ - Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ - The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ - Trolling, insulting/derogatory comments, and personal or political attacks
28
+ - Public or private harassment
29
+ - Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ - Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at david.cruwys@bugcrowd.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/