Skip to content

Repository files navigation

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

Features

Auto Layout

The family tree builder includes an intelligent auto-layout feature that automatically arranges nodes in a hierarchical family tree structure:

  • Hierarchical positioning: Parents are positioned above their children
  • Partner alignment: Partners are positioned next to each other at the same level
  • Sibling organization: Siblings are arranged horizontally at the same generation level
  • Multi-generational support: Handles complex family trees spanning multiple generations

To use the auto-layout feature:

  1. Click the Auto Layout button (tree icon) in the toolbar
  2. The tree will automatically reorganize with proper hierarchical positioning
  3. The view will automatically fit to show the entire tree

The layout algorithm uses ELK.js for sophisticated graph layout with relationship-aware positioning.

Running tests (new)

This project now includes unit tests for the auto-layout logic using Jest + ts-jest.

Install new dev dependencies (you can add these to your devDependencies):

npm install --save-dev jest ts-jest @types/jest jsdom @types/jsdom

Run tests:

npm run test

If you prefer watch mode:

npm run test:watch

Release Process (Conventional Commits)

This repository uses semantic-release to automate releases based on Conventional Commits. The workflow is defined in .github/workflows/release.yml and automatically creates releases when commits are merged to main.

How It Works

  • Commits following the conventional format (feat:, fix:, etc.) are analyzed
  • Version numbers are automatically bumped based on commit types
  • A changelog is automatically generated and committed
  • A GitHub release is created with release notes
  • No manual version management needed!

Contributing

Please follow the Conventional Commits format for all commit messages. See CONTRIBUTING.md for detailed guidelines and examples.

Manual Trigger

To trigger the release workflow manually, go to the Actions tab and run the "Conventional Release" workflow.

Version Display

The UI displays the current package version in the navigation bar (derived from package.json or the NEXT_PUBLIC_APP_VERSION env var set at build time). If you need to override the visible version (for example in CI), set the NEXT_PUBLIC_APP_VERSION environment variable at build time before running next build.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages