Skip to content

Task Tracker is a Spring Boot application for managing tasks with a modern, responsive frontend. The application supports CRUD operations (Create, Read, Update, Delete) for tasks, with server-side and client-side validation, a beautiful UI using Tailwind CSS (via CDN), and accessibility features

License

Notifications You must be signed in to change notification settings

imrajeevnayan/Task-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Task-Tracker

Task Tracker is a modern, user-friendly task management application built with Spring Boot and a responsive frontend. It allows users to create, read, update, and delete tasks with a clean UI powered by Tailwind CSS (via CDN) and Inter font. The app features server-side and client-side validation, accessibility, and smooth animations. ๐Ÿš€

โœจ Features

  • ๐Ÿ“‹ CRUD Operations โ€“ Create, read, update, and delete tasks easily.
  • โœ… Validation โ€“ Ensures title (required, max 100 chars) and description (max 500 chars) meet standards.
  • ๐Ÿ“ฑ Responsive Design โ€“ Works great on both mobile and desktop devices.
  • ๐ŸŽจ Animations โ€“ Smooth transitions, fade-in cards, and interactive modals.
  • โ™ฟ Accessibility โ€“ ARIA attributes ensure screen reader compatibility.
  • ๐Ÿ’พ In-Memory Database โ€“ Uses H2 for quick development/testing.
  • ๐Ÿ”ข Task Counter โ€“ Displays total number of tasks.
  • ๐ŸŒ REST API โ€“ Fully API-driven backend, ideal for integration.

๐Ÿ–ผ๏ธ Project Screenshot

Here's what Task Tracker looks like in action:

Task Tracker Screenshot

๐ŸŽฅ Demo

Live demo on Render. Click here Live Link. ๐Ÿ“ฝ๏ธ

๐Ÿ› ๏ธ Tech Stack

Backend

  • Spring Boot 3.5.4
  • Java 21
  • Spring Data JPA
  • H2 Database (in-memory)
  • Spring Validation

Frontend

  • HTML5 (index.html)
  • Tailwind CSS (via CDN)
  • Inter font (via Google Fonts)
  • JavaScript

Tools

  • Maven
  • Spring Tool Suite 4 (STS 4)
  • Git

๐Ÿ“‹ Prerequisites


โš™๏ธ Setup Instructions

  1. Clone the Repository
git clone https://github.com/imrajeevnayan/Task-Tracker.git
cd Task-Tracker

** Create a Dockerfile in the project root:**

# Build stage
FROM maven:3.9.9-eclipse-temurin-21 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -DskipTests

# Package stage
FROM eclipse-temurin:21-jre-alpine
WORKDIR /app
COPY --from=build /app/target/task-tracker-0.0.1-SNAPSHOT.jar app.jar
ENV PORT=8080
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

๐Ÿ“ Project Structure

Task-Tracker/
โ”œโ”€โ”€ .gitattributes
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .mvn
    โ””โ”€โ”€ wrapper
    โ”‚   โ””โ”€โ”€ maven-wrapper.properties
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ Screenshot.png
โ”œโ”€โ”€ mvnw
โ”œโ”€โ”€ mvnw.cmd
โ”œโ”€โ”€ pom.xml
โ””โ”€โ”€ src
    โ”œโ”€โ”€ main
        โ”œโ”€โ”€ java
        โ”‚   โ””โ”€โ”€ com
        โ”‚   โ”‚   โ””โ”€โ”€ example
        โ”‚   โ”‚       โ””โ”€โ”€ tasktracker
        โ”‚   โ”‚           โ”œโ”€โ”€ TaskTrackerApplication.java
        โ”‚   โ”‚           โ”œโ”€โ”€ controller
        โ”‚   โ”‚               โ””โ”€โ”€ TaskController.java
        โ”‚   โ”‚           โ”œโ”€โ”€ model
        โ”‚   โ”‚               โ””โ”€โ”€ Task.java
        โ”‚   โ”‚           โ”œโ”€โ”€ repository
        โ”‚   โ”‚               โ””โ”€โ”€ TaskRepository.java
        โ”‚   โ”‚           โ””โ”€โ”€ service
        โ”‚   โ”‚               โ””โ”€โ”€ TaskService.java
        โ””โ”€โ”€ resources
        โ”‚   โ”œโ”€โ”€ application.properties
        โ”‚   โ””โ”€โ”€ static
        โ”‚       โ””โ”€โ”€ index.html
    โ””โ”€โ”€ test
        โ””โ”€โ”€ java
            โ””โ”€โ”€ com
                โ””โ”€โ”€ example
                    โ””โ”€โ”€ tasktracker
                        โ””โ”€โ”€ TaskTrackerApplicationTests.java


Open in STS 4

  • Go to: File > Import > Maven > Existing Maven Projects
  • Select the Task-Tracker folder > Click Finish
  • Right-click project > Maven > Update Project > Click OK
  • Run the Application
  • Right-click TaskTrackerApplication.java > Run As > Spring Boot App
  • Open your browser at: http://localhost:8080 ๐ŸŒ

๐Ÿš€ Usage

๐Ÿงช Testing the API

Use Postman or cURL:

Get all tasks

curl http://localhost:8080/api/tasks
  • Create a task
curl -X POST http://localhost:8080/api/tasks \
-H "Content-Type: application/json" \
-d '{"title":"Test Task","description":"Test description","completed":false}'
  • Update a task (replace 1 with task ID)
curl -X PUT http://localhost:8080/api/tasks/1 \
-H "Content-Type: application/json" \
-d '{"title":"Updated Task","description":"Updated","completed":true}'
  • Delete a task
curl -X DELETE http://localhost:8080/api/tasks/1
  • Validation error example
curl -X POST http://localhost:8080/api/tasks \
-H "Content-Type: application/json" \
-d '{"title":"","description":"Test"}'
  • Expected Response:

{"title":"Title is required"

๐ŸŒ Deployment

  • Deployment to Heroku/Render is planned.

  • Upcoming Steps:

  • Switch to persistent DB (e.g., PostgreSQL)

  • Compile Tailwind for production (using Tailwind CLI)

Package app:

mvn package

#๐Ÿ”ฎ Future Enhancements

  • ๐Ÿ” Add authentication with Spring Security (JWT)

  • ๐Ÿ’พ Use persistent DB (MySQL/PostgreSQL)

  • ๐Ÿ” Search & filter tasks

  • ๐ŸŽจ Replace Tailwind CDN with compiled CSS

  • ๐Ÿ“„ Add pagination or infinite scroll

๐Ÿ› ๏ธ Built With

  • JAVA - Primary programming language

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

Development Process

  • Fork the repository
  • Create your feature branch (git checkout -b feature/amazing-feature)
  • Make your changes
  • Add tests for your changes
  • Ensure all tests pass
  • Commit your changes (git commit -m 'Add some amazing feature')
  • Push to the branch (git push origin feature/amazing-feature)
  • Open a Pull Request

Code Style

  • Follow the existing code style
  • Run the linter before submitting: npm run lint
  • Write meaningful commit messages
  • Add tests for new features

Reporting Issues

  • Use the GitHub issue tracker
  • Provide detailed information about the bug
  • Include steps to reproduce the issue
  • Add relevant labels

๐Ÿ“„ License

This project is licensed under the MIT License License - see the LICENSE file for details.

License Summary

The MIT License license is a permissive license that allows for commercial use, modification, distribution, and private use.

๐Ÿ‘ฅ Authors

๐Ÿ™ Acknowledgments

  • Thanks to all contributors who have helped shape this project
  • Inspired by the open-source community
  • Built with โค๏ธ and modern development practices

๐Ÿ“Š Project Stats

  • โญ Stars: 0
  • ๐Ÿด Forks: 0
  • ๐Ÿ› Issues: 0
  • ๐Ÿ“ Language: JAVA

โญ๏ธ If you found this project helpful, please give it a star!

About

Task Tracker is a Spring Boot application for managing tasks with a modern, responsive frontend. The application supports CRUD operations (Create, Read, Update, Delete) for tasks, with server-side and client-side validation, a beautiful UI using Tailwind CSS (via CDN), and accessibility features

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published