diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/NetflixFrontend.iml b/.idea/NetflixFrontend.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/.idea/NetflixFrontend.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..db8786c
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..a62c735
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..c9814a1
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,6 @@
+FROM node:14-alpine
+WORKDIR /app
+COPY . .
+RUN npm install
+RUN npm run build
+CMD ["npm", "start"]
\ No newline at end of file
diff --git a/k8s/deploymentFront.yaml b/k8s/deploymentFront.yaml
new file mode 100644
index 0000000..aaa5cf6
--- /dev/null
+++ b/k8s/deploymentFront.yaml
@@ -0,0 +1,46 @@
+#k8s/service-demo.yaml
+
+apiVersion: v1
+kind: Service
+metadata:
+ name: service-netflix-movie-front
+spec:
+ selector:
+ app: netflix-frontend
+ ports:
+ - protocol: TCP
+ port: 3000
+ targetPort: 3000
+ #ghazalllllllllllllllllllllllllllllll
+
+---
+
+
+# k8s/deployment-demo.yaml
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: netflix-frontend
+ labels:
+ app: netflix-frontend
+spec:
+
+ replicas: 1
+
+ selector:
+ matchLabels:
+ app: netflix-frontend
+ template:
+ metadata:
+ labels:
+ app: netflix-frontend
+ spec:
+ containers:
+ - name: server
+ image: ghazalkhateeb/netflixfrontend_image:0.0.3
+ env:
+ - name: MOVIE_CATALOG_SERVICE
+ value: http://service-netflix-movie-catalog:8080
+ - name: REDIS_URL
+ value: service-netflix-redis:6379
diff --git a/pipelines/Dockerfile b/pipelines/Dockerfile
new file mode 100644
index 0000000..c9814a1
--- /dev/null
+++ b/pipelines/Dockerfile
@@ -0,0 +1,6 @@
+FROM node:14-alpine
+WORKDIR /app
+COPY . .
+RUN npm install
+RUN npm run build
+CMD ["npm", "start"]
\ No newline at end of file
diff --git a/pipelines/build.Jenkinsfile b/pipelines/build.Jenkinsfile
new file mode 100644
index 0000000..53881a9
--- /dev/null
+++ b/pipelines/build.Jenkinsfile
@@ -0,0 +1,59 @@
+// pipelines/build.Jenkinsfile
+
+pipeline {
+ agent {
+ label 'general'
+ }
+
+ triggers {
+ githubPush()
+ }
+ environment {
+ // GIT_COMMIT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
+ // TIMESTAMP = new Date().format("yyyyMMdd-HHmmss")
+
+
+ IMAGE_TAG = "v1.0.$BUILD_NUMBER"
+ IMAGE_BASE_NAME = 'netflix-app'
+ DOCKER_CREDENTIALS = credentials('dockerhub')
+ DOCKER_USERNAME = "${DOCKER_CREDENTIALS_USR}"
+ DOCKER_PASS = "${DOCKER_CREDENTIALS_PSW}"
+
+ //DOCKER_USERNAME = credentials('dockerhub').username
+ //DOCKER_PASS = credentials('dockerhub').password
+ }
+
+
+
+ stages {
+ stage('Docker setup') {
+ steps {
+ sh '''
+ docker login -u $DOCKER_USERNAME -p $DOCKER_PASS
+ '''
+ }
+ }
+
+ stage('Build & Push') {
+ steps {
+ sh '''
+
+
+ IMAGE_FULL_NAME=$DOCKER_USERNAME/$IMAGE_BASE_NAME:$IMAGE_TAG
+
+
+ docker build -t $IMAGE_FULL_NAME .
+ docker push $IMAGE_FULL_NAME
+ '''
+ }
+ }
+ stage('Trigger Deploy') {
+ steps {
+ build job: 'NetflixFrontendDeploy' , wait: false, parameters: [
+ string(name: 'SERVICE_NAME', value: "NetflixFrontend"),
+ string(name: 'IMAGE_FULL_NAME_PARAM', value: "$DOCKER_USERNAME/$IMAGE_BASE_NAME:$IMAGE_TAG")
+ ]
+ }
+ }
+ }
+}
diff --git a/pipelines/test.Jenkinsfile b/pipelines/test.Jenkinsfile
new file mode 100644
index 0000000..9653ce4
--- /dev/null
+++ b/pipelines/test.Jenkinsfile
@@ -0,0 +1,44 @@
+pipeline {
+ agent any
+
+ stages {
+ stage('Tests before build') {
+ parallel {
+ stage('Unittest') {
+ steps {
+ sh 'echo unittesting...'
+ }
+ }
+ stage('Lint') {
+ steps {
+ sh 'echo linting...'
+ }
+ }
+ }
+ }
+ stage('Build the app') {
+ steps {
+ sh 'echo building ....'
+ }
+ }
+ stage('Tests after build') {
+ parallel {
+ stage('Security vulnerabilities scanning') {
+ steps {
+ sh 'echo scanning for vulnerabilities...'
+ }
+ }
+ stage('API test') {
+ steps {
+ sh 'echo testing API...'
+ }
+ }
+ stage('Load test') {
+ steps {
+ sh 'echo testing under load...'
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file