Tickit is a simple and intuitive task management application built with Flutter. It helps you organize your daily tasks, set deadlines, and keep track of your progress. With a clean user interface and essential features, tickit aims to make task management effortless.
- Task Creation: Easily add new tasks with titles and deadlines.
- Task Management: Mark tasks as complete, edit, or delete them.
- Sorting: Sort tasks by title, completion status, or no specific order.
- User Authentication: Securely sign in with your Google account.
- Profile Management: View your user profile information.
- Notifications: Receive reminders for upcoming task deadlines.
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
Before you begin, ensure you have the following installed:
- Flutter SDK: Install Flutter
- Firebase CLI: Install Firebase CLI
- Supabase CLI: Install Supabase CLI
-
Clone the repository:
git clone https://github.com/your-username/tickit.git cd tickit -
Install Flutter dependencies:
flutter pub get
-
Set up Firebase:
- Create a new Firebase project in the Firebase Console.
- Install the Firebase CLI and log in:
firebase login
- Associate your Flutter project with Firebase:
Follow the prompts to select your Firebase project and platforms.
flutterfire configure
-
Set up Supabase:
-
Create a new Supabase project in the Supabase Dashboard.
-
Get your Supabase URL and Anon Key from your project settings (API section).
-
Create a
.envfile in the root of your project and add your Supabase and Firebase keys:SUPABASE_URL=YOUR_SUPABASE_URL SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY FIREBASE_API_KEY=YOUR_FIREBASE_API_KEYReplace
YOUR_SUPABASE_URL,YOUR_SUPABASE_ANON_KEY, andYOUR_FIREBASE_API_KEYwith your actual keys.
-
-
Generate Firebase options (if not already generated by
flutterfire configure):flutterfire configure
To run the application on a connected device or emulator:
flutter runtickit/
├── android/ # Android specific files
├── assets/ # Application assets (images, fonts, etc.)
├── build/ # Build outputs
├── ios/ # iOS specific files
├── lib/ # Dart source code
│ ├── auth/ # Authentication related files
│ ├── exceptions/ # Custom exception classes
│ ├── home/ # Home screen and task display
│ ├── models/ # Data models (e.g., Task model)
│ ├── providers/ # Riverpod providers for state management
│ ├── routes/ # Application routing configuration
│ ├── services/ # Services for API calls (Auth, Todo, Notification)
│ ├── settings/ # Settings screen
│ ├── theme/ # Application theme and styling
│ └── widgets/ # Reusable UI widgets
├── linux/ # Linux specific files
├── macos/ # macOS specific files
├── supabase/ # Supabase related files (e.g., functions)
├── test/ # Unit and widget tests
├── web/ # Web specific files
├── windows/ # Windows specific files
├── .env # Environment variables (ignored by Git)
├── .gitignore # Specifies intentionally untracked files to ignore
├── pubspec.yaml # Project dependencies and metadata
└── README.md # This file
We welcome contributions to the tickit project! To contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
- Make your changes.
- Ensure your code adheres to the project's code style. (Run
flutter format .) - Write and run tests for your changes:
flutter test - Commit your changes with a clear and concise commit message.
- Push your branch to your forked repository.
- Open a pull request to the
mainbranch of the original repository.
This project follows the standard Dart formatting guidelines. You can automatically format your code using:
flutter format .To run all tests in the project:
flutter testWhen submitting a pull request, please ensure:
- Your code is well-documented.
- All tests pass.
- The pull request description clearly explains your changes.
This project is licensed under the MIT License - see the LICENSE file for details.