TaskRaum is task and project management web app and built as a Capstone Project during the Java Development Bootcamp by neue fische GmbH
Designed primarily for single-user usage , with roadmap toward multi-user support
Developed in 4 weeks using Spring Boot (Java) (backend) and React + TypeScript (frontend)
Projects: create, edit, pause, archive, or restore projects.
Tasks: kanban board with drag-and-drop; statuses auto-update on move.
Calendar: monthly view with overdue, upcoming, and done tasks; drag-and-drop rescheduling.
Dashboard: statistics (open tasks, deadlines, completion %).
Settings: update profile or change password (new β old).
Authentication: JWT-based login/registration with refresh support.
π Dark / Light Mode: automatic theme switching with manual toggle
Java 21, Spring Boot, Spring Security, JJWT
MongoDB Atlas (prod) / Docker Mongo (tests)
Lombok, Jacoco, GitHub Actions (CI/CD)
Deployed via Docker on Render
React + TypeScript (Vite)
Material UI, Zustand
React Hook Form + Zod
Axios, React Router
DnD & FullCalendar
Java 21, Node.js 22, npm 10
JWT_SECRET β secret key for JWT signing
MONGODB_URI β MongoDB connection string (Atlas used for live demo)
# Clone the repository
git clone https://github.com/emrullaharac/TaskRaum.git
cd TaskRaum
# Backend setup
cd backend
./mvnw clean install
# Frontend setup
cd frontend
npm install
# backend
cd backend
./mvnw spring-boot:run
# frontend
cd frontend
npm run dev
Production (current pipeline)
GitHub Actions builds the frontend into backend/src/main/resources/static.
Backend is packaged as a JAR.
Docker image is built and deployed to Render.
Frontend Structure (key files)
src
βββ api/ # axios client & API modules
βββ app/ # App root & providers (router, theme)
βββ components/ # layout, app bar, common components
βββ features/ # auth, dashboard, projects, tasks, calendar, settings
βββ pages/ # public pages (Home, Auth, About, NotFound)
βββ store/ # zustand stores
βββ types/ # DTOs, normalizers, axios.d.ts
βββ main.tsx, index.css
Backend Structure (key packages)
src/main/java/dev/taskraum/backend
βββ auth/ # controllers & DTOs for auth
βββ common/ # errors, enums, global exception handler
βββ config/ # security, mongo, web config
βββ projects/ # project domain (controller, service, repo, DTOs)
βββ security/ # JWT util & filter, principal
βββ tasks/ # task domain (controller, service, repo, DTOs)
βββ users/ # profile & user management
src/test/java/dev/taskraum/backend
βββ ... # unit & integration tests mirroring main packages
Method
Endpoint
Description
POST
/auth/register
Register new user
POST
/auth/login
Login and get JWT token
GET
/auth/me
Get current user info
POST
/auth/refresh
Refresh access token
POST
/auth/logout
Logout and clear tokens
Method
Endpoint
Description
GET
/api/projects
List projects (paginated)
POST
/api/projects
Create a new project
GET
/api/projects/{id}
Get project by ID
PUT
/api/projects/{id}
Update project
DELETE
/api/projects/{id}
Delete project
Method
Endpoint
Description
GET
/api/projects/{projectId}/tasks
List tasks by status
POST
/api/projects/{projectId}/tasks
Create a new task
PUT
/api/tasks/{id}
Update task
DELETE
/api/tasks/{id}
Delete task
Method
Endpoint
Description
PUT
/api/me
Update profile info
PUT
/api/me/password
Change password
π Roadmap (Upcoming Updates)
Multi-user support with invitations.
Assignees across users and extended dashboard stats.
Emrullah Arac
Licensed under the MIT License .