Skip to content

rguixaro/roots-app

Repository files navigation

Roots Roots

A web application to build, visualize, and share family trees in a collaborative and intuitive way.

roots.rguixaro.dev

Tech Stack

Next.js 16 | Auth.js v5 | Prisma | MongoDB | TypeScript | Tailwind CSS | Radix UI | AWS S3, CloudFront & SES | Sentry | Lucide Icons

Features

  • Family tree management — create, edit, and visualize family trees with an interactive graph powered by React Flow and Dagre layout
  • Collaborative access — invite members with role-based permissions (admin, editor, viewer)
  • Photo gallery — upload photos, tag family members, and set profile pictures with automatic EXIF metadata extraction (dates, GPS, camera info)
  • Insights — upcoming birthdays, death anniversaries, and weekly memory highlights
  • Activity timeline — chronological feed of all tree changes (members added, relationships created, photos uploaded)
  • Weekly newsletter — automated emails with upcoming milestones and recent tree activity via AWS SES
  • i18n — English, Spanish, and Catalan
  • Auth — Google OAuth via Auth.js

Getting Started

Prerequisites and setup

Prerequisites

  • Node.js 20+
  • MongoDB instance
  • AWS account (S3, CloudFront, SES, Secrets Manager)
  • Google OAuth 2.0 credentials

Setup

  1. Clone the repository and install dependencies:

    git clone https://github.com/rguixaro/roots-app.git
    cd roots-app
    pnpm install
  2. Copy the environment template and fill in your values:

    cp .env.template .env

    See .env.template for all required variables.

  3. Generate the Prisma client and sync the database schema:

    pnpm db:generate
    pnpm db:push
  4. Start the development server:

    pnpm dev

Testing

Unit and server tests run automatically on every push and PR to main/dev via GitHub Actions.

pnpm test              # unit & server tests (Vitest)
pnpm test:coverage     # tests + coverage report (HTML in coverage/)
pnpm test:watch        # watch mode

License

GPL-3.0

About

An open-source family tree tracker

Resources

License

Stars

Watchers

Forks

Languages