A full-stack project management application built with Spring Boot + React that allows users to manage boards, lists, tasks and comments through a drag-and-drop interface.
The project is built with a layered architecture and follows a feature-based design approach.
https://project-manager-system-tawny.vercel.app
- React application
- Handles UI, authentication flow, dashboard, boards UI
https://project-manager-api-2z4a.onrender.com
- Spring Boot REST API
- JWT authentication
- Boards, Lists, Tasks, Comments CRUD
- User registration and login
- JWT-based authentication
- Token stored in localStorage (PostgreSQL will be implemented)
- Protected routes (frontend + backend)
- Secure password storage (BCrypt)
- Create, read, update, delete boards
- Each user has their own boards
- Displays user-specific boards
- Protected dashboard access (requires login)
- Create, update and delete tasks
- Drag & drop between lists
- Create and delete comments on tasks
- Light/Dark mode
- Responsive UI
- Custom design system
- React + Vite
- Axios API layer
- Context-based authentication handling
- React Router protected routes
- LocalStorage JWT persistence
The backend follows a layered architecture:
- Controller → REST API endpoints
- Service → Business logic
- Repository → Database access (JPA)
- Entity → Domain models
- DTO → API contracts
Frontend architecture:
- Pages (Login, Register, Dashboard)
- API layer (axiosClient, authApi)
- AuthContext for session handling
- ProtectedRoute for route security
- Java 25
- Spring Boot
- Spring Security + JWT
- Spring Data JPA (Hibernate)
- H2 Database (development)
- Maven
- React (Vite)
- TypeScript
- React Router
- Axios
- dnd-kit (Drag & Drop)
- Context API
- Custom Design System
- Theme Provider
- Light/Dark Mode
- Reusable UI Components
- Design Tokens
- Feature-Based Folder Structure
- Custom React Hooks
- User registers an account
- User logs in with email + password
- Backend returns JWT token
- Token is stored in localStorage
- Token is sent with every API request
- Protected routes validate token presence
POST /auth/register POST /auth/login
GET /boards POST /boards PUT /boards/{id} DELETE /boards/{id}
GET /boards/{boardId}/lists POST /boards/{boardId}/lists
GET /lists/{listId}/tasks POST /lists/{listId}/tasks PUT /tasks/{taskId} DELETE /tasks/{taskId} PATCH /tasks/{taskId}/move
GET /tasks/{taskId}/comments POST /tasks/{taskId}/comments DELETE /comments/{commentId}
The project is designed with TDD principles in mind, including:
- Unit tests for service layer
- Integration tests for controllers
- Repository testing with H2 database
Each feature is developed using a Red → Green → Refactor cycle.
- H2 in-memory database (development mode)
- Auto-generated schema via Hibernate
- Task management (lists + tasks fully connected in UI)
- Task assignment to users
- Due dates for tasks
- Search & filtering
- Pagination
- PostgreSQL production database
- Docker deployment setup
mvn spring-boot:runnpm install
npm run dev- JWT authentication with Spring Security
- Full-stack architecture with React and Spring Boot
- Designing REST APIs with layered architecture
- Building reusable UI components and a custom design system
- Managing application state with Context API and custom hooks
- Implementing drag & drop interactions with dnd-kit
- Structuring applications using feature-based architecture
- Debugging authentication, CORS and client-server communication