k_manager 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
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/