Skip to content

Coflnet/ConUi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Connections - Genealogy & Historical Records Management

A modern Angular web application for managing people, places, events, things, and their relationships. Perfect for family history research, community documentation, and collaborative genealogy projects.

Angular TypeScript Material Design Playwright


🌟 Features

βœ… Implemented (Phase 1)

  • Modern Dashboard - Overview with stats and quick actions
  • People Management - List, search, and manage people
  • Professional UI - Material Design with responsive layout
  • Navigation - Sidebar navigation with 8 main sections
  • Testing - Comprehensive Playwright E2E test suite
  • Documentation - Complete developer and user guides

🚧 In Development

  • Enhanced person detail view with tabs
  • Relationship visualization
  • Places management with map integration
  • Events timeline
  • Things catalog

πŸ“‹ Planned

  • Visual family tree (D3.js)
  • Interactive timeline
  • Share & collaboration
  • GEDCOM import/export
  • Conflict resolution
  • Document management

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

# Clone repository
git clone [your-repo-url]
cd ConUi

# Install dependencies
npm install

# Start development server
npm start

Navigate to http://localhost:4200

Run Tests

# E2E tests (interactive UI)
npm run test:e2e:ui

# E2E tests (headless)
npm run test:e2e

# Unit tests
npm test

πŸ“š Documentation

For Developers

For Users


πŸ—οΈ Architecture

Tech Stack

  • Framework: Angular 19 (standalone components)
  • UI Library: Angular Material 19
  • State Management: Signals (Angular built-in)
  • Testing: Playwright (E2E) + Karma/Jasmine (Unit)
  • API Client: Auto-generated from OpenAPI

Project Structure

src/app/
β”œβ”€β”€ client/              # Auto-generated API client
β”œβ”€β”€ features/            # Feature modules
β”‚   β”œβ”€β”€ dashboard/       βœ… Implemented
β”‚   β”œβ”€β”€ people/          βœ… Implemented
β”‚   β”œβ”€β”€ places/          🚧 Placeholder
β”‚   β”œβ”€β”€ events/          🚧 Placeholder
β”‚   β”œβ”€β”€ things/          🚧 Placeholder
β”‚   β”œβ”€β”€ timeline/        🚧 Placeholder
β”‚   β”œβ”€β”€ relationships/   🚧 Placeholder
β”‚   └── share/           🚧 Placeholder
β”œβ”€β”€ layout/
β”‚   └── shell/           βœ… Main layout
└── ...legacy components

🎯 Use Cases

Family History

  • Document multiple family lines
  • Create visual family trees
  • Track births, marriages, deaths
  • Share with family members

Historical Research

  • Record village/community members
  • Track historical events
  • Document places and buildings
  • Collaborative research

Personal CRM

  • Store contact information
  • Track relationships
  • Document interactions
  • Export for backup

πŸ§ͺ Testing

E2E Test Coverage

  • βœ… Navigation between all sections
  • βœ… Dashboard stats and actions
  • βœ… People list and search
  • 🚧 Person CRUD operations
  • 🚧 Relationship management
  • 🚧 Share workflow

Running Tests

# Interactive mode (recommended)
npm run test:e2e:ui

# Headless mode
npm run test:e2e

# Specific test file
npx playwright test e2e/dashboard.spec.ts

# With browser visible
npm run test:e2e:headed

πŸ”Œ Backend Integration

API Services

All auto-generated from OpenAPI specification:

  • PersonService - Person CRUD operations
  • PlaceService - Place management
  • EventService - Event tracking
  • ThingService - Thing catalog
  • RelationshipService - Relationship management
  • SearchService - Global search
  • ShareService - Sharing & collaboration
  • DocumentService - Document management

Example Usage

import { PersonService } from './client';

constructor(private personService: PersonService) {}

ngOnInit() {
  this.personService.getPersonData('person-id')
    .subscribe(data => console.log(data));
}

Recommended Backend Enhancements

See IMPLEMENTATION_PLAN.md for detailed list:

  • Dashboard stats endpoint
  • Paginated search
  • Aggregated person data
  • Relationship suggestions
  • Real-time updates (WebSocket)

🎨 Design System

Colors

  • Primary: Indigo (#3F51B5)
  • People: Green (#4CAF50)
  • Places: Blue (#2196F3)
  • Events: Orange (#FF9800)
  • Things: Purple (#9C27B0)

Typography

  • Font: Roboto
  • Scale: 8px grid system

Components

  • Material Design 3
  • Responsive breakpoints
  • WCAG AA accessible

See UI_DESIGN.md for complete design system.


πŸ“Š Roadmap

Phase 2: Core Entities (2-3 weeks)

  • Enhanced person detail view
  • Places list with map integration
  • Events timeline
  • Things management

Phase 3: Visualizations (2-3 weeks)

  • Family tree visualization
  • Interactive timeline
  • Relationship graph

Phase 4: Collaboration (2 weeks)

  • Share workflow UI
  • Conflict resolution
  • Data provenance display

Phase 5: Import/Export (1 week)

  • GEDCOM support
  • CSV batch import/export
  • PDF reports

Phase 6: Polish (1-2 weeks)

  • Onboarding tour
  • Dark mode
  • Keyboard shortcuts
  • Performance optimization

🀝 Contributing

Getting Started

  1. Read DEVELOPMENT.md
  2. Check existing components for patterns
  3. Write tests for new features
  4. Follow conventional commits

Commit Format

type(scope): subject

body

footer

Types: feat, fix, docs, style, refactor, test, chore

Code Style

  • TypeScript strict mode
  • Angular style guide
  • Prettier formatting
  • ESLint rules

πŸ“ˆ Performance

Targets

  • First Contentful Paint: < 1.5s
  • Time to Interactive: < 3s
  • Lighthouse Score: > 90
  • Bundle Size: < 500KB (initial)

Optimizations

  • Lazy loading routes
  • Debounced search
  • Virtual scrolling (planned)
  • Image optimization (planned)
  • Service worker (planned)

🌐 Browser Support

  • Chrome/Edge (latest) βœ…
  • Firefox (latest) βœ…
  • Safari (latest) βœ…
  • Mobile browsers (testing needed) 🚧

πŸ“„ License

[Your License Here]


πŸ“ž Contact & Support


πŸ™ Acknowledgments

  • Angular Team
  • Material Design Team
  • Playwright Team
  • All contributors

πŸ“ Development Status

Current Phase: 1 Complete βœ…
Next Phase: 2 - Core Entities
Last Updated: 2024-10-25

Recent Changes

  • βœ… Implemented modern shell layout
  • βœ… Created dashboard with stats
  • βœ… Built people management
  • βœ… Added Playwright testing
  • βœ… Comprehensive documentation

Next Steps

  1. Enhanced person detail view
  2. Relationship management
  3. Places with map integration
  4. Events timeline

See IMPLEMENTATION_PLAN.md for complete roadmap.


Built with ❀️ using Angular & Material Design

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •