Skip to content

Repository files navigation

Questify

CI License: AGPL v3 Java Spring Boot TypeScript React Docker Kubernetes

Description

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.

Core Principles

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

Architecture

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

Getting Started

Prerequisites

  • Docker & Docker Compose
  • Node.js 20 + pnpm (frontend development only)
  • Java 21 (service development only)

Running

Fully dockerized (recommended)

Copy the environment file and start all services:

cp .env.example .env
docker compose up -d --build

Then go to:

To stop:

docker compose down

Use -v to also remove volumes.

Frontend only (development mode)

cd frontend
pnpm install
pnpm run dev

http://localhost:5173

Individual service (development mode)

cd services/questify-<service-name>
./mvnw spring-boot:run

Code Quality

  • Services: Spotless with Google Java Format
  • Frontend: ESLint and Prettier

Commands

Service (run from services/questify-<service-name>):

./mvnw spotless:check  # Check formatting
./mvnw spotless:apply  # Fix formatting

All services (run from repository root):

make spotless        # Fix service formatting
make spotless-check  # Check service formatting

Frontend:

cd frontend
pnpm run lint          # Check linting
pnpm run format:check  # Check formatting
pnpm run format        # Fix formatting

Warning: Formatting and linting are checked by CI on every push. Fix them before pushing.

License

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

About

Questify is an open-source, gamified task manager focused on progression and achievements.

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages