ItemMaster is a modern, minimalist household inventory management application designed to help you track everything you own. Built entirely with SwiftUI and powered by SwiftData, it offers a seamless experience for monitoring expiry dates, categorizing supplies, and visualizing your consumption.
- Smart Categorization: Organise items with a flexible two-level category system.
- Location Tracking: Know exactly where your items are (e.g., Kitchen > Top Drawer).
- Expiry Alerts: Dynamic sorting highlights items nearing their expiry date.
- Photo Attachments: Capture item photos with automatic compression and orientation correction.
- Visual Analytics: Beautiful pie charts using Swift Charts to visualize quantity and total value.
- Powerful Search: Instant search by item name or custom tags.
- Offline First: All data is stored locally using SwiftData for maximum privacy and speed.
- Framework: SwiftUI (100%)
- Data Persistence: SwiftData
- Data Visualization: Swift Charts
- Media Handling: PhotosUI & AVFoundation
- Architecture: MVVM + Observation framework
- Xcode 15.0 or later
- iOS 17.0+ device or simulator (Note: Camera features require a physical device)
- Clone the repository:
git clone https://github.com/yourusername/ItemMaster.git
- Open
ItemMaster.xcodeprojin Xcode. - Ensure your signing team is configured in the project settings.
- Build and Run it with your iphone connected!
ItemMaster/
├── App/ # App entry point & Configuration
├── Models/ # SwiftData Schemas (Item, Category, Tag, etc.)
├── Views/
│ ├── Home/ # Category lists & Search
│ ├── Item/ # Add, Edit, and Detail screens
│ ├── Dashboard/ # Swift Charts implementation
│ └── Components/ # Reusable UI elements (FlowLayout, CameraPicker)
├── ViewModels/ # Observable logic handlers
├── Services/ # Image storage & Local I/O
└── Utils/ # Constants & Image Processing Helpers
| Category List | Item Details | Statistics |
|---|---|---|
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git pull origin feature/AmazingFeature) - Open a Pull Request
Distributed under the GNU GPLv3 License. See LICENSE for more information.
Created with ❤️ using SwiftUI