A modern web application for students to create and visualize ego-networks similar to the KINMATRIX dataset. This application is meant to be used in UBC's SOCI 415 (Theories of Family and Kinship). This application allows users to build comprehensive family networks by inputting information about themselves and their family members, then visualizing the resulting network structure.
- Node.js (version 16 or higher)
- npm or yarn package manager
-
Clone or download the project
git clone <repository-url> cd EgoNetworkApp
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000to start using the application.
npm run buildThis creates a dist folder with the production-ready files.
- Add Your Information: Start by entering your name, age, and gender as the central node (ego)
- Add Family Members: Click "Add Family Member" to add relatives
- Complete Information: For each family member, provide:
- Full name
- Age
- Gender
- Relationship to you (select from categorized options)
- Review & Edit: Use the list view to review, edit, or remove family members
- Switch to Visualization: Click "View Network Visualization" when you have data
- Explore the Network:
- The center node represents you (ego)
- Other nodes represent family members, color-coded by relationship
- Lines show connections from you to each family member
- Export Data: Download your network data for further analysis
The application supports comprehensive relationship types:
- Immediate Family: father, mother, son, daughter, brother, sister, husband, wife, spouse, partner
- Extended Family: grandfather, grandmother, uncle, aunt, cousin
- In-Laws: father-in-law, mother-in-law, brother-in-law, sister-in-law, son-in-law, daughter-in-law
- Step Family: stepfather, stepmother, stepson, stepdaughter, stepbrother, stepsister
- Other: adoptive parent, adopted child, foster parent, foster child, guardian, other relative
- React 18: Modern React with hooks and context
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework
- Lucide React: Beautiful icons
- Local Storage: Data persistence in the browser
src/
├── components/ # React components
│ ├── Header.jsx # Navigation header
│ ├── NetworkBuilder.jsx # Main builder interface
│ ├── EgoForm.jsx # Ego information form
│ ├── FamilyMemberForm.jsx # Family member form
│ ├── FamilyMemberList.jsx # List of family members
│ └── NetworkVisualization.jsx # Network graph component
├── context/
│ └── NetworkContext.jsx # React context for state management
├── App.jsx # Main application component
├── main.jsx # React entry point
└── index.css # Global styles
This application is designed for educational purposes, particularly for:
- Social Network Analysis: Understanding ego-network concepts
- Family Studies: Mapping family structures and relationships
- Data Visualization: Learning about network graphs and force-directed layouts
- Research Methods: Similar to the KINMATRIX dataset methodology
- Local Storage: All data is stored locally in your browser
- No Server: No data is sent to external servers
- Export Control: You control when and how to export your data
- Clear Data: Option to clear all data at any time
This is an educational project. Feel free to:
- Report bugs or issues
- Suggest new features
- Improve the documentation
- Enhance the visualization capabilities
MIT License - feel free to use this project for educational purposes.
- Inspired by the KINMATRIX dataset and research methodology