From c7e27e4aa0112a082541d7d641a05470b0e51a5c Mon Sep 17 00:00:00 2001 From: Benedikt Wagner Date: Tue, 2 Jul 2024 13:16:35 +0200 Subject: [PATCH 1/2] ignore local xcode states --- .gitignore | 4 ++++ .../UserInterfaceState.xcuserstate | Bin 60546 -> 0 bytes 2 files changed, 4 insertions(+) delete mode 100644 CloudMaster.xcodeproj/project.xcworkspace/xcuserdata/benedikt.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/.gitignore b/.gitignore index e43b0f9..c55c2fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ .DS_Store + +# Xcode +*.xcuserstate + diff --git a/CloudMaster.xcodeproj/project.xcworkspace/xcuserdata/benedikt.xcuserdatad/UserInterfaceState.xcuserstate b/CloudMaster.xcodeproj/project.xcworkspace/xcuserdata/benedikt.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index d696a8a73f91e0fd659f4ca3ba558ee3fcbccff8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60546 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 From 81aec961c2832851e2caaa31be030cc2baeeb757 Mon Sep 17 00:00:00 2001 From: Benedikt Wagner Date: Tue, 2 Jul 2024 13:21:57 +0200 Subject: [PATCH 2/2] add SC-900 course --- CloudMaster/Constants/Courses.swift | 234 ++++++++++++++++++---------- 1 file changed, 156 insertions(+), 78 deletions(-) diff --git a/CloudMaster/Constants/Courses.swift b/CloudMaster/Constants/Courses.swift index f0e54e0..905397d 100644 --- a/CloudMaster/Constants/Courses.swift +++ b/CloudMaster/Constants/Courses.swift @@ -7,13 +7,14 @@ enum CourseCompany: String, Codable, Hashable, CaseIterable { case other = "Others" } - enum CodingKeys: String, CodingKey { - case question, choices, multipleResponse = "multiple_response", responseCount = "response_count" + case question, choices + case multipleResponse = "multiple_response" + case responseCount = "response_count" } struct Course: Codable, Hashable, Identifiable { - var id = UUID() // Add this line + var id = UUID() // Add this line let fullName: String let shortName: String let description: String @@ -37,16 +38,12 @@ struct Course: Codable, Hashable, Identifiable { // Add this for Hashable conformance static func == (lhs: Course, rhs: Course) -> Bool { - return lhs.fullName == rhs.fullName && - lhs.company == rhs.company && - lhs.description == rhs.description && - lhs.questionURL == rhs.questionURL && - lhs.repositoryURL == rhs.repositoryURL && - lhs.shortName == rhs.shortName && - lhs.url == rhs.url + return lhs.fullName == rhs.fullName && lhs.company == rhs.company + && lhs.description == rhs.description && lhs.questionURL == rhs.questionURL + && lhs.repositoryURL == rhs.repositoryURL && lhs.shortName == rhs.shortName + && lhs.url == rhs.url } - - + struct Exam: Codable { let quick: ExamDetail let intermediate: ExamDetail @@ -59,16 +56,18 @@ struct Course: Codable, Hashable, Identifiable { } } - extension Course { static let allCourses = [ Course( fullName: "Certified Advanced Networking Specialty", shortName: "ANS-C01", - description: "Validates expertise in designing and maintaining AWS network architecture, including hybrid IT, routing, and security.", + description: + "Validates expertise in designing and maintaining AWS network architecture, including hybrid IT, routing, and security.", company: .aws, - repositoryURL: "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Advanced-Networking-Specialty-ANS-C01-Practice-Test-Exam", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Advanced-Networking-Specialty-ANS-C01-Practice-Test-Exam/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Advanced-Networking-Specialty-ANS-C01-Practice-Test-Exam", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Advanced-Networking-Specialty-ANS-C01-Practice-Test-Exam/main/README.md", url: "https://aws.amazon.com/certification/certified-advanced-networking-specialty/", exam: Exam( quick: ExamDetail(time: 57, questionCount: 22), @@ -80,10 +79,13 @@ extension Course { Course( fullName: "Certified Cloud Practitioner", shortName: "CLF-C02", - description: "Provides a foundational understanding of AWS cloud concepts, services, security, architecture, pricing, and support.", + description: + "Provides a foundational understanding of AWS cloud concepts, services, security, architecture, pricing, and support.", company: .aws, - repositoryURL: "https://github.com/Ditectrev/Amazon-Web-Services-AWS-Certified-Cloud-Practitioner-CLF-C02-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-AWS-Certified-Cloud-Practitioner-CLF-C02-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Amazon-Web-Services-AWS-Certified-Cloud-Practitioner-CLF-C02-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-AWS-Certified-Cloud-Practitioner-CLF-C02-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://aws.amazon.com/certification/certified-cloud-practitioner/", exam: Exam( quick: ExamDetail(time: 30, questionCount: 20), @@ -95,10 +97,13 @@ extension Course { Course( fullName: "Certified Data Analytics", shortName: "DAS-C01", - description: "Validates expertise in designing, building, securing, and maintaining analytics solutions on AWS, demonstrating advanced skills in using AWS data lakes, analytics services, and visualization tools.", + description: + "Validates expertise in designing, building, securing, and maintaining analytics solutions on AWS, demonstrating advanced skills in using AWS data lakes, analytics services, and visualization tools.", company: .aws, - repositoryURL: "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Data-Analytics-DAS-C01-Practice-Tests-Exams-Question", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Data-Analytics-DAS-C01-Practice-Tests-Exams-Question/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Data-Analytics-DAS-C01-Practice-Tests-Exams-Question", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Data-Analytics-DAS-C01-Practice-Tests-Exams-Question/main/README.md", url: "https://aws.amazon.com/training/learn-about/data-analytics/", exam: Exam( quick: ExamDetail(time: 57, questionCount: 22), @@ -110,11 +115,15 @@ extension Course { Course( fullName: "Certified Database Specialty", shortName: "DBS-C01", - description: "Validates expertise in designing, managing, and securing AWS database solutions, demonstrating advanced knowledge of various database services and architectures on the AWS platform.", + description: + "Validates expertise in designing, managing, and securing AWS database solutions, demonstrating advanced knowledge of various database services and architectures on the AWS platform.", company: .aws, - repositoryURL:"https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Database-DBS-C01-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Database-DBS-C01-Practice-Tests-Exams-Questions-Answers/main/README.md", - url: "https://aws.amazon.com/training/classroom/exam-readiness-aws-certified-database-specialty/", + repositoryURL: + "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Database-DBS-C01-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Database-DBS-C01-Practice-Tests-Exams-Questions-Answers/main/README.md", + url: + "https://aws.amazon.com/training/classroom/exam-readiness-aws-certified-database-specialty/", exam: Exam( quick: ExamDetail(time: 57, questionCount: 22), intermediate: ExamDetail(time: 119, questionCount: 46), @@ -125,10 +134,13 @@ extension Course { Course( fullName: "Certified Developer Associate", shortName: "DVA-C02", - description: "Validates proficiency in developing, deploying, and debugging applications on the AWS cloud, demonstrating a strong understanding of core AWS services, architecture, and best practices.", + description: + "Validates proficiency in developing, deploying, and debugging applications on the AWS cloud, demonstrating a strong understanding of core AWS services, architecture, and best practices.", company: .aws, - repositoryURL: "https://github.com/Ditectrev/Amazon-Web-Services-AWS-Developer-Associate-DVA-C02-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-AWS-Developer-Associate-DVA-C02-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Amazon-Web-Services-AWS-Developer-Associate-DVA-C02-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-AWS-Developer-Associate-DVA-C02-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://aws.amazon.com/certification/certified-developer-associate/", exam: Exam( quick: ExamDetail(time: 57, questionCount: 22), @@ -140,10 +152,13 @@ extension Course { Course( fullName: "Certified Machine Learning Specialty", shortName: "MLS-C01", - description: "Validates proficiency in developing, deploying, and debugging applications on the AWS cloud, demonstrating a strong understanding of core AWS services, architecture, and best practices.", + description: + "Validates proficiency in developing, deploying, and debugging applications on the AWS cloud, demonstrating a strong understanding of core AWS services, architecture, and best practices.", company: .aws, - repositoryURL: "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Machine-Learning-MLS-C01-Practice-Tests-Exams-Question", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Machine-Learning-MLS-C01-Practice-Tests-Exams-Question/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Machine-Learning-MLS-C01-Practice-Tests-Exams-Question", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Machine-Learning-MLS-C01-Practice-Tests-Exams-Question/main/README.md", url: "https://aws.amazon.com/certification/certified-machine-learning-specialty/", exam: Exam( quick: ExamDetail(time: 57, questionCount: 22), @@ -156,10 +171,13 @@ extension Course { Course( fullName: "Certified Security Specialty", shortName: "SCS-C02", - description: "Validates advanced expertise in securing and managing AWS environments, demonstrating comprehensive knowledge of security best practices, compliance, identity and access management, incident response, and data protection on the AWS platform.", + description: + "Validates advanced expertise in securing and managing AWS environments, demonstrating comprehensive knowledge of security best practices, compliance, identity and access management, incident response, and data protection on the AWS platform.", company: .aws, - repositoryURL: "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Security-SCS-C02-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Security-SCS-C02-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Security-SCS-C02-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Amazon-Web-Services-Certified-AWS-Certified-Security-SCS-C02-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://aws.amazon.com/certification/certified-security-specialty/", exam: Exam( quick: ExamDetail(time: 57, questionCount: 22), @@ -171,10 +189,13 @@ extension Course { Course( fullName: "Certified Solutions Architect Associate", shortName: "SAA-C03", - description: "Covers designing and deploying scalable, highly available, and fault-tolerant systems on AWS.", + description: + "Covers designing and deploying scalable, highly available, and fault-tolerant systems on AWS.", company: .aws, - repositoryURL: "https://github.com/Ditectrev/AWS-Certified-Solutions-Architect-Associate-SAA-C03-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/AWS-Certified-Solutions-Architect-Associate-SAA-C03-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/AWS-Certified-Solutions-Architect-Associate-SAA-C03-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/AWS-Certified-Solutions-Architect-Associate-SAA-C03-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://aws.amazon.com/certification/certified-solutions-architect-associate/", exam: Exam( quick: ExamDetail(time: 40, questionCount: 20), @@ -186,10 +207,13 @@ extension Course { Course( fullName: "Azure Fundamentals", shortName: "AZ-900", - description: "Covers general cloud concepts and core Azure services, pricing, and support.", + description: + "Covers general cloud concepts and core Azure services, pricing, and support.", company: .azure, - repositoryURL: "https://github.com/Ditectrev/Microsoft-Azure-AZ-900-Microsoft-Azure-Fundamentals-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-900-Microsoft-Azure-Fundamentals-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Microsoft-Azure-AZ-900-Microsoft-Azure-Fundamentals-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-900-Microsoft-Azure-Fundamentals-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://learn.microsoft.com/en-us/certifications/azure-fundamentals/", exam: Exam( quick: ExamDetail(time: 20, questionCount: 20), @@ -201,10 +225,13 @@ extension Course { Course( fullName: "Azure Designing and Implementing Microsoft DevOps Solutions", shortName: "AZ-400", - description: "Validates skills in DevOps practices, continuous integration, delivery, and infrastructure as code.", + description: + "Validates skills in DevOps practices, continuous integration, delivery, and infrastructure as code.", company: .azure, - repositoryURL: "https://github.com/Ditectrev/Microsoft-Azure-AZ-400-Designing-and-Implementing-Microsoft-DevOps-Solutions-Practice-Tests-Exams-QA", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-400-Designing-and-Implementing-Microsoft-DevOps-Solutions-Practice-Tests-Exams-QA/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Microsoft-Azure-AZ-400-Designing-and-Implementing-Microsoft-DevOps-Solutions-Practice-Tests-Exams-QA", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-400-Designing-and-Implementing-Microsoft-DevOps-Solutions-Practice-Tests-Exams-QA/main/README.md", url: "https://learn.microsoft.com/en-us/certifications/devops-engineer/", exam: Exam( quick: ExamDetail(time: 65, questionCount: 20), @@ -216,10 +243,13 @@ extension Course { Course( fullName: "Azure Developing Solutions for Microsoft Azure", shortName: "AZ-204", - description: "Covers designing, building, testing, and maintaining cloud applications on Azure.", + description: + "Covers designing, building, testing, and maintaining cloud applications on Azure.", company: .azure, - repositoryURL: "https://github.com/Ditectrev/Microsoft-Azure-AZ-204-Developing-Solutions-for-Microsoft-Azure-Practice-Tests-Exams-Question-Answer", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-204-Developing-Solutions-for-Microsoft-Azure-Practice-Tests-Exams-Question-Answer/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Microsoft-Azure-AZ-204-Developing-Solutions-for-Microsoft-Azure-Practice-Tests-Exams-Question-Answer", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-204-Developing-Solutions-for-Microsoft-Azure-Practice-Tests-Exams-Question-Answer/main/README.md", url: "https://learn.microsoft.com/en-us/certifications/azure-developer/", exam: Exam( quick: ExamDetail(time: 50, questionCount: 40), @@ -233,8 +263,10 @@ extension Course { shortName: "AZ-305", description: "Focuses on designing cloud and hybrid solutions on Azure.", company: .azure, - repositoryURL: "https://github.com/Ditectrev/Microsoft-Azure-AZ-305-Designing-Microsoft-Azure-Infrastructure-Solutions-Practice-Tests-Exams-QA", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-305-Designing-Microsoft-Azure-Infrastructure-Solutions-Practice-Tests-Exams-QA/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Microsoft-Azure-AZ-305-Designing-Microsoft-Azure-Infrastructure-Solutions-Practice-Tests-Exams-QA", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-305-Designing-Microsoft-Azure-Infrastructure-Solutions-Practice-Tests-Exams-QA/main/README.md", url: "https://learn.microsoft.com/en-us/certifications/azure-solutions-architect/", exam: Exam( quick: ExamDetail(time: 55, questionCount: 20), @@ -248,9 +280,12 @@ extension Course { shortName: "AZ-800", description: "Covers managing core Windows Server workloads using Azure services.", company: .azure, - repositoryURL: "https://github.com/Ditectrev/Microsoft-Azure-AZ-800-Windows-Server-Hybrid-Administrator-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-800-Windows-Server-Hybrid-Administrator-Practice-Tests-Exams-Questions-Answers/main/README.md", - url: "https://learn.microsoft.com/en-us/certifications/windows-server-hybrid-administrator-associate/", + repositoryURL: + "https://github.com/Ditectrev/Microsoft-Azure-AZ-800-Windows-Server-Hybrid-Administrator-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-800-Windows-Server-Hybrid-Administrator-Practice-Tests-Exams-Questions-Answers/main/README.md", + url: + "https://learn.microsoft.com/en-us/certifications/windows-server-hybrid-administrator-associate/", exam: Exam( quick: ExamDetail(time: 60, questionCount: 20), intermediate: ExamDetail(time: 105, questionCount: 42), @@ -261,10 +296,13 @@ extension Course { Course( fullName: "Azure Administrator", shortName: "AZ-104", - description: "Validates managing cloud services covering storage, networking, and compute on Azure.", + description: + "Validates managing cloud services covering storage, networking, and compute on Azure.", company: .azure, - repositoryURL: "https://github.com/Ditectrev/Microsoft-Azure-AZ-104-Microsoft-Azure-Administrator-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-104-Microsoft-Azure-Administrator-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Microsoft-Azure-AZ-104-Microsoft-Azure-Administrator-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-104-Microsoft-Azure-Administrator-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://learn.microsoft.com/en-us/certifications/azure-administrator/", exam: Exam( quick: ExamDetail(time: 60, questionCount: 20), @@ -276,10 +314,13 @@ extension Course { Course( fullName: "Azure Security Engineer", shortName: "AZ-500", - description: "Covers implementing security controls, managing identity and access, and protecting data on Azure.", + description: + "Covers implementing security controls, managing identity and access, and protecting data on Azure.", company: .azure, - repositoryURL: "https://github.com/Ditectrev/Microsoft-Azure-AZ-500-Azure-Security-Engineer-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-500-Azure-Security-Engineer-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Microsoft-Azure-AZ-500-Azure-Security-Engineer-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Microsoft-Azure-AZ-500-Azure-Security-Engineer-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://learn.microsoft.com/en-us/certifications/azure-security-engineer/", exam: Exam( quick: ExamDetail(time: 60, questionCount: 20), @@ -287,13 +328,34 @@ extension Course { real: ExamDetail(time: 150, questionCount: 60) ) ), + Course( + fullName: "Microsoft Security, Compliance, and Identity Fundamentals", + shortName: "SC-900", + description: + "Validates foundational knowledge of security, compliance, and identity (SCI) solutions within Microsof", + company: .azure, + repositoryURL: + "https://github.com/Ditectrev/Microsoft-SC-900-Microsoft-Security-Compliance-and-Identity-Fundamentals-Practice-Tests-Exams-QA", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Microsoft-SC-900-Microsoft-Security-Compliance-and-Identity-Fundamentals-Practice-Tests-Exams-QA/main/README.md", + url: + "https://learn.microsoft.com/de-de/credentials/certifications/security-compliance-and-identity-fundamentals", + exam: Exam( + quick: ExamDetail(time: 60, questionCount: 20), + intermediate: ExamDetail(time: 105, questionCount: 42), + real: ExamDetail(time: 150, questionCount: 60) + ) + ), Course( fullName: "Associate Cloud Engineer", shortName: "ACE", - description: "Validates deploying, monitoring, and managing solutions on Google Cloud Platform.", + description: + "Validates deploying, monitoring, and managing solutions on Google Cloud Platform.", company: .gcp, - repositoryURL: "https://github.com/Ditectrev/Google-Cloud-Platform-GCP-Associate-Cloud-Engineer-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Google-Cloud-Platform-GCP-Associate-Cloud-Engineer-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Google-Cloud-Platform-GCP-Associate-Cloud-Engineer-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Google-Cloud-Platform-GCP-Associate-Cloud-Engineer-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://cloud.google.com/certification/cloud-engineer", exam: Exam( quick: ExamDetail(time: 40, questionCount: 20), @@ -305,10 +367,13 @@ extension Course { Course( fullName: "IT Service Management 4", shortName: "ITL-4", - description: "Entry-level certification that demonstrates an understanding of the core concepts and principles of IT Service Management based on the ITIL 4 framework.", + description: + "Entry-level certification that demonstrates an understanding of the core concepts and principles of IT Service Management based on the ITIL 4 framework.", company: .other, - repositoryURL: "https://github.com/Ditectrev/ITIL-4-Foundation-IT-Service-Management-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/ITIL-4-Foundation-IT-Service-Management-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/ITIL-4-Foundation-IT-Service-Management-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/ITIL-4-Foundation-IT-Service-Management-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://www.axelos.com/certifications/itil-service-management/", exam: Exam( quick: ExamDetail(time: 40, questionCount: 20), @@ -320,11 +385,15 @@ extension Course { Course( fullName: "Agile Foundation", shortName: "Prince-2", - description: "The PRINCE2 Agile Foundation Certificate validates an individual’s knowledge of how to apply the PRINCE2 project management methodology in an agile environment.", + description: + "The PRINCE2 Agile Foundation Certificate validates an individual’s knowledge of how to apply the PRINCE2 project management methodology in an agile environment.", company: .other, - repositoryURL:"https://github.com/Ditectrev/PRINCE2-Agile-Foundation-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/PRINCE2-Agile-Foundation-Tests-Exams-Questions-Answers/main/README.md", - url: "https://www.axelos.com/certifications/propath/prince2-agile-project-management/prince2-agile-foundation", + repositoryURL: + "https://github.com/Ditectrev/PRINCE2-Agile-Foundation-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/PRINCE2-Agile-Foundation-Tests-Exams-Questions-Answers/main/README.md", + url: + "https://www.axelos.com/certifications/propath/prince2-agile-project-management/prince2-agile-foundation", exam: Exam( quick: ExamDetail(time: 40, questionCount: 20), intermediate: ExamDetail(time: 84, questionCount: 42), @@ -335,10 +404,13 @@ extension Course { Course( fullName: "Scrum Developer I", shortName: "PSD-1", - description: "Verifies a developer’s understanding of Scrum principles and their ability to work effectively within a Scrum team, focusing on collaborative and incremental software development practices.", + description: + "Verifies a developer’s understanding of Scrum principles and their ability to work effectively within a Scrum team, focusing on collaborative and incremental software development practices.", company: .other, - repositoryURL: "https://github.com/Ditectrev/Professional-Scrum-Developer-I-PSD-I-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Professional-Scrum-Developer-I-PSD-I-Practice-Tests-Exams-Questions-Answers/master/README.md", + repositoryURL: + "https://github.com/Ditectrev/Professional-Scrum-Developer-I-PSD-I-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Professional-Scrum-Developer-I-PSD-I-Practice-Tests-Exams-Questions-Answers/master/README.md", url: "https://www.scrum.org/assessments/professional-scrum-developer-certification", exam: Exam( quick: ExamDetail(time: 40, questionCount: 20), @@ -350,10 +422,13 @@ extension Course { Course( fullName: "Scrum Master I", shortName: "SM-1", - description: "Demonstrates advanced proficiency in facilitating and leading Scrum teams, emphasizing the application of Scrum practices, principles, and techniques to maximize team productivity and efficiency.", + description: + "Demonstrates advanced proficiency in facilitating and leading Scrum teams, emphasizing the application of Scrum practices, principles, and techniques to maximize team productivity and efficiency.", company: .other, - repositoryURL: "https://github.com/Ditectrev/Professional-Scrum-Master-I-PSM-I-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Professional-Scrum-Master-I-PSM-I-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Professional-Scrum-Master-I-PSM-I-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Professional-Scrum-Master-I-PSM-I-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://www.scrum.org/assessments/professional-scrum-master-i-certification", exam: Exam( quick: ExamDetail(time: 40, questionCount: 20), @@ -365,10 +440,13 @@ extension Course { Course( fullName: "Scrum Master II", shortName: "SM-2", - description: "Demonstrates advanced proficiency in facilitating and leading Scrum teams, emphasizing the application of Scrum practices, principles, and techniques to maximize team productivity and efficiency.", + description: + "Demonstrates advanced proficiency in facilitating and leading Scrum teams, emphasizing the application of Scrum practices, principles, and techniques to maximize team productivity and efficiency.", company: .other, - repositoryURL:"https://github.com/Ditectrev/Professional-Scrum-Master-II-PSM-II-Practice-Tests-Exams-Questions-Answers", - questionURL: "https://raw.githubusercontent.com/Ditectrev/Professional-Scrum-Master-II-PSM-II-Practice-Tests-Exams-Questions-Answers/main/README.md", + repositoryURL: + "https://github.com/Ditectrev/Professional-Scrum-Master-II-PSM-II-Practice-Tests-Exams-Questions-Answers", + questionURL: + "https://raw.githubusercontent.com/Ditectrev/Professional-Scrum-Master-II-PSM-II-Practice-Tests-Exams-Questions-Answers/main/README.md", url: "https://www.scrum.org/assessments/professional-scrum-master-ii-certification", exam: Exam( quick: ExamDetail(time: 40, questionCount: 20), @@ -376,6 +454,6 @@ extension Course { real: ExamDetail(time: 120, questionCount: 60) ), lastUpdate: nil - ) + ), ] }