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. ๐
- ๐ 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.
Here's what Task Tracker looks like in action:
Live demo on Render. Click here Live Link. ๐ฝ๏ธ
- Spring Boot 3.5.4
- Java 21
- Spring Data JPA
- H2 Database (in-memory)
- Spring Validation
- HTML5 (
index.html
) - Tailwind CSS (via CDN)
- Inter font (via Google Fonts)
- JavaScript
- Maven
- Spring Tool Suite 4 (STS 4)
- Git
- Java 21
- Maven
- Spring Tool Suite 4
- Git
- Internet access (for Tailwind CSS and Google Fonts)
- 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"]
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
- 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 ๐
- Access: Visit https://task-tracker-2ez1.onrender.com/
- Create Task: Fill title (required), description, and status โ Click Add Task
- Edit Task: Click Edit or Toggle to modify
- Delete Task: Click Delete ๐๏ธ
- H2 Console: http://localhost:8080/h2-console
- JDBC URL: jdbc:h2:mem:tasktracker
- Username: sa
- Password: (blank)
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 to Heroku/Render is planned.
-
Upcoming Steps:
-
Switch to persistent DB (e.g., PostgreSQL)
-
Compile Tailwind for production (using Tailwind CLI)
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
- JAVA - Primary programming language
We welcome contributions! Here's how you can help:
- 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
- Follow the existing code style
- Run the linter before submitting:
npm run lint
- Write meaningful commit messages
- Add tests for new features
- Use the GitHub issue tracker
- Provide detailed information about the bug
- Include steps to reproduce the issue
- Add relevant labels
This project is licensed under the MIT License License - see the LICENSE file for details.
The MIT License license is a permissive license that allows for commercial use, modification, distribution, and private use.
- imrajeevnayan - Project Creator - @imrajeevnayan
- Thanks to all contributors who have helped shape this project
- Inspired by the open-source community
- Built with โค๏ธ and modern development practices
- โญ Stars: 0
- ๐ด Forks: 0
- ๐ Issues: 0
- ๐ Language: JAVA
โญ๏ธ If you found this project helpful, please give it a star!