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 |
postgres |
Persistent data store | 5432 |
rabbitmq |
Domain event broker | 5672 / 15672 |
redis |
Cache-aside store for read models | 6379 |
- 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 formattingAll services (run from repository root):
make spotless # Fix service formatting
make spotless-check # Check service 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.
Copyright (C) 2026 Axel Frache.
This project is distributed under the GNU Affero General Public License v3.0. Because Questify is served over a network, any modified version you run as a network service must make its source available to its users (AGPL §13).