Welcome to CollabCards! This application is a task management tool where users can create cards, organize, and manage their tasks. The app enhances your task management experience with real-time data synchronization, QR code functionality, and customizable settings.
Board Management:
- Create and manage boards to organize your tasks.
Card Management:
- Add, edit, and delete cards within boards. Cards come with titles, descriptions, and statuses.
- Drag and drop cards between columns.
Real-Time Synchronization:
- All your boards and cards are synchronized across all your devices in real-time using Firebase Firestore.
QR Code Integration:
- Quickly join boards or access specific tasks by scanning QR codes or manually entering IDs. This feature is powered by the QRCode Swift Package.
Customizable Settings:
- Personalize your experience by customizing your username, visibility, and task durations.
Data Persistence:
- The app uses UserDefaults to store small and simple data like user preferences and settings. UserDefaults ensures that these settings are retained between app sessions, providing a fast and efficient way to manage user preferences.
iPad Support:
- CollabCards is designed to be responsive on iPads as well, optimized for different screen sizes and orientations.
Image 1 | Image 2 | Image 3 |
---|---|---|
Empty View | Create Board View | Home View |
Image 4 | Image 5 | Image 6 |
---|---|---|
Board Info View | Board View | Settings View |
- Xcode: Version 15.4
- Language: Swift 5.10
- Minimum iOS Version: 16.0
- Dependency Management: Swift Package Manager (SPM)
- Backend: Firebase Firestore & Firebase Crashlytics
- QR Code Functionality: Library integrated with Swift Package Manager QRCode
CollabCards is developed using the MVVM (Model-View-ViewModel) architecture for the following reasons:
- Separation of Concerns: MVVM provides a clear separation between UI and business logic, making the codebase more maintainable and scalable.
- Reusability: ViewModels can be reused across different views, reducing duplicated code.
- Testability: Isolating business logic in ViewModels makes it easier to write unit tests for the application.
- BoardViewModel: The logic for creating, updating, and deleting boards has been tested.
- CardViewModel: The card management functions, including adding, editing, and deleting cards, have been tested.
Before you begin, ensure you have the following:
- Xcode installed
- An active Firebase project for real-time synchronization and crash logging.
Also, make sure the following dependencies are added to your project target:
- FirebaseFirestore: For real-time data synchronization.
- FirebaseCrashlytics: For crash monitoring and logging.
- QRCode: For QR code functionality.
-
Clone the repository:
git clone https://github.com/furkanfatihkok/CollabCards.git
-
Open the project in Xcode:
cd CollabCards open CollabCards.xcodeproj
-
Add the required dependencies using Swift Package Manager:
- FirebaseFirestore - FirebaseCrashlytics - QRCode
-
Complete the Firebase configuration by adding your
GoogleService-Info.plist
file to the project. -
Build and run the project.
- Open the app on your simulator or device.
- Create a new board or select an existing one to start organizing your tasks.
- Add cards to your board.
- Tap the "+" button to add a new card to a column.
- Edit card details, such as the title and status, and move cards between columns.
- Delete cards that are no longer needed.
- To create a new board, click on the "Create Board" option.
- In the board creation screen, fields such as
username
,password
, andnew board
must be filled out. - These fields cannot be left blank; if they are, the board creation process cannot be completed.
- Go to the settings view to customize your experience.
- Toggle the visibility of your username and the date on the cards.
- Adjust task duration settings to your preference.
- QR Code Scanner: The QR code scanner may sometimes respond slowly during scanning.