Generations is a modern, secure, and collaborative family tree application. It allows users to visualize their ancestry, manage family members, and share their trees with relatives.
- Interactive Tree Visualization: View your family history in a clean, hierarchical layout.
- Multi-Tenancy: Create and manage multiple distinct family trees.
- Collaboration: Invite family members via email to view or administer trees.
- Rich Profiles: Add photos, birth/death dates, and relationship details.
- Secure: Built with Row Level Security (RLS) to ensure data privacy.
- Frontend: React, TypeScript, Vite, TailwindCSS
- Backend: Supabase (PostgreSQL, Auth, Storage, Edge Functions)
- Icons: Lucide React
- Node.js (v18+)
- npm or yarn
- A Supabase project
-
Clone the repository:
git clone https://github.com/kpatell/generations.git cd generations -
Install dependencies:
npm install
-
Environment Configuration: Create a
.envfile in the root directory:cp .env.example .env
Fill in your Supabase credentials:
VITE_SUPABASE_URL=your_supabase_project_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Database Setup: Run the SQL scripts located in the
supabase/directory in your Supabase SQL Editor in the following order:supabase_schema.sql(Base schema)multi_tenancy.sql(Multi-tenancy support)sharing.sql(Sharing and Profiles)
Start the development server:
npm run devOpen http://localhost:5173 in your browser.
We welcome contributions! Please see CONTRIBUTING.md for details on how to submit a Pull Request.
- Run
npm run lintto check for linting errors. - Run
npx tsc --noEmitto check for TypeScript errors. - Run
npm testto run the full test suite (Unit + E2E). - Ensure
npm run buildpasses before submitting.
This project is licensed under the MIT License - see the LICENSE file for details.