diff --git a/server.r b/server.r
new file mode 100644
index 0000000000000000000000000000000000000000..05bb4452efe08d9fb5833ba3444e1e81ba5242af
--- /dev/null
+++ b/server.r
@@ -0,0 +1,103 @@
+
+# Define a server for the Shiny app
+function(input, output) {
+  
+  
+
+  # Fill in the spot we created for a plot
+  output$Plot <- renderPlot({
+
+
+ 
+
+myalpha1=input$alpha
+mu0=input$mu0
+sigma=input$sigma
+n=input$n
+mu1=input$mu1
+
+
+
+criterion=qnorm(1-myalpha1)*sigma/sqrt(n)+mu0 # criterion c
+betamu=pnorm((sqrt(n)/sigma)*(mu0-mu1)+qnorm(1-myalpha1)) #beta
+power=1-pnorm((sqrt(n)/sigma)*(mu0-mu1)+qnorm(1-myalpha1)) # power
+
+
+
+par(mar=c(4,0, 4, 0))
+# distribut  under null \bar{X}~N(mu0,sig/\sqrt{n})
+plot(seq(-3,3,length=1000),dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n)),type="l",
+	lwd=1,ylim=c(0,max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n)))+0.2),cex.lab=2.2,xlab="",
+     main="",ylab="",cex=1.4, cex.axis=2,bty="n",
+	 xlim=c(-5,6),yaxt="n",xaxt="n",col="black")
+lines(seq(-3,5,length=1000),dnorm(seq(-3,5,length=1000),mu1,sigma/sqrt(n)),type="l",
+	lwd=1,ylim=c(0,1.5),cex.lab=2.2,xlab="",
+     main="",ylab="",cex=1.4, cex.axis=2,bty="n",
+	 xlim=c(-5,7),yaxt="n",xaxt="n",col="black")
+abline(v=criterion, lty=1, lwd=3, col="red")
+axis(1, c(-5:5),cex.axis=2, tck=-.02)
+mtext(expression(bar(X)[n]),at=c(0),side=1,line = 3,cex=2)
+	
+
+left  <- seq(-3,   criterion, length.out=100)
+right <- seq(criterion, 3,   length.out=100)
+yH0r  <- dnorm(right, mu0, sigma/sqrt(n))
+yH1l  <- dnorm(left,  mu1, sigma/sqrt(n))
+yH1r  <- dnorm(right, mu1, sigma/sqrt(n))
+	
+polygon(c(right, rev(right)), c(yH0r, numeric(length(right))), border=NA,
+        density=5, lty=3, lwd=4, angle=-45,col="black")
+polygon(c(left,  rev(left)),  c(yH1l, numeric(length(left))),  border=NA,
+        density=5, lty=3, lwd=4, angle=45,col="black")
+polygon(c(right, rev(right)), c(yH0r, numeric(length(right))), border=NA,
+        col=rgb(1, 0.3, 0.3, 0.6))
+polygon(c(left,  rev(left)),  c(yH1l, numeric(length(left))),  border=NA,
+        col=rgb(0.3, 0.3, 1, 0.6))		
+
+text(criterion-1.5,  max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n)))+0.2,  adj=0, label=
+as.expression(bquote(c~"="~.(format(criterion, digits = 3)))),cex=1.5)
+text(-2.5,  0.3*max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n)))
+, adj=1, label= expression("Distrib. sous "*H[0]),cex=1.5)
+text(mu1+4,  0.3*max(dnorm(seq(-3,13,length=1000),mu0,sigma/sqrt(n))), adj=1, label= expression("Distrib. sous "*H[a]),cex=1.5)
+text(-2.5,  0.2*max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n))), adj=1,  label= expression("N(0,"*sigma/sqrt(n)*")"),cex=1.5)
+text(mu1+4,  0.2*max(dnorm(seq(-3,3,length=1000),mu0,sigma/sqrt(n))), adj=1, label= expression("N(1,"*sigma/sqrt(n)*")"),cex=1.5)	
+source("http://www.math.mcmaster.ca/bolker/R/misc/legendx.R")
+		
+legend("topright",c(
+as.expression(bquote(alpha[n](mu)~"="~.(format(myalpha1, digits = 3)))),
+as.expression(bquote(beta[n](mu)~"="~.(format(betamu,digits = 3))))),
+text.col="white",  
+col = c(NA,NA,NA),lty=c(NA,NA,1),
+border = c("#FF4D4D99","#4D4DFF99",NA),
+fill=c(rgb(1, 0.3, 0.3, 0.6),rgb(0.3, 0.3, 1, 0.6),NA),  
+cex=1.5,bty = "n",angle=c(-45,45,90),
+box.cex=c(2,2),y.intersp=3)
+ 
+legend("topright",c(
+as.expression(bquote(alpha[n](mu)~"="~.(format(myalpha1, digits = 3)))),
+as.expression(bquote(beta[n](mu)~"="~.(format(betamu,digits = 3))))),
+text.col="white", 
+col = c(NA, NA,NA),lty=c(2,2,NA),
+border = c("#FF4D4D99","#4D4DFF99",NA),
+fill=c(rgb(1, 0.3, 0.3, 0.6),rgb(0.3, 0.3, 1, 0.6),NA),  
+cex=1.5,density=c(10,10,0),bty = "n",angle=c(-45,45,90),
+box.cex=c(2,2),y.intersp=3) 
+ 
+legend("topright",c(
+as.expression(bquote(alpha[n](mu)~"="~.(format(myalpha1, digits = 3)))),
+as.expression(bquote(beta[n](mu)~"="~.(format(betamu,digits = 3))))),
+text.col="black", 
+col = c(NA, NA,NA),lty=c(3,3,NA),
+border = c("#FF4D4D99","#4D4DFF99",NA),
+cex=1.5,density=c(10,10,0),bty = "n",angle=c(-45,45,90),
+box.cex=c(2,2),y.intersp=3) 
+ 
+
+	 
+	 
+  })
+}
+
+
+
+