-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
DMouayad
committed
Apr 19, 2023
0 parents
commit 3725932
Showing
296 changed files
with
22,839 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Miscellaneous | ||
*.class | ||
*.log | ||
*.pyc | ||
*.swp | ||
.DS_Store | ||
.atom/ | ||
.buildlog/ | ||
.history | ||
.svn/ | ||
migrate_working_dir/ | ||
|
||
# IntelliJ related | ||
*.iml | ||
*.ipr | ||
*.iws | ||
.idea/ | ||
|
||
# The .vscode folder contains launch configuration and tasks you configure in | ||
# VS Code which you may wish to be included in version control, so this line | ||
# is commented out by default. | ||
#.vscode/ | ||
|
||
# Flutter/Dart/Pub related | ||
**/doc/api/ | ||
**/ios/Flutter/.last_build_id | ||
.dart_tool/ | ||
.flutter-plugins | ||
.flutter-plugins-dependencies | ||
.packages | ||
.pub-cache/ | ||
.pub/ | ||
/build/ | ||
|
||
# Symbolication related | ||
app.*.symbols | ||
|
||
# Obfuscation related | ||
app.*.map.json | ||
|
||
# Android Studio will place build artifacts here | ||
/android/app/debug | ||
/android/app/profile | ||
/android/app/release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# This file tracks properties of this Flutter project. | ||
# Used by Flutter tool to assess capabilities and perform upgrades etc. | ||
# | ||
# This file should be version controlled. | ||
|
||
version: | ||
revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
channel: stable | ||
|
||
project_type: app | ||
|
||
# Tracks metadata for the flutter migrate command | ||
migration: | ||
platforms: | ||
- platform: root | ||
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
- platform: android | ||
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
- platform: ios | ||
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
- platform: linux | ||
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
- platform: macos | ||
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
- platform: web | ||
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
- platform: windows | ||
create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf | ||
|
||
# User provided section | ||
|
||
# List of Local paths (relative to this file) that should be | ||
# ignored by the migrate tool. | ||
# | ||
# Files that are not part of the templates will be ignored by default. | ||
unmanaged_files: | ||
- 'lib/main.dart' | ||
- 'ios/Runner.xcodeproj/project.pbxproj' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
<div align="center"> | ||
<img src="/assets/app%20name%20cover.png" alt="App name cover"/> | ||
</div> | ||
|
||
|
||
## Table of Contents | ||
|
||
* [About](#about) | ||
* [Demo](#demo) | ||
* [Built-With](#built-with) | ||
* [Documentation](#documentation) | ||
* [Project Status](#project-status) | ||
* [Getting Started](#getting-started) | ||
* [Prerequisites](#prerequisites) | ||
* [Setup](#setup) | ||
* [Usage](#usage) | ||
* [Credits](#credits) | ||
* [License](#license) | ||
|
||
## About | ||
|
||
**Books Genie** is: | ||
* A cross-platform app built with Flutter. | ||
* An easy way to keep track of your favorite books and novels. | ||
* Designed with a beautiful, engaging and minimal UI. | ||
|
||
|
||
## Demo | ||
|
||
#### Screenshots | ||
|
||
 | ||
|
||
|
||
#### Download | ||
|
||
To preview the app, you can download it for your device OS: | ||
<p align="center" style="align-items:center"> | ||
<a href="" rel="GitHub Releases"> | ||
<img width="100" height="100" src="https://telegra.ph/file/21bb2cc648561f192cea4.png"></a> | ||
</p> | ||
|
||
## Built-With | ||
|
||
* **Flutter** | ||
>For help to get started with Flutter development, view the [online documentation](https://docs.flutter.dev/). | ||
* **State Management**: [BloC](https://bloclibrary.dev/). | ||
* **Offline Storage**: [Isar](https://isar.dev/). | ||
* **Cloud & Offline Storage**: [Firebase](https://firebase.google.com/docs/). | ||
|
||
* **GoogleBooks API** | ||
* using [books_finder](https://pub.dev/packages/books_finder) package. | ||
|
||
## Documentation | ||
|
||
#### System Design & Architecture | ||
|
||
* The design of this app is a custom combination of *Clean Architecture* and *DDD*. | ||
* Using this approach, it was possible to allow the user to dynamically change the way to save his books preferences and | ||
collections. | ||
|
||
#### Features | ||
|
||
* Multi-Language Support | ||
|
||
| Language | Status | | ||
|:---------:|:---------:| | ||
| Arabic | ⏳ | | ||
| English | ✅ | | ||
|
||
* Multi-Platform Support: | ||
|
||
| Platform | Supported | Adaptive UI/UX Implemented | | ||
|:--------:|:---------:|:--------------------------:| | ||
| Android | ✔ | ✔ | | ||
| IOS | ✔ | ✔ | | ||
| Windows | ✔ | ⏳ | | ||
|
||
* Multi-storage-option Support: | ||
|
||
## Project Status | ||
|
||
* This project is a **work-in-progress**. | ||
|
||
## Getting Started | ||
|
||
#### Prerequisites | ||
|
||
* If you are new to Flutter, start with the [installation instruction](https://flutter.io/docs/get-started/install). | ||
|
||
* Flutter v3.7 & Dart v2.19 - or higher. | ||
|
||
* For running on *Windows*, please read the following [requirements](https://docs.flutter.dev/development/platform-integration/desktop#requirements). | ||
|
||
* Run the command `flutter doctor -v` in a terminal to make sure no issues are present. | ||
|
||
#### Setup | ||
|
||
**Step 1:** download or clone this repo. | ||
|
||
**Step 2:** run these commands in the terminal: | ||
|
||
* `cd path_of_project_folder` | ||
* `flutter pub get` | ||
|
||
#### Usage | ||
|
||
You can run the app using: | ||
|
||
**Option 1** | ||
|
||
* Open the project in an IDE. | ||
* Select the device you wish to run the app on. | ||
* Run `lib\main.dart`. | ||
|
||
**Option 2:** | ||
|
||
* In the project directory, run in the terminal one of the commands: | ||
|
||
```dart | ||
flutter run -d windows | ||
flutter run -d macos | ||
flutter run -d android | ||
flutter run -d ios | ||
``` | ||
|
||
**Additional Info** | ||
|
||
You can also specify the build mode of the app: | ||
|
||
* Using an IDE: most IDEs support different build\run modes. check your IDE's *Run Settings & Configuration*. | ||
|
||
* Using the terminal, specify the argument after `flutter run` from the following: | ||
|
||
* `-d` or `--debug`: to run the debug-version. | ||
* `-r` or `--release`: to run the deployment(release) version. | ||
|
||
## Credits | ||
|
||
## License | ||
|
||
Books Genie is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# This file configures the analyzer, which statically analyzes Dart code to | ||
# check for errors, warnings, and lints. | ||
# | ||
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled | ||
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be | ||
# invoked from the command line by running `flutter analyze`. | ||
|
||
# The following line activates a set of recommended lints for Flutter apps, | ||
# packages, and plugins designed to encourage good coding practices. | ||
include: package:flutter_lints/flutter.yaml | ||
|
||
linter: | ||
# The lint rules applied to this project can be customized in the | ||
# section below to disable rules from the `package:flutter_lints/flutter.yaml` | ||
# included above or to enable additional rules. A list of all available lints | ||
# and their documentation is published at | ||
# https://dart-lang.github.io/linter/lints/index.html. | ||
# | ||
# Instead of disabling a lint rule for the entire project in the | ||
# section below, it can also be suppressed for a single line of code | ||
# or a specific dart file by using the `// ignore: name_of_lint` and | ||
# `// ignore_for_file: name_of_lint` syntax on the line or in the file | ||
# producing the lint. | ||
rules: | ||
# avoid_print: false # Uncomment to disable the `avoid_print` rule | ||
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule | ||
|
||
# Additional information about this file can be found at | ||
# https://dart.dev/guides/language/analysis-options |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
gradle-wrapper.jar | ||
/.gradle | ||
/captures/ | ||
/gradlew | ||
/gradlew.bat | ||
/local.properties | ||
GeneratedPluginRegistrant.java | ||
|
||
# Remember to never publicly share your keystore. | ||
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app | ||
key.properties | ||
**/*.keystore | ||
**/*.jks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
def localProperties = new Properties() | ||
def localPropertiesFile = rootProject.file('local.properties') | ||
if (localPropertiesFile.exists()) { | ||
localPropertiesFile.withReader('UTF-8') { reader -> | ||
localProperties.load(reader) | ||
} | ||
} | ||
|
||
def flutterRoot = localProperties.getProperty('flutter.sdk') | ||
if (flutterRoot == null) { | ||
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") | ||
} | ||
|
||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode') | ||
if (flutterVersionCode == null) { | ||
flutterVersionCode = '1' | ||
} | ||
|
||
def flutterVersionName = localProperties.getProperty('flutter.versionName') | ||
if (flutterVersionName == null) { | ||
flutterVersionName = '1.0' | ||
} | ||
|
||
apply plugin: 'com.android.application' | ||
apply plugin: 'kotlin-android' | ||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" | ||
|
||
android { | ||
compileSdkVersion 31 | ||
ndkVersion flutter.ndkVersion | ||
|
||
compileOptions { | ||
sourceCompatibility JavaVersion.VERSION_1_8 | ||
targetCompatibility JavaVersion.VERSION_1_8 | ||
} | ||
|
||
kotlinOptions { | ||
jvmTarget = '1.8' | ||
} | ||
|
||
sourceSets { | ||
main.java.srcDirs += 'src/main/kotlin' | ||
} | ||
|
||
defaultConfig { | ||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). | ||
applicationId "com.example.books_genie" | ||
// You can update the following values to match your application needs. | ||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. | ||
minSdkVersion 19 | ||
multiDexEnabled true | ||
targetSdkVersion 31 | ||
versionCode flutterVersionCode.toInteger() | ||
versionName flutterVersionName | ||
} | ||
|
||
buildTypes { | ||
release { | ||
// TODO: Add your own signing config for the release build. | ||
// Signing with the debug keys for now, so `flutter run --release` works. | ||
signingConfig signingConfigs.debug | ||
} | ||
} | ||
} | ||
|
||
flutter { | ||
source '../..' | ||
} | ||
|
||
dependencies { | ||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" | ||
} |
Oops, something went wrong.