Activity Tracker
Jane is a student who is bad with time management. She needs an application where she can log the activities she needs to do for the day and the time allocated to complete these activities. To help Jane, you are to build an activity tracking application where she can have all the functionalities she wants.
Tools
· Spring MVC
· Thymeleaf
· Git
· Spring Data JPA
· JUnit/Mockito
· CSS
User Stories
As a user I should be able to
· Login
· create a task.
A task should be made up of
® Title
® Description
® Status
® Created At
® Updated At
® Completed At
· view all tasks.
A user should be able to view all tasks.
· view a particular task.
A user should be able to view a particular task
· View all pending tasks.
A user should be able to view all pending tasks
· View all done tasks.
A user should be able to view all tasks done
· View all in progress tasks.
A user should be able to view all in progress tasks
· Move a task to done tasks. A user should be able to move a task to done task.
· Move a task back to pending tasks. A user should be able to move a task to back to pending task from in progress.
· Edit a task.
A user should be able to edit the following fields of a task
® Title
® Description
· Delete a task
Categories: pending, done, in progress
Expectations
· Ensure your code is DRY.
· Make sure your endpoints follow correct REST API patterns.
· Basic OOP should be used.
· Apply various optimizations where necessary (e.g. pagination).
· Efficient SQL custom queries should be used where needed.
· Exception Handling
· Custom response structure both on success and failure
· Implement searching for blog post titles and comments.
· All parts of your code should be tested
· Database design should be normalized and entities should have necessary relationship mapping
· Add timestamp to your tables where necessary
Assessment Criteria
-
Codebase is fully tested.
-
All SQL queries are efficient
-
Efficient table mappings
-
Defined response format
-
The codebase is clean and 100% DRY.