Skip to content

mp-c0de/NetworkingTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NetworkingTracker

A modern contact management application for tracking professional connections and networking events using SwiftData with relationship modeling.

Overview

NetworkingTracker helps professionals manage their network by tracking people they meet at various events. The app demonstrates SwiftData's relationship capabilities, allowing users to link contacts to specific events and maintain a comprehensive networking database.

Features

  • Contact Management: Add and edit people with names, email addresses, and notes
  • Event Tracking: Create and manage networking events by location
  • Relationship Mapping: Link contacts to the events where you met them
  • Search Functionality: Quickly find contacts across all fields
  • Sort Options: Organize contacts efficiently
  • SwiftData Relationships: Demonstrates one-to-many relationships between events and people

Technical Stack

  • Framework: SwiftUI
  • Data Persistence: SwiftData
  • iOS Version: iOS 17+
  • Architecture: Model-driven with SwiftData relationships

Key Learning Concepts

This project demonstrates:

  • SwiftData relationship modeling (one-to-many)
  • Advanced @Query usage
  • Search implementation
  • Form-based CRUD operations
  • Navigation with complex data models

Project Structure

NetworkingTracker/
├── Models/
│   ├── Person.swift        # Contact model
│   └── Event.swift         # Event model with relationships
├── Views/
│   ├── ContentView.swift   # Main contacts list
│   ├── EditPersonView.swift
│   └── EventListView.swift
└── NetworkingTrackerApp.swift

Data Model

Person Model

@Model
class Person {
    var name: String
    var emailAddress: String
    var details: String
    var event: Event?  // Relationship
    var metAt: Date
}

Event Model

@Model
class Event {
    var name: String
    var location: String
    @Relationship(deleteRule: .cascade) var people: [Person]
}

Code Highlights

Relationship Mapping

The app demonstrates SwiftData's relationship capabilities:

  • Each Person can be linked to an Event
  • Events maintain a collection of associated People
  • Cascade delete ensures data integrity

Search Implementation

Full-text search across multiple contact fields for quick retrieval.

Skills Demonstrated

  • SwiftData one-to-many relationships
  • Cascade delete rules
  • Search functionality implementation
  • Complex form handling with relationships
  • Date tracking and formatting
  • Navigation between related entities

Use Cases

  • Professional networking management
  • Conference contact tracking
  • Event-based relationship organization
  • CRM (Customer Relationship Management) basics

Future Enhancements

  • Photo attachments for contacts
  • Calendar integration for events
  • Export contacts to vCard format
  • Reminder notifications for follow-ups
  • Analytics dashboard for networking activity

Author: Martynas Prascevicius Contact: mpcode@icloud.com Purpose: Learning project demonstrating SwiftData relationships

About

Professional networking contact tracker - SwiftUI, SwiftData

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages