## ascii-art-web ### Objectives Ascii-art-web consists in creating and running a server, in which it will be possible to use a web **GUI** (graphical user interface) version of your last project, [ascii-art](../ascii-art). Your webpage must allow the use of the different banners: - [shadow](../ascii-art/shadow.txt) - [standard](../ascii-art/standard.txt) - [thinkertoy](../ascii-art/thinkertoy.txt) Implement the following HTTP endpoints: 1. GET `/`: Sends HTML response, the main page.\ 1.1. GET Tip: [go templates](https://golang.org/pkg/html/template/) to receive and display data from the server. 2. POST `/ascii-art`: that sends data to Go server (text and a banner)\ 2.1. POST Tip: use form and other types of [tags](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) to make the post request.\ The way you display the result from the POST is up to you. What we recommend are one of the following : - Display the result in the route `/ascii-art` after the POST is completed. So going from the home page to another page. - Or display the result of the POST in the home page. This way appending the results in the home page. The main page must have: - text input - radio buttons, select object or anything else to switch between banners - button, which sends a POST request to '/ascii-art' and outputs the result on the page. ### HTTP status code Your endpoints must return appropriate HTTP status codes. - OK (200), if everything went without errors. - Not Found, if nothing is found, for example templates or banners. - Bad Request, for incorrect requests. - Internal Server Error, for unhandled errors. ## Markdown In the root project directory create a `README.MD` file with the following sections and contents: - Description - Authors - Usage: how to run - Implementation details: algorithm ### Instructions - HTTP server must be written in **Go**. - HTML templates must be in the project root directory _templates_. - The code must respect the [good practices](../good-practices/README.md). ### Allowed packages - Only the [standard go](https://golang.org/pkg/) packages are allowed ### Usage - [Here's an example](http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20).