Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 37 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

Small NumPy-inspired Java library for ndarray operations, developed as a DevOps team project.

Authors: see [AUTHORS](AUTHORS).

Repository: https://github.com/sMouaad/DevOps-Project

**[Documentation & API Reference](https://smouaad.github.io/DevOps-Project/)**
Expand All @@ -21,9 +23,7 @@ Repository: https://github.com/sMouaad/DevOps-Project
- Keep test quality high and track coverage in CI.
- Deliver a clear project report in this README.

## Features Implemented So Far

Current snapshot date: 2026-04-04.
## Features Implemented

- 1D ndarray core with metadata (`ndim`, `shape`, `size`).
- 2D ndarray support with matrix validation.
Expand Down Expand Up @@ -66,7 +66,7 @@ Workflow used by the team:
- CI must pass before merge.
- We use GitHub Issues to plan work and assign tasks to each teammate.

Branch examples used so far:
Feature branches used during the project:

- `feature/ndarray-core-1d`
- `feature/array-zeros-arange`
Expand All @@ -75,6 +75,12 @@ Branch examples used so far:
- `feature/ndarray-2d`
- `feature/ci-coverage`
- `feature/print-display`
- `feature/optional-ndarray-extensions`
- `feature/sonarqube-integration`
- `feature/docker`
- `feature/maven-dist`
- `feature/iac-ansible-terraform`
- `feature/readme-report`

PR validation checklist:

Expand Down Expand Up @@ -177,35 +183,44 @@ cd infrastructure/scripts

See [infrastructure/README.md](infrastructure/README.md) for details.

## Current Status vs Mandatory Scope
## Delivered Scope

Implemented:
Mandatory:

- 1D and 2D ndarray support.
- Creation functions (`array`, `zeros`, `arange`).
- Addition operations (`add`, `addInPlace`).
- Scalar addition and `sum()` reduction.
- Reshape with validation.
- Docker containerization with CI/CD pipeline.
- Infrastructure as Code for GCP deployment.
- NumPy-like display.

Optional / bonus (difficulty level in brackets):

- Scalar addition and `sum()` reduction — library extensions.
- Maven SNAPSHOT publishing to GitHub Packages, gated by 70% coverage [2].
- Multi-stage Docker image published to GHCR with semver/sha tags [3].
- Infrastructure as Code (Terraform + Ansible) for GCP deployment [4].
- SonarQube static analysis integrated in CI with quality gate [3].
- CI/coverage badges and GitHub Pages documentation site [1].

In progress / next:
## Feedback

- Final quality/readability cleanup.
- Final documentation polishing and report completion.
This project was a good learning experience for us. We learned that having a working pipeline early saves a lot of time later, and we learned how the use tools such as terraform & ansible along the way.

## Feedback and Retrospective (Living Section)
What went well:

What worked well so far:
- CI + tests helped us avoid regressions.
- Small PRs made reviews easier.
- Docker made demo execution consistent across machines.
- Terraform + Ansible split infra creation and app deployment clearly.

- Small PR scope reduced merge risk.
- Review-first workflow caught shape/metadata issues early.
- CI + tests made refactoring safer.
What was harder:

What to improve next:
- Covering edge cases (2D behavior, reshape validation) with clean tests.
- Keeping feature branches up to date with `main`.
- Initial cloud setup (credentials, IAM roles, SSH keys).

- Add more explicit edge-case tests for some 2D operations.
- Keep branch updates synchronized with `main` to reduce conflict churn.
- Start working on bonus options once mandatory scope is fully stable.
What we can improve next:

This section will be updated at each milestone.
- Add moretests (edgecases) for 2D operations
- Add an automatic changelog for releases.
- Add a PR template...
Loading