A beautiful, secure, and fully functional Task Management Web App built with Spring Boot 3, Spring Security, Thymeleaf, PostgreSQL, and Tailwind CSS.
No JavaScript. Fully server-side rendered. Production-ready.
- Secure Register & Login (Spring Security + BCrypt password hashing)
- Create, Edit, Delete Tasks
- Task Status:
To Do→In Progress→Done(with color coding) - Beautiful, responsive UI using Tailwind CSS
- Task creation timestamp
- Persistent data with PostgreSQL
- Clean, modern, and professional design
| Login Page | Register Page | Dashboard (Home) |
|---|---|---|
![]() |
![]() |
![]() |
Simple & clean login • Easy registration • Modern dashboard with color-coded tasks
- Backend: Spring Boot 3 + Spring MVC + Spring Data JPA
- Security: Spring Security + BCrypt
- Database: PostgreSQL (persistent)
- Templating: Thymeleaf
- Styling: Tailwind CSS (via CDN)
- Build Tool: Maven
- Java: 17+ (Java 25 recommended)
| Method | Endpoint | Description | Access |
|---|---|---|---|
GET |
/ |
Login Page / Index | Public |
GET |
/register |
User Registration Page | Public |
POST |
/register |
Create a new account | Public |
GET |
/home |
User Dashboard (Task List) | Logged In |
POST |
/add-task |
Create a new task | Logged In |
GET |
/edit-task/{id} |
Edit task form | Logged In |
POST |
/edit-task/{id} |
Update task details | Logged In |
POST |
/delete-task |
Remove a task | Logged In |
- Java 17+
- PostgreSQL (running)
- Maven
git clone https://github.com/subhashree0454/Task-Manager.git
cd Task-ManagementCREATE DATABASE taskflow_db;
CREATE USER taskflow_user WITH PASSWORD 'yourpassword123';
GRANT ALL PRIVILEGES ON DATABASE taskflow_db TO taskflow_user;spring.datasource.url=jdbc:postgresql://localhost:5432/task
spring.datasource.username=postgres
spring.datasource.password=123
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialectFor security, avoid hardcoding credentials. You can override properties using Environment Variables:
| Variable | Description |
|---|---|
SPRING_DATASOURCE_URL |
DB Connection String |
SPRING_DATASOURCE_USERNAME |
DB Username |
SPRING_DATASOURCE_PASSWORD |
DB Password |
Example:
export SPRING_DATASOURCE_URL=jdbc:postgresql://your-host:5432/task_db
export SPRING_DATASOURCE_USERNAME=prod_user
export SPRING_DATASOURCE_PASSWORD=secure_password123./mvnw spring-boot:runOpen → http://localhost:8080
- DevTools: The project includes
spring-boot-devtools, so changes will trigger an automatic restart. - Port: To change the default port, add
-Dspring-boot.run.arguments=--server.port=9090to the run command. - Database Reset: Change
spring.jpa.hibernate.ddl-autotocreate-dropinapplication.propertiesto clear the DB on every restart (careful!).
Task-Management/
├── img/ ← Screenshots
├── src/main/java/com/taskmanagement/
│ ├── config/ ← SpringSecurity + PasswordEncoder
│ ├── controller/ ← TaskController
│ ├── model/ ← User.java, Task.java
│ ├── repository/ ← JPA Repositories
│ └── service/ ← UserService (with UserDetailsService)
├── src/main/resources/
│ └── templates/ ← login.html, register.html, home.html, edit-task.html
├── pom.xml
└── README.md
- Passwords hashed with BCrypt
- Full Spring Security integration
- Session management & logout
- Protected routes (
/home,/add-task, etc.) - Clean separation of concerns
- Register →
/register - Login →
/ - Add Task → Fill form → "Add Task"
- Edit/Delete → Buttons on each task
- Logout → Top-right button
Use Render.com or Railway.app:
- Push to GitHub
- Connect repo
- Set build & start commands:
- Build:
./mvnw clean package -DskipTests - Start:
java -jar target/*.jar
- Build:
- Add PostgreSQL addon + env variables
Live in minutes!
- Task due dates & reminders
- Dark mode
- Task categories/tags
- Export to PDF/CSV
- Email notifications
- | Issue | Solution |
- |-----------------------------|---------|
- | Login fails | Check username/password case, restart app |
- | Images not showing | Make sure folder is
img/(lowercase) | - | Database error | Verify PostgreSQL is running & credentials correct |
Made with passion by Subhashree • 2026
Star this repo if you love it!


