As Github Pages can't automaticly deploy Typascript project, I decied to poublish the App on my own server. You can find it to : https://todo-app.thomasbiarneix.com/
As React doesn't have an HttpXhrBackend extension like Angular, I've divided the project into two parts. The first, available on the main branch, allows the application to run statically and manages task data via React states. The second, on the moked-backend branch, uses the json-server library and provides a REST API simulation on a different internal port. Here you can see how I would have handled API calls with axios.
Each User story is the subject of a specific commit as requested.
There are to bonus features :
- Bonus 1 : Add delete task button
- Bonus 2 : Reorder uncomplete tasks by drag and drop
Our fantastic product owner has a wonderful, amazing and revolutionary idea... he wants to build a new Todo application. He has a good idea of the application behavior and comes with a backlog containing the following user stories :
As a user I would like to list my current todos
- Each todo could have, at minimal, a related state and title
- Some hard-coded todos will be initialized in this context to demonstrate the tool
As a user I would like to change a todo state by checking a "box"
- When a todo is complete, it should be placed at the bottom of the list and should be crossed out
As a user I would like to display one of my todo in a separate or dedicated view. This todo will contain its title and a description (which is a new information not shown in the previous view).
- We can click on a todo (by any way) to access the details view of the todo
- The todo could be accessed via a unique URL
As a user I would like to add a new todo in my list
- The todo title is required
- The todo description can be empty
- The newly created todo has to be on top of the list of todos
- You are free to choose the design / interaction
You're working in the WebFactory which provides the following technical recommendations :
- The backend application should be based on your preferred languages (Java , JS, PHP, Python, Go, C++, ...) and/or Framework (Spring Boot, Django, .NetCore , NodeJS, Angular, React, ...)
- To keep the UI simple
- Code quality is very important, so all the code has to be covered by unit tests
- Each user story should be realized in its own commit on master
- The product owner is curious and likes to read the application code on Github and test it via Github Pages
- The application should have a mocked backend and store all todos on it (extension of HttpXhrBackend)
You can add any new functionality in this wonderful project if you want to, in order to satisfy your PO 😉