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
7 changes: 4 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ body:
attributes:
label: Affected role
options:
- Solo personal study
- Student
- Parent
- Self-hoster or administrator
Expand All @@ -48,8 +49,8 @@ body:
id: environment
attributes:
label: Environment
description: Include browser, operating system, Node version, and hosting details that matter.
placeholder: Chromium 126, Ubuntu 24.04, Node 22...
description: Include browser and OS versions, and whether you use the solo package or a household/source install. Node version is only needed for source installs.
placeholder: Browser version, OS edition/version, solo preview or source install...
validations:
required: true

Expand Down Expand Up @@ -83,4 +84,4 @@ body:
id: logs
attributes:
label: Sanitized logs or screenshots
description: Remove secrets, email addresses, tokens, and family data before attaching anything.
description: Remove keys, cookies, launch URLs, personal paths, answers and study material. Do not attach databases, config folders or backups.
29 changes: 15 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ as a separate, more involved setup.

## Start with personal study

The new **solo launcher** runs Examify on this computer only. It opens your browser
and creates your private study profile without email, invitations or routine login.
The sample has five fixed questions and deterministic scoring, with no AI.
Choose **Try a sample exam**, then **Create your question bank** for the guided
subject → material → AI → generate/review/Apply workflow. Return anytime to add more.

This is a **preview implementation**, not a published desktop release. Platform
packages must pass the clean-install checks before release. See the
[personal-study installation guide](docs/solo-installation.md) for the package
layout, verification and current acceptance requirements. Windows x64 and Linux
x64 packages bundle the tested Node runtime and application dependencies; they
are designed to require no manual Git, Node, pnpm, Docker or administrator setup.
macOS is outside this preview's scope.
The solo launcher opens Examify in your browser without email or routine login.
Choose **Try a sample exam** for five fixed questions and scoring that needs no AI.
Reopen Examify to resume unfinished practice or see saved results. When you are
ready, **Create your question bank** guides you through adding material, choosing
AI, generating questions and reviewing them before Apply.

**There is no published desktop release yet.** Windows x64 and Linux x64 preview
packages bundle Node and dependencies; no Git, pnpm, Docker or administrator setup
is needed. Actual consumer OS/browser support still needs verification. macOS and
ARM are outside this preview.

[Get the preview and try your first exam](docs/solo-installation.md) ·
[Back up, upgrade or remove it](docs/solo-maintenance.md)

## Optional household setup

Expand Down Expand Up @@ -53,7 +53,8 @@ provider. Local hosting alone does not keep AI requests local.
- [Household install and first login](docs/installation.md)
- [Install with your preferred AI agent](docs/agent-installation.md)
- [Configure sign-in, mail and AI](docs/configuration.md)
- [Deploy, update, back up and restore](docs/operations.md)
- [Solo backup, recovery and uninstall](docs/solo-maintenance.md)
- [Household deployment, updates and backups](docs/operations.md)
- [Troubleshooting](docs/troubleshooting.md)
- [Add or generate questions](docs/content-authoring.md)
- [Ingest CLI reference](tools/examify-ingest/README.md)
Expand Down
16 changes: 14 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,29 @@ practice data, so security reports are taken seriously.

## Supported versions

Only the latest `main` is supported. There are no maintained release branches.
There is no published desktop release yet. Security fixes target the latest
`main` and its Windows/Linux x64 previews. There are no maintained release branches.
Report the affected package version and source commit or preview run when known.

## Reporting a vulnerability

Please report vulnerabilities **privately** via GitHub Security Advisories: open the
repository's **Security** tab and choose **"Report a vulnerability"**. Please do not
repository's **Security** tab and choose **"Report a vulnerability"**
([private report form](https://github.com/atk0309/project_Examify/security/advisories/new)). Please do not
open a public issue or PR for a security problem.

Include what you can: affected route/action, reproduction steps, and impact. You should
get an initial response within a week.

## Solo packages

Keep the installation, backups, saved provider keys, browser cookies and one-use
launch URLs private. Solo is loopback-only and assumes a trusted computer; it is
not a shared-server sign-in replacement. Use the [solo guide](docs/solo-installation.md#keep-your-work-private-and-safe)
for its local-service limits and [full-folder backup instructions](docs/solo-maintenance.md).
The source-checkout commands and family-data layout below are for household
installations, not a recipe for copying solo state generations.

## Scope notes for self-hosters

- Household membership in SQLite is the credential store and privacy boundary — treat
Expand Down
31 changes: 15 additions & 16 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
# Support

Thanks for using Examify. Before opening an issue, search the existing issues and check
the [installation guide](docs/installation.md) and
[troubleshooting](docs/troubleshooting.md).
For personal study, start with [Windows/Linux installation](docs/solo-installation.md)
and [troubleshooting](docs/troubleshooting.md). Shared servers have a separate
[household guide](docs/installation.md).

Use the issue form that matches your request:
There is no published desktop release yet. Current help covers the latest `main`
and its Windows/Linux x64 preview packages; there are no maintained release
branches or verified minimum consumer OS/browser versions. Support is
community-provided, with no guaranteed response time.

- **Bug report:** reproducible behavior that appears incorrect.
- **Feature request:** a concrete improvement and the problem it would solve.
- **Question:** setup, self-hosting, content-authoring, or usage help.
Search [existing issues](https://github.com/atk0309/project_Examify/issues) first,
then choose a bug report, question or feature request. Include the package version
or source commit, OS/browser version, steps to reproduce, and a short safe error
message. Packaged users do not need to install Node or pnpm to report a problem.
See [safe diagnostics](docs/troubleshooting.md#what-to-include-in-a-support-request).

Examify supports the latest `main` branch only. Community support is best-effort and
has no guaranteed response time.

Please use the correct private or moderated channel for sensitive reports:

- **Security vulnerabilities:** follow [`SECURITY.md`](SECURITY.md) and use GitHub's
private vulnerability-reporting flow.
- **Conduct concerns:** follow [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md). Never post
sensitive personal information in a public issue.
Never post keys, launch URLs, cookies, backups, databases, answers or study files.
Report vulnerabilities privately through [SECURITY.md](SECURITY.md), not a public
issue. For conduct concerns, follow [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
48 changes: 30 additions & 18 deletions docs/content-authoring.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,40 @@
# Add or generate questions

For initial family setup, use `/onboarding`. Skipped setup can be resumed through
**Finish content setup** on the parent dashboard. Once you choose Finish, the
wizard cannot be reopened; use the CLI below for later content changes. You do
not need to edit TypeScript or install the ingest CLI separately.

## Use the setup wizard

1. Add a subject with a unique ID and a name your family recognises
2. Upload the subject's PDFs. Notes/text and images can also be placed in its
family-data subject folder using the CLI workflow below
3. Choose an AI provider and Generate. Check [provider prerequisites](configuration.md#ai-for-question-banks-and-marking)
4. Review the generated questions, answers and source references. Correct
mistakes before using them with students
5. Open Review to inspect the changes, then Apply. Generate alone does not
publish questions. Apply makes family questions available without a rebuild
**Solo:** choose **Create your question bank** on the practice page. You can return
after Finish to add more subjects or material. **Household:** use `/onboarding`
for initial setup, or **Finish content setup** on the parent dashboard if you
skipped it. After household setup is finished, use the CLI below for later changes.

1. Add a subject with a unique ID and a name you recognise
2. Upload PDFs (up to 8 MiB each). Solo also accepts UTF-8 `.txt`/`.md` notes
(up to 1 MiB each); household text sources use the CLI workflow below.
Uploading stores them locally; it does not start generation
3. Choose an AI provider and Generate. Check [provider prerequisites](configuration.md#ai-for-question-banks-and-marking).
For a local endpoint, save its URL and model in AI settings before returning
4. Validate the draft format. This checks whether Examify can use the draft,
not whether its answers are correct
5. Open Review to inspect the planned file changes, then Apply. Generate alone does not make
questions available for practice. Apply does not need an app rebuild

Cancel leaves the current subject's previous question-bank file unchanged.
If generating several subjects, those already completed remain saved. Replacing
existing questions requires confirmation. Reusing a built-in subject ID replaces
that entire subject; choose a new ID if you want to keep both.
that entire subject; choose a new ID to keep both. The sample remains unless you
explicitly choose to replace it.

The wizard's Review screen shows counts and file changes, not an editor for every
question and answer. For an accuracy check before Apply, inspect the private
`content/subjects/SUBJECT_ID/bank.ir.json` in the active data folder with a local
text editor. It contains questions, answers, rubrics and source references; never
share it in a public issue. Check those against your material, especially scanned
pages and diagrams. If you change a draft, Validate and Review again before Apply.
[Solo data locations](solo-maintenance.md#find-your-files) ·
[Household data locations](operations.md).

AI output is a draft. Check accuracy, difficulty and marking rubrics against the
source material, especially diagrams, tables and scanned pages. Keep source PDFs
private unless you have permission to redistribute them.
Keep uploaded material private unless you have permission to share it. Generating
questions can send it to your chosen AI provider; see [privacy](privacy.md).

## Where questions live

Expand All @@ -41,7 +52,8 @@ and logs a reason. Run `pnpm examify:data verify` to check family data.

## CLI workflow

Run commands from the checkout. These examples use the default `./data` folder;
These commands are for household/source installations, not the portable solo package.
Run them from the checkout. These examples use the default `./data` folder;
substitute your configured `EXAMIFY_DATA_DIR` when it is elsewhere. Use an existing
family subject, or create `data/content/subjects/history/` and put your notes or
images there. For PDFs, create `data/content/source-pdfs/history/` and place them
Expand Down
23 changes: 23 additions & 0 deletions docs/release-candidate.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,29 @@ ordinary-user consumer tests without development tools installed:
tool/source identity and findings; a failed Dependabot update alone is not a
vulnerability, and package-manager audit is not complete binary analysis

## First-run help and accessibility check

Use the [personal-study guide](solo-installation.md) as written, with the exact
candidate artifact. Record pass/fail and safe error codes for each OS/browser:

- Complete the sample, stop the launcher, reopen and find the saved result.
Repeat with an unfinished sample and confirm the answer and question position
- Create a bank, Apply, stop/reopen and check the new bank, earlier results and
provider configuration. Add a second subject without replacing the first
- Use only the keyboard through sample, results and authoring. Check visible
focus, file selection, AI choices, Back/Skip and confirmation dialogs
- At 200% browser zoom, check readable text and reachable controls on practice,
results and every authoring step, including long filenames and validation errors
- Check that a screen reader announces step changes, errors and completion
- Follow backup/restore and removal instructions using disposable data. Verify
that removing a shortcut does not remove data, and recovery uses a full copy
- Verify the private vulnerability-report form is available to a signed-in
reporter before public release; a link in SECURITY.md is not that verification

Do not infer these results from unit tests, substituted browser callbacks or CI
runner names. Fix launch-blocking accessibility failures and record the remaining
limits; this is a bounded first-run check, not an accessibility certification.

Artifacts remain unsigned. Checksums establish consistency with the chosen
installer; an attacker replacing both installer and archive can replace hashes.
Before publication, the maintainer must approve unsigned distribution or a
Expand Down
Loading
Loading