diff --git a/README.md b/README.md index 0f88078..f215d03 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,26 @@ # TODO application -**TODO** apllication for **CS50** final project. +**TODO** apllication for **CS50** final project with flutter framework. #### Video Demo: https://youtu.be/91qB2TgGXTc #### Description: This is my Final project for ***CS50*** course. This is a **TODO** list application for **Mobile**(Android and iOS), **Desktop**(Windows, Linux and MacOS) and **Web** with **Flutter** framework. -You may ask me **What is a TODo list?** The answer is simple: To Do list is a list of tasks you want to complete, or tasks you want to do. +You may ask me **What is a TODo list?** The answer is simple: To Do list is a list of tasks you want to complete, or tasks you want to do and this application helps you to manage your tasks. About **Flutter** (From documentation): -- Flutter is an open source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase. +- Flutter is an open source framework by **Google** for building beautiful, natively compiled, multi-platform applications from a single codebase. - Flutter code compiles to ARM or Intel machine code as well as JavaScript, for fast performance on any device. - Flutter is powered by Dart, a language optimized for fast apps on any platform - ... -In this application to save TODOs in mobile storage I used Hive database and as you know Hive is a Fast, Enjoyable & Secure NoSQL Database. +In this application to save TODO objects in device storage I used Hive database and as you know Hive is a Fast, Enjoyable and Secure NoSQL Database. About **Hive** (From documentation): - Hive is a lightweight and blazing fast key-value database written in pure Dart. Inspired by Bitcask. - All data stored in Hive is organized in **boxes**. A box can be compared to a table in SQL, but it does not have a structure and can contain anything. +- Cross platform: mobile, desktop, browser. - ... To save TODOs with Hive, I make my TODO model like this: @@ -45,3 +46,49 @@ class TODO extends HiveObject { TODO({required this.id, required this.name, required this.time}); } ``` +I actually used material design for building ui/ux. Another beautiful feature in my project is dark mode supporting, application detects theme mode of the device then apply the correct(light or dark) theme. +For dark mode I added this to the MaterialApp: +```dart +darkTheme: ThemeData( + brightness: Brightness.dark, + ), +``` + +### This is my app logo: +![Image](./assets/icon/icon.png) + +## Here is a preview of my application in Mobile: + +#### This is the empty main page: +![Image](./ScreenShots/android1.jpg) + +#### When you want to create a new TODO you should fill in these fields. +![Image](./ScreenShots/android2.jpg) + +#### When you want to choose a date for the TODO you should select your date from this page. +![Image](./ScreenShots/android3.jpg) + + +#### If you want to delete a TODO after click on delete icon, youo chould press the delete text to confirm deleting TODO. +![Image](./ScreenShots/android4.jpg) + +## Here is a preview of my application in Desktop(Windows): + +#### This is the main page with some TODOs +![Image](./ScreenShots/windows1.png) + +#### This is date picker for adding a new TODO +![Image](./ScreenShots/windows2.png) + +#### This is the warning message to confirm deleting the TODO +![Image](./ScreenShots/windows3.png) + +## At last its turn to take a look at a preview of my application in Web or PWA app (in dark mode): + +#### This is a dark view from main page and adding TODO +![Image](./ScreenShots/webpwa1.png) + +#### This is a dark view from confirm deleting warning. +![Image](./ScreenShots/webpwa2.png) + +#### This was my ptoject for CS50 course. \ No newline at end of file diff --git a/ScreenShots/android1.jpg b/ScreenShots/android1.jpg index 8cbf981..a3dbd03 100644 Binary files a/ScreenShots/android1.jpg and b/ScreenShots/android1.jpg differ diff --git a/ScreenShots/android2.jpg b/ScreenShots/android2.jpg index 937cd1b..bb922cd 100644 Binary files a/ScreenShots/android2.jpg and b/ScreenShots/android2.jpg differ diff --git a/ScreenShots/android3.jpg b/ScreenShots/android3.jpg index c9477e4..43257cd 100644 Binary files a/ScreenShots/android3.jpg and b/ScreenShots/android3.jpg differ diff --git a/ScreenShots/android4.jpg b/ScreenShots/android4.jpg index 8f203a9..75b828b 100644 Binary files a/ScreenShots/android4.jpg and b/ScreenShots/android4.jpg differ diff --git a/ScreenShots/webpwa1.png b/ScreenShots/webpwa1.png index 3a8f573..93be615 100644 Binary files a/ScreenShots/webpwa1.png and b/ScreenShots/webpwa1.png differ diff --git a/ScreenShots/webpwa2.png b/ScreenShots/webpwa2.png index ec25c6d..756b3fb 100644 Binary files a/ScreenShots/webpwa2.png and b/ScreenShots/webpwa2.png differ diff --git a/ScreenShots/windows1.png b/ScreenShots/windows1.png index c01ec4f..6e227c7 100644 Binary files a/ScreenShots/windows1.png and b/ScreenShots/windows1.png differ diff --git a/ScreenShots/windows2.png b/ScreenShots/windows2.png index 9b44fd4..bc00cf6 100644 Binary files a/ScreenShots/windows2.png and b/ScreenShots/windows2.png differ diff --git a/ScreenShots/windows3.png b/ScreenShots/windows3.png index f3d79b6..9d0fca7 100644 Binary files a/ScreenShots/windows3.png and b/ScreenShots/windows3.png differ