Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/svidt/secret-nooks
https://github.com/svidt/secret-nooks
Last synced: 28 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/svidt/secret-nooks
- Owner: svidt
- License: mit
- Created: 2024-12-06T01:09:29.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-12-06T01:41:40.000Z (about 1 month ago)
- Last Synced: 2024-12-06T02:22:40.392Z (about 1 month ago)
- Language: Swift
- Size: 725 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Secret Nooks 🎁
A beautifully crafted iOS app for organizing Secret Santa gift exchanges, featuring a modern interface with smooth animations, festive design elements, and an intuitive user experience.
## Features ✨
### Core Functionality
- **Smart Gift Matching**: Prevents participants from being matched with themselves and ensures fair distribution
- **Real-time Match Status**: Clear indicators showing how many participants still need to draw names
- **Match History**: Complete overview of all Secret Santa assignments with privacy-focused reveal interactions
- **Participant Management**: Easy addition and removal of participants with duplicate name prevention### User Experience
- **Festive Atmosphere**:
- Dynamic snowfall animation
- Floating participant names in the background
- Soothing dark blue color scheme
- Frosted glass effect for UI elements
- **Privacy-Focused**:
- Tap-to-reveal mechanism for viewing matches
- Individual match deletion
- Option to reset all matches
- **Smooth Animations**:
- Fluid transitions between views
- Playful gift icon animations
- Seamless match reveal interactions### Technical Details
- **Swift and SwiftUI**: Built using modern iOS development practices
- **MVVM Architecture**: Clean separation of concerns with a robust view model
- **Local Storage**: Efficient data persistence using UserDefaults
- **Responsive Design**: Adapts beautifully to different iOS devices
- **Human Interface Guidelines**: Follows Apple's design principles while maintaining unique aesthetics## Requirements 📱
- iOS 16.6 or later
- Xcode 13.0 or later
- Swift 5.5 or later## Installation 🚀
1. Clone the repository
```bash
git clone https://github.com/svidt/secret-nooks.git
```2. Open the project in Xcode
```bash
cd secret-nooks
open SecretSanta.xcodeproj
```3. Build and run the project in Xcode
## Usage 🎯
1. **Adding Participants**
- Tap the "Add Participant" button
- Enter participant names
- Duplicate names are automatically prevented2. **Drawing Names**
- Tap the large gift icon to start
- Select your name from the list
- View your assigned person
- Names are saved automatically3. **Managing Matches**
- View all matches in the history view
- Tap to reveal individual matches
- Delete specific matches if needed
- Option to reset all matches## Architecture 🏗
The app follows the MVVM (Model-View-ViewModel) pattern:
- **Models**: `Person`, `SantaMatch`, `Participant`
- **Views**: SwiftUI views for each screen and component
- **ViewModel**: `SecretSantaViewModel` handling business logic and state
- **Utils**: Snowfall and name animation effects## Contributing 🤝
We welcome contributions to Secret Nooks! Here's how you can help:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request### Areas for Contribution
- Additional animation effects
- Theme customization options
- Alternative matching algorithms
- Enhanced privacy features
- Localization support
- Widget support
- Share sheet integration
- iCloud sync support## License 📄
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE) file for details
## Acknowledgments 🙏
- Inspired by the joy of holiday gift exchanges
- Built with SwiftUI's modern declarative syntax
- Designed with accessibility in mind
- Community feedback and contributions## Contact 📱
Twitter: [@hellosvidt](https://twitter.com/hellosvidt)
Project Link: [https://github.com/svidt/secret-nooks](https://github.com/svidt/secret-nooks)
---
Made with ❤️ for the iOS developer community