Project Title Task Management Application
Project Title Task Management Application
Project Summary
The Task Management Application is a web-based project designed to help users
organize, track, and manage their tasks effectively. The application allows users
to create, edit, delete, and prioritize tasks. Each task includes details such as
the task name, description, due date, priority, and status (e.g., pending or
completed). The project is built using Java technologies on the backend (Spring
Boot) and HTML/CSS with Thymeleaf on the frontend, ensuring a user-friendly
interface.
The goal of this project was to gain hands-on experience in full stack development,
combining frontend and backend knowledge, working with databases, implementing
RESTful APIs, and deploying an application on a cloud platform.
Key Objectives
Learning Objectives:
Provide a user interface to manage tasks, including options to add, edit, delete,
and mark tasks as complete.
Allow users to categorize and filter tasks based on attributes like priority, due
date, and completion status.
Ensure secure access to the application through user authentication.
Project Structure
Backend:
Spring Boot: Set up a RESTful API to handle business logic for task management.
Spring Data JPA: Used for database interactions and CRUD operations on task data.
MySQL Database: Configured to store information about tasks and users.
Spring Security: Managed user authentication and authorization, ensuring only
authenticated users can access task management features.
Frontend:
HTML & CSS: Designed the layout and styling of the application.
Thymeleaf: Integrated with Spring Boot to render dynamic web pages on the server
side.
JavaScript: Added interactivity for user actions like adding and deleting tasks.
Deployment:
Cloud Deployment: Used Heroku for easy deployment and access to the application.
Version Control: Managed code using GitHub for version control and collaboration.
Key Components
User Authentication:
Implemented using Spring Security, allowing users to securely log in and manage
their own tasks.
Passwords are hashed using BCrypt for enhanced security.
Login, registration, and logout functionalities were added to improve the user
experience.
Task Management:
CRUD Operations: Created APIs to add, update, delete, and retrieve tasks.
Task Attributes: Each task has fields such as title, description, due date,
priority, and status.
Filter and Sort: Added options for users to filter tasks by category, priority, or
due date.
Database:
Designed a responsive user interface with form validation for task input.
Used Thymeleaf to dynamically render tasks from the backend on the user’s screen.
Added styling to improve user experience, making tasks visually distinct based on
their priority.
Challenges and Solutions
Database Connectivity Issues:
Gained practical experience in Java Spring Boot, which is now essential in backend
development for Java.
Acquired proficiency in creating RESTful APIs and handling HTTP requests.
Learned to build and design a frontend with Thymeleaf, HTML, CSS, and JavaScript.
Problem Solving and Debugging: