Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
akhossanX authored Sep 19, 2023
1 parent 1b56da3 commit 50798a1
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 0 deletions.
44 changes: 44 additions & 0 deletions subjects/java/Nexus/README.md
Original file line number Diff line number Diff line change
@@ -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!
57 changes: 57 additions & 0 deletions subjects/java/Nexus/audit/README.md
Original file line number Diff line number Diff line change
@@ -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?

0 comments on commit 50798a1

Please sign in to comment.