Skip to content

Latest commit

Β 

History

177 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TaskRaum

  • 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)

✨ Features

  • 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

πŸ›  Tech Stack

Backend

  • Java 21, Spring Boot, Spring Security, JJWT
  • MongoDB Atlas (prod) / Docker Mongo (tests)
  • Lombok, Jacoco, GitHub Actions (CI/CD)
  • Deployed via Docker on Render

Frontend

  • React + TypeScript (Vite)
  • Material UI, Zustand
  • React Hook Form + Zod
  • Axios, React Router
  • DnD & FullCalendar

βš™οΈ Installation

Requirements

  • Java 21, Node.js 22, npm 10

Environment Variables

  • JWT_SECRET – secret key for JWT signing
  • MONGODB_URI – MongoDB connection string (Atlas used for live demo)

Setup

# 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

πŸš€ Usage

Local Development

# 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.

πŸ— Architecture

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

πŸ“‘ API Endpoints

Auth

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

Projects

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

Tasks

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

Profile

Method Endpoint Description
PUT /api/me Update profile info
PUT /api/me/password Change password

πŸ–Ό Screenshots

Homepage - Light

Homepage_Light

Homepage - Dark

Homepage_Dark

Dashboard

Dashboard

Projects

Projects

Tasks

Tasks

Calendar

Calendar

Settings

Settings


πŸ“Œ Roadmap (Upcoming Updates)

  • Multi-user support with invitations.
  • Assignees across users and extended dashboard stats.

πŸ‘€ Author

Emrullah Arac


πŸ“„ License

Licensed under the MIT License.

About

Capstone Project for the Java Development Bootcamp provided by neuefische GmbH

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages