Questify is a gamified task management application designed to help users progress consistently over time.
Instead of treating tasks as simple checklists, Questify reframes them as quests that contribute to a personal progression system inspired by RPG mechanics with XP, levels, narrative grades and achievements.
- Execution over planning: XP is earned by completing quests.
- Narrative progression: grades represent a journey (Initiate → Traveler → Explorer…), not a ranking.
- Transparency: simple XP rules, predictable progression.
- Extensible architecture: designed for long-term evolution.
Questify is built as a microservices application:
| Service | Role | Port |
|---|---|---|
questify-auth-service |
Authentication, JWT, user management | 8081 |
questify-quest-service |
Quests, templates, recurrence | 8082 |
questify-project-service |
Projects | 8083 |
questify-progression-service |
XP, levels, achievements | 8084 |
questify-stats-service |
Statistics | 8085 |
questify-admin-service |
Admin panel | 8086 |
gateway |
Nginx reverse proxy | 8080 |
frontend |
React/Vite UI | 80 |
- Docker & Docker Compose
- Node.js 20 + pnpm (frontend development only)
- Java 21 (service development only)
Copy the environment file and start all services:
cp .env.example .env
docker compose up -d --buildThen go to:
- Frontend: http://localhost:80
- Gateway API: http://localhost:8080
- Swagger UI: http://localhost:8080/swagger-ui.html (per service)
To stop:
docker compose downUse -v to also remove volumes.
cd frontend
pnpm install
pnpm run devcd services/questify-<service-name>
./mvnw spring-boot:run- Services: Spotless with Google Java Format
- Frontend: ESLint and Prettier
Service (run from services/questify-<service-name>):
./mvnw spotless:check # Check formatting
./mvnw spotless:apply # Fix formattingFrontend:
cd frontend
pnpm run lint # Check linting
pnpm run format:check # Check formatting
pnpm run format # Fix formattingWarning: Formatting and linting are checked by CI on every push. Fix them before pushing.
This project is distributed under MIT License.