Thanks for your interest in contributing to Questify! This guide explains how to contribute efficiently and consistently.
Be respectful, constructive, and kind. Questify aims to be a welcoming and collaborative space for everyone.
We welcome contributions such as:
- Bug fixes
- UI / UX improvements
- Performance optimizations
- Documentation improvements
For new features or architectural changes, please open an issue first to discuss the approach.
- Fork the repository
- Clone your fork
git clone https://github.com/YOUR_USERNAME/questify.git cd questify - Add upstream
git remote add upstream https://github.com/axelfrache/questify.git
- Create a feature branch
git checkout -b feature/your-feature-name
- Java 21
- Node.js 20+
- pnpm
- Docker & Docker Compose
All services (dockerized)
cp .env.example .env
docker compose up -d --build→ Gateway: http://localhost:8080 → Frontend: http://localhost:80
Individual service
cd services/questify-<service-name>
./mvnw spring-boot:runFrontend
cd frontend && pnpm install && pnpm run devCI will fail if formatting or linting is incorrect.
| Component | Check | Fix |
|---|---|---|
| Service | ./mvnw spotless:check |
./mvnw spotless:apply |
| Frontend | pnpm run format:check && pnpm run lint |
pnpm run format |
Before pushing:
# In each modified service
cd services/questify-<service-name> && ./mvnw spotless:apply && ./mvnw verify
# Frontend
cd frontend && pnpm run format && pnpm run lint && pnpm run buildWe use Conventional Commits.
<type>(<scope>): <description>
Common scopes: auth, quest, project, progression, stats, admin, frontend, infra, docs
Examples:
feat(quest): add recurrence support for templates
fix(auth): prevent duplicate user registration
docs: improve contributing guide
chore(deps): update Spring Boot
- Rebase on latest
maingit fetch upstream && git rebase upstream/main - Ensure all checks pass
- Open a PR against
main
PR description should include:
- What changed
- Why it was needed
- How to test
- Screenshots for UI changes
- Check existing issues: https://github.com/axelfrache/questify/issues
- Open an issue for bugs or feature proposals
Thanks for contributing to Questify 🐢✨