From 50798a1c0004e43141b8a89b187720c03a46f976 Mon Sep 17 00:00:00 2001 From: Abdelilah Khossan <49311230+akhossanX@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:50:45 +0100 Subject: [PATCH] CON-1774-MARKDOWN-Nexus-Java-Project (#2117) * docs(nexus project): Add project sample 1 * docs(Nexus project): Add Readme file for project sample 2 * docs(Nexus project): Add audit file for project sample 1 * docs(Nexu project): Add audit file for project sample 2 * docs(Nexus project): Remove project objectives section * docs(Nexus project): Change evaluation criteria * docs(Nexus project): Remove folders term from tasks description * docs(Nexus): Update subject 2 * docs(Nexus): Delete subject sample 1 * docs(Nexus): Rename README files * docs(Nexus): Update subject * doces(Nexus): Update audit file * docs(Nexus): Remove builds and tests part * docs(Nexus): Update subject * docs(Nexus): Remove CI CD related question from audit --- subjects/java/Nexus/README.md | 44 ++++++++++++++++++++++ subjects/java/Nexus/audit/README.md | 57 +++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 subjects/java/Nexus/README.md create mode 100644 subjects/java/Nexus/audit/README.md diff --git a/subjects/java/Nexus/README.md b/subjects/java/Nexus/README.md new file mode 100644 index 0000000000..6f1e0b263f --- /dev/null +++ b/subjects/java/Nexus/README.md @@ -0,0 +1,44 @@ +# Artifact Management System with Nexus + +## Project Description +Welcome to the **Nexus** project! This hands-on project is designed to provide you with a comprehensive learning experience in utilizing Nexus by Sonatype as a central repository for storing, managing, and deploying software artifacts. Through a series of tasks and requirements, you'll explore various aspects of artifact management, version control, Docker integration, continuous integration, and security considerations. + +## Project Requirements +In this project, You will have to be working with, at least, java 11 and a version of Maven that is compatible with it. + +1. **Setup Nexus Repository Manager:** + - Obtain the most recent release of Nexus Repository Manager, and proceed to install and set it up on either a local or remote server. It is essential to configure Nexus to operate under a "nexus" user rather than the "root" user. + - Create repositories and set them up for different artifact types such as JARs, WARs, and Docker images. + +2. **Sample Web Application:** + - Clone buy-02 project repository, configure the web application as Maven project. + +3. **Artifact Publishing:** + - Configure Maven to publish the built artifacts to the appropriate repositories in Nexus. + +4. **Dependency Management:** + - Utilize Nexus as a proxy for fetching external dependencies required for the web application. + - Configure the project to resolve dependencies from Nexus repositories. + +5. **Versioning:** + - Implement versioning for the web application and its artifacts using Nexus capabilities. + - Demonstrate how to retrieve and manage different versions of the artifacts. + +6. **Docker Integration:** + - Set up a Docker repository in Nexus and publish the Docker image to the repository. + +7. **Continuous Integration (CI):** + - Configure the pipeline, in addition to builds and tests, add artifact publishing whenever changes are pushed to the repository. + +8. **Documentation:** + - Create clear and detailed documentation that explains the project setup, configuration steps, and usage instructions. + - Include screenshots and examples to guide users through the artifact management process. + +9. **Bonus: Nexus Security and Access Control:** + - Explore Nexus security features such as user authentication, role-based access control, and repository-level permissions. + - Configure security settings to restrict access to certain artifacts or repositories. + +## Evaluation +Your project will be evaluated based on the completion of all required tasks. Refer to the provided evaluation audit document for the criteria and checklist used by the evaluator. + +Enjoy your journey into the world of Nexus and artifact management! diff --git a/subjects/java/Nexus/audit/README.md b/subjects/java/Nexus/audit/README.md new file mode 100644 index 0000000000..b9f8634ed9 --- /dev/null +++ b/subjects/java/Nexus/audit/README.md @@ -0,0 +1,57 @@ +#### Functional + +##### Setup Nexus Repository Manager + +###### Has the Nexus Repository Manager been successfully installed and configured on a local or remote server? + +###### Is Nexus configured correctly to work under the specified user not 'root' user? + +###### Are repositories set up for different artifact types such as JARs, WARs, and Docker images? + +##### Development and Structure + +###### Is there a simple web application developed using the Spring Boot framework? + +###### Does the project utilize a proper Maven or Gradle project structure? + +##### Artifact Publishing + +###### Is the build tool (Maven or Gradle) properly configured to publish built artifacts (JARs/WARs) to the relevant repositories in Nexus? + +##### Dependency Management + +###### Is Nexus used as a proxy for fetching external dependencies required by the web application? + +###### Is the project configured to resolve dependencies from Nexus repositories? + +##### Versioning + +###### Is versioning implemented for the web application and its artifacts using Nexus capabilities? + +###### Are different versions of artifacts effectively retrieved and managed? + +##### Docker Integration + +###### Is there a Docker repository set up in Nexus, and is the Docker image published to the repository? + +##### Continuous Integration (CI) + +###### Does the pipeline automatically trigger builds, tests, and artifact publishing upon repository changes? + +##### Documentation + +###### Is clear and detailed documentation provided for project setup, configuration, and usage? + +###### Does the documentation include relevant screenshots and examples? + +#### Bonus: Nexus Security and Access Control + +##### Security Exploration + +###### Have Nexus security features like user authentication and role-based access control been explored? + +###### Are repository-level permissions effectively configured? + +##### Configuration + +###### Are security settings configured to restrict access to specific artifacts or repositories in Nexus?