abdallahalyamni / devops-capstone-project Goto Github PK
View Code? Open in Web Editor NEWDevOps Capstone Project for IBM DevOps and Software Engineering Professional Certificate
License: Apache License 2.0
DevOps Capstone Project for IBM DevOps and Software Engineering Professional Certificate
License: Apache License 2.0
**As a** service provider
**I need** my service to use security headers and CORS policies
**So that** my web site is not vulnerable to CORS attacks
#### Assumptions
* Flask-Talisman will be used for security headers
* Flask-Cors will be used to establish cross-origin resource sharing (CORS) policies
#### Acceptance Criteria
```gherkin
Given the site is secured
When a REST API request is made
Then secure headers and a CORS policy should be returned
```
As a Developer
I need the development environment to be ready
So that I can start developing the service
* The development environment must accept python code
* The Flask framework must be installed with all of its dependencies
gherkin
Given the environment is ready
When I deploy the Flask program
Then It should work as expected
As a customer account manager
I need to be able to read an account
So that I can know all the account details
* We will use a database
* All account details should be stored in a single document/record
gherkin
Given there are accounts in the service
When I try to read on account
Then the service should show the account details
As a customer account manager
I need to be able to update an account
So that I can always edit and update the account details
* [document what you know]
gherkin
Given I change account details in the service
When I read the that account
Then the service should should display the updated details of the account
As a customer account manager
I need to be able to list all accounts in the service
So that I can see all the accounts currently in the service
* [document what you know]
gherkin
Given there are accounts in the service
When I try to list all accounts
Then the service should show all the accounts in the service
As a service provider
I need my service to run on Kubernetes
So that I can easily scale and manage the service
Given the Kubernetes manifests have been created
When I use the oc command to apply the manifests
Then the service should be deployed and run in Kubernetes
**As a** Developer
**I need** automation to build and test every pull request
**So that** I do not have to rely on manual testing of each request, which is time-consuming
#### Assumptions
* GitHub Actions will be used for the automation workflow
* The workflow must include code linting and testing
* The Docker image should be postgres:alpine for the database
* A GitHub Actions badge should be added to the README.md to reflect the build status
#### Acceptance Criteria
```gherkin
Given code is ready to be merged
When a pull request is created
Then GitHub Actions should run linting and unit tests
And the badge should show that the build is passing
```
As a customer account manager
I need to be able to delete an account
So that I can delete the account and its details when it's no longer needed
* [document what you know]
gherkin
Given there are 5 accounts in the service
When I delete one account and try to list all accounts
Then the service should only show 4 accounts
As a developer
I need to containerize my microservice using Docker
So that I can deploy it easily with all of its dependencies
Dockerfile
for repeatable buildsPython:3.9-slim
image as the baseroot
gunicorn
wsgi server as an entry pointGiven the Docker image named accounts has been created
When I use docker run accounts
Then I should see the accounts service running in Docker
As a developer
I need to create a CD pipeline to automate deployment to Kubernetes
So that the developers are not wasting their time doing it manually
Given the CD pipeline has been created
When I trigger the pipeline run
Then I should see the accounts service deployed to OpenShift
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.