Skip to content

Latest commit

 

History

History
53 lines (45 loc) · 1.69 KB

README.md

File metadata and controls

53 lines (45 loc) · 1.69 KB

Task Management Application

This application is built using Spring Boot following Spring MVC. The application helps a user to manage their time by allowing the user to log their activities on a daily basis.

Features

A typical user of the application would be able to do the following:

  • Sign up or Create an account, if a new user
  • Login, if a returning user
  • Create a task
  • View all tasks
  • Update a task
  • Delete a task
  • Assign a status to each task, i.e pending, in-progress or done

Tools Used

  1. Spring Boot
  2. PostgreSQL
  3. Spring Data JPA
  4. Hibernate
  5. JUnit
  6. Postman
  7. Git

Lessons Learned

Some of the lessons learned while working on this task include:

  • Creating proper folder structure as is applicable in Spring MVC
  • Programming according to Object Oriented Programming (OOP) principles
  • Exception handling in Spring
  • Creating endpoints that follow correct REST API patterns
  • Implementing Unit tests for all methods
  • Design proper databases with normalization and entities relationship mapping where necessary
  • Adding timestamps in databases where necessary
  • Creating custom response structures both on success and failure of implementations
  • Executing efficient SQL queries

Challenges Encountered


Some of the challenges encountered on this project include:

  • Persisting enums (task status) to the database
  • Estimating the project duration in hours
  • Assigning unique user ID (uuid) to each user and task