Skip to content

furkanfatihkok/CollabCards

Repository files navigation

logo2

CollabCards - Task Management Application

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.

Table of Contents

Features

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.

Screenshots

Image 1 Image 2 Image 3
EmptyView CreateView HomeView
Empty View Create Board View Home View
Image 4 Image 5 Image 6
BoardInfoView BoardView SettingsView
Board Info View Board View Settings View

Tech Stack

  • 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

Architecture

Architecture

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.

Unit Tests

  • 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.

Getting Started

Prerequisites

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:

Installation

  1. Clone the repository:

    git clone https://github.com/furkanfatihkok/CollabCards.git
  2. Open the project in Xcode:

    cd CollabCards
    open CollabCards.xcodeproj
  3. Add the required dependencies using Swift Package Manager:

    - FirebaseFirestore
    - FirebaseCrashlytics
    - QRCode
  4. Complete the Firebase configuration by adding your GoogleService-Info.plist file to the project.

  5. Build and run the project.

Usage

Board Management

  1. Open the app on your simulator or device.
  2. Create a new board or select an existing one to start organizing your tasks.
  3. Add cards to your board.

Card Management

  1. Tap the "+" button to add a new card to a column.
  2. Edit card details, such as the title and status, and move cards between columns.
  3. Delete cards that are no longer needed.

Create Board

  1. To create a new board, click on the "Create Board" option.
  2. In the board creation screen, fields such as username, password, and new board must be filled out.
  3. These fields cannot be left blank; if they are, the board creation process cannot be completed.

Settings

  1. Go to the settings view to customize your experience.
  2. Toggle the visibility of your username and the date on the cards.
  3. Adjust task duration settings to your preference.

Known Issues

  • QR Code Scanner: The QR code scanner may sometimes respond slowly during scanning.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages