A full-stack Task Management System built with React and Spring Boot, featuring JWT-based authentication, secure APIs, and a clean, scalable architecture.
This project demonstrates real-world backend security, REST API design, and frontend integration β suitable for portfolios and technical interviews.
The Task Manager allows users to:
- Register and authenticate securely
- Create, update, and delete tasks
- Track task progress using statuses
- Organize tasks with priorities and due dates
- Access protected resources using JWT authentication
- Build a secure, production-style backend
- Implement JWT authentication & authorization
- Create a clean RESTful API
- Develop a modern React frontend
- Demonstrate best practices in Spring Boot + React
- Java 21
- Spring Boot 3.5
- Spring Security (JWT)
- Spring Data JPA (Hibernate)
- MySQL
- Lombok
- React
- Axios
- React Router
- Modern component-based architecture
- User Registration
- User Login (JWT Authentication)
- Create Task
- Update Task
- Delete Task
- View All Tasks
- Task Priority
- Due Date
- Filter Tasks by Status
- Protected Frontend Routes
- Cleaner UI & UX
task-manager-backend
βββ src/main/java/com/example/taskmanager
βββ config
βββ controller
βββ dto
βββ entity
βββ repository
βββ security
βββ service
βββ TaskManagerApplication.java
task-manager-frontend
βββ src
βββ api
βββ components
βββ pages
βββ routes
βββ App.jsx
- JWT-based authentication
- Password encryption using BCrypt
- Stateless session management
- Protected API endpoints
- Frontend route protection
- Create Spring Boot project
- Configure MySQL
- Create
Userentity - Run and verify application
- User registration
- User login
- JWT generation & validation
- Task entity
- CRUD operations
- User-task relationship
- React project structure
- Pages & components
- Routing
- Connect frontend to backend
- Secure API calls with JWT
- End-to-end testing
CREATE DATABASE task_manager;spring:
datasource:
url: jdbc:mysql://localhost:3306/task_manager
username: root
password: your_password
jpa:
hibernate:
ddl-auto: update
show-sql: true./mvnw spring-boot:runBackend will start at:
http://localhost:8080
@Entity
@Table(name = "users")
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true)
private String username;
private String password;
private String role;
}| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register new user |
| POST | /api/auth/login |
Authenticate user |
| GET | /api/tasks |
Get user tasks |
| POST | /api/tasks |
Create task |
| PUT | /api/tasks/{id} |
Update task |
| DELETE | /api/tasks/{id} |
Delete task |
- Postman
- Browser DevTools
- MySQL Workbench
- Pagination & sorting
- Task reminders
- Role-based access control
- Dockerization
- Deployment (Render / Railway / AWS)
Ipaye Tunde Backend / Full-Stack Developer Java β’ Spring Boot β’ React β’ REST APIs
This project demonstrates:
- Real-world backend security
- Clean architecture & separation of concerns
- Practical React + Spring Boot integration
- Interview-ready design decisions