Taskr is a task management application designed to help you organize, prioritize, and collaborate on your projects seamlessly. Whether you're working solo or as part of a team, Taskr provides the tools you need to stay productive and efficient. This project was developed with a focus on Java Spring Boot studies. Therefore, the Front End may not be fully implemented.
- Task creation, editing, and deletion
- Project management
- Some collaboration
- Real-time notifications
- Comments and activity (project feed) tracking
- Authentication and authorization (Credentials)
- Statistics and reporting
- Next.js
- React
- Tailwind CSS
- TypeScript
- NextAuth.js
- Java 24
- Spring Boot
- Spring Security
- Spring Data JPA
- WebSocket
- Redis
- PostgreSQL
- H2 (for development/testing)
- Lombok
Before you start, verify the tools required to run the frontend and backend. The commands below are written for Windows cmd.exe. If you use PowerShell or a Unix shell, replace \ with / and execute the appropriate wrapper (for example ./mvnw on macOS/Linux).
Minimum recommended versions (project was developed with these):
- Java 24 (required to build/run the backend)
- Node.js 18+ (Next.js requires a modern Node)
- pnpm (used to install frontend deps)
- Docker & Docker Compose (or Docker Desktop)
- Git
Verification commands (run in cmd.exe) and expected results:
-
Java (runtime and compiler):
java -version javac -version
Expected: shows Java 24 (or compatible JDK). If
javaorjavacis not found, install a JDK (Adoptium/Temurin, Oracle, or OpenJDK) and ensure JAVA_HOME is set. -
Maven wrapper (optional if you prefer system Maven):
.\mvnw.cmd -v
The project ships a Maven wrapper (
mvnw.cmd) so you do not need Maven installed globally. Running the wrapper prints the Maven version used. -
Docker and Docker Compose (verify containers):
docker --version docker compose version docker ps
Expected: Docker running and
docker pslists active containers. On Windows, Docker Desktop with WSL2 is recommended. -
Node / npm / pnpm:
node -v npm -v pnpm -v
If
pnpmis missing, install it with:npm install -g pnpm
-
Git:
git --version
Quick diagnostic (copy and paste into cmd.exe to run basic checks):
java -version
javac -version
.\mvnw.cmd -v
node -v
npm -v
pnpm -v || echo pnpm not found
docker --version
docker compose version
docker ps
git --versionCommon troubleshooting tips
- Java errors: make sure JAVA_HOME points to a JDK installation and that
java/javacare on PATH. On Windows you can set JAVA_HOME in System Properties → Environment Variables. - mvnw permission or execution problems: use
mvnw.cmdon Windows (.\mvnw.cmd spring-boot:run). On Unix/macOS use./mvnw spring-boot:run. - Docker on Windows: install Docker Desktop and enable WSL2 backend. Ensure the Docker service is running and you have sufficient permissions.
- Port conflicts: default ports are 3000 (frontend), 8080 (backend), 5432 (Postgres), 6379 (Redis). If any port is busy, stop the occupying service or change the port in the corresponding config.
- pnpm / Node problems: ensure Node and pnpm are compatible with the Next.js version used. If builds fail, try clearing pnpm cache (
pnpm store prune) and reinstalling (pnpm install).
- Copy
.env.exampleto.env.localand adjust values as needed. - Install dependencies and start the development server (Windows
cmd.exe):cd client pnpm install pnpm dev
-
Start database and Redis using Docker Compose:
cd server docker compose up -d -
Start the backend server (Windows):
cd server .\mvnw.cmd spring-boot:runOn macOS/Linux use:
./mvnw spring-boot:run
.
├── client
│ ├── node_modules
│ ├── public
│ ├── src
│ │ ├── @types
│ │ ├── actions
│ │ ├── app
│ │ ├── components
│ │ ├── helpers
│ │ ├── providers
│ │ ├── utils
│ │ ├── auth.ts
│ │ └── middleware.ts
│ ├── .env.local
│ ├── .gitignore
│ ├── .prettierignore
│ ├── .prettierrc
│ ├── eslint.config.mjs
│ ├── next.config.ts
│ ├── next-env.d.ts
│ ├── package.json
│ ├── pnpm-lock.yaml
│ ├── pnpm-workspace.yaml
│ ├── postcss.config.mjs
│ ├── README.md
│ └── tsconfig.json
├── server
│ ├── .idea
│ ├── .mvn
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── barataribeiro
│ │ │ │ └── taskr
│ │ │ │ ├── activity
│ │ │ │ ├── admin
│ │ │ │ ├── authentication
│ │ │ │ ├── comment
│ │ │ │ ├── config
│ │ │ │ ├── exceptions
│ │ │ │ ├── helpers
│ │ │ │ ├── membership
│ │ │ │ ├── notification
│ │ │ │ ├── project
│ │ │ │ ├── stats
│ │ │ │ ├── task
│ │ │ │ ├── user
│ │ │ │ ├── utils
│ │ │ │ └── ServerApplication.java
│ │ │ └── main.iml
│ │ ├── test
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── barataribeiro
│ │ │ │ └── taskr
│ │ │ │ ├── authentication
│ │ │ │ ├── comment
│ │ │ │ ├── config
│ │ │ │ │ └── security
│ │ │ │ ├── exceptions
│ │ │ │ ├── membership
│ │ │ │ ├── notification
│ │ │ │ ├── project
│ │ │ │ ├── stats
│ │ │ │ ├── task
│ │ │ │ ├── user
│ │ │ │ ├── utils
│ │ │ │ └── ServerApplicationTests.java
│ │ │ └── test.iml
│ ├── target
│ ├── .gitattributes
│ ├── .gitignore
│ ├── compose.yml
│ ├── HELP.md
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── taskr.iml
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is free software available under the GPLv3 license.
