- docker and docker-compose
- helm and minikube
git clone https://github.com/thobalose/todo-list-app.git ; cd todo-list-app/
npm install
node app.js
Visit http://localhost:8080 in your browser
To run tests
npm test
To build a docker image for the todo-list-app and run it inside a container execute
docker build -t thoba/todo-list-app .
The above with create an image with the latest
tag. To run the container execute
docker run -it -p 8080:8080 --name todo_list_app thoba/todo-list-app
You can also use docker-compose
if you have it installed. To build and run the latest source using docker-compose
execute
docker-compose up --build -d
and visit http://localhost:8080 in your browser
To deploy the application to Minikube kindly see todo-list-chart/
.
- Multiple users should be able to view the shared public todo list
- Should be able to add items
- Should be able to delete items
- Should be able to edit items (Missing feature)
- Must be able to deploy in docker (Missing feature)
- Add missing requirement #4 to the application
- Add sufficient test coverage to the application and update readme on how to run the tests
- Add missing requirement #5 to the application (Dockerfile and update readme with instructions)
- Display test coverage after tests are executed
- Find and fix the XSS vulnerability in the application. Also make sure that it wont happen again by including a test.
- Add a Helm chart for the application that is deployable on Minikube along with the required readme entry.
- Update the code as needed and document what you have done in the readme below
- Will be nice if you can git tag the tasks by number
- Added
edittodo.ejs
page to allow for editing of todo. - Used
method-override
middleware in order to usePUT
HTTP verb to edit item. - Used
docker
anddocker-compose
to containerized deployment. - Used
mocha
,chai
, andsupertest
for testing. - Used
istanbul
to display test coverage. - Used
sanitizer
module to mitigate the XSS vulnerability. - Added Helm Chart.