Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Changelog

All notable Doc2FAQ changes are recorded here. Version numbers follow semantic versioning; entries describe shipped source functionality and do not imply an external AI service.

## 0.3.0

### Added

- **Extract Mode** for existing Markdown question headings and explicit Q:/A: pairs.
- **Generate Mode** for source-grounded FAQ suggestions from document sections. Generation is local and deterministic, not powered by a paid AI provider.
- In-browser FAQ editor for changing questions and answers, reordering items, removing duplicates, and adding new entries.
- Markdown, JSON, and standalone HTML exports, with HTML content escaped for safety.
- Windows Command Prompt instructions for installing Java 21 and Maven, configuring PATH, and troubleshooting local startup.
- Java service and API integration tests for generation, limits, and validation, plus Node tests for export safety.

### Improved

- Expanded FAQ text validation to **50,000 characters**, consistent with extraction and the browser.
- Generate Mode filters common-topic duplicates, document-title headings, and existing FAQ appendices.
- More natural question phrasing for client responsibilities, confidentiality, and intellectual-property ownership.
- Existing Extract Mode behavior remains unchanged when a document contains explicit FAQ pairs.

### Supported inputs and limits

- TXT and Markdown uploads in the browser (256 KB file size).
- PDF and DOCX uploads via the Java server (5 MB each).
- Maximum 50 PDF pages, 50,000 extracted characters, and 30 FAQ items.

### Known limitations

- Scanned or image-only PDFs require OCR before import; OCR is not included.
- Generate Mode is heuristic and may skip useful details or produce generic questions. Review every answer.
- No accounts, paid plans, public-server hardening, or document persistence are included.
- PDF and DOCX **export** are planned for a future release. The current outputs are Markdown, JSON, and HTML.

## 0.2.0

- Added PDF and DOCX text import using Apache PDFBox and Apache POI.
- Introduced format-signature validation and explicit errors for unsupported, empty, encrypted, or scanned documents.
- Added document upload size and page/text extraction limits.
- Preserved local, deterministic explicit-Q&A extraction.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Doc2FAQ is a Java 21 / Spring Boot document-to-FAQ workbench. Paste text or uplo

Created by **Okan Tiktas** · [OKAN-SOFTWARE](https://github.com/OKAN-SOFTWARE).

> **Development version: v0.3.0 (unreleased).** Latest published release: [v0.2.0 — PDF & DOCX Support](https://github.com/OKAN-SOFTWARE/Doc2FAQ/releases/tag/v0.2.0). This README describes the current development branch, not a published v0.3.0 release.
> **Source version: v0.3.0.** The version in `pom.xml` identifies this build. For published tags, release downloads, and announcements, see [GitHub Releases](https://github.com/OKAN-SOFTWARE/Doc2FAQ/releases). This source version does not by itself publish a GitHub Release.

## What's new in v0.3.0

Expand All @@ -20,6 +20,8 @@ Created by **Okan Tiktas** · [OKAN-SOFTWARE](https://github.com/OKAN-SOFTWARE).

**Privacy and accuracy:** The current Generate Mode is **deterministic and rule-based, not a generative AI model**. No API key, paid AI service, or external model is required. Its questions are suggestions; answers come from excerpts in your source document. Topic-based duplicate filtering can sometimes suppress distinct details within a topic. It cannot reliably interpret every layout or guarantee an accurate summary. Always review before publishing.

For detailed changes, see [CHANGELOG.md](CHANGELOG.md). For the release checklist, see [docs/RELEASING.md](docs/RELEASING.md).

## Requirements

- Java Development Kit (**JDK 21**), not just a Java Runtime Environment.
Expand Down
38 changes: 38 additions & 0 deletions docs/RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Doc2FAQ release checklist

This is the procedure for publishing **v0.3.0** from the protected `main` branch. Preparing a PR and changing the Maven version do **not** publish the release.

## Before publishing

1. Merge the version-finalization PR into `main` after the required `build-and-test` check passes.
2. Verify the `main` branch has the release commit and the `pom.xml` version is exactly `0.3.0` (not `0.3.0-SNAPSHOT`).
3. Run the GitHub Actions build or verify locally with Java 21 and Maven 3.6.3+:

```cmd
mvn -B -ntp clean verify
```

4. Open `http://localhost:8080` with `mvn spring-boot:run` and smoke-test:
- Extract Mode: the fictional maintenance agreement produces six explicit FAQ entries.
- Generate Mode: the same example produces nine source-grounded entries after duplicate and appendix filtering.
- Review: edit, reorder, remove, and add FAQ entries.
- Export: Markdown, JSON, and HTML downloads contain the expected questions and answers.
5. Confirm the repository has no existing `v0.3.0` tag or Release. Do not replace an existing tag.

## Publish using GitHub

1. Open [Draft a new release](https://github.com/OKAN-SOFTWARE/Doc2FAQ/releases/new).
2. Choose **Create new tag**, enter **`v0.3.0`**, and target the current **`main`** branch.
3. Use release title: **Doc2FAQ v0.3.0 — Generate Mode, Review & Multi-Format Export**.
4. Copy the **0.3.0** section of [CHANGELOG.md](../CHANGELOG.md) into the Release notes. Describe the deterministic nature of generation and limits honestly.
5. Optionally attach the runnable `target/doc2faq-0.3.0.jar` built by Maven, after validating it starts with Java 21. GitHub automatically supplies source-code archives.
6. Review all fields and select **Publish release**. This is the public publication step; do it only when ready.

## Verify after publishing

- Confirm [Releases](https://github.com/OKAN-SOFTWARE/Doc2FAQ/releases) includes **v0.3.0** and targets the exact release commit on `main`.
- Verify the GitHub Actions check for the tag, if triggered, completes successfully.
- Download the source archive or JAR from the release page and confirm the version and local startup.
- Leave any future PDF/DOCX output feature work for a separate branch and release.

**License:** MIT · Copyright © 2026 Okan Tiktas.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</parent>
<groupId>com.okansoftware</groupId>
<artifactId>doc2faq</artifactId>
<version>0.3.0-SNAPSHOT</version>
<version>0.3.0</version>
<name>Doc2FAQ</name>
<description>Privacy-conscious document-to-FAQ preview workbench</description>
<properties>
Expand Down
Loading