Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
DMouayad committed Apr 19, 2023
0 parents commit 3725932
Show file tree
Hide file tree
Showing 296 changed files with 22,839 additions and 0 deletions.
44 changes: 44 additions & 0 deletions .gitignore
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
45 changes: 45 additions & 0 deletions .metadata
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'
143 changes: 143 additions & 0 deletions README.md
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

![](assets/screenshots.png)


#### 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).
29 changes: 29 additions & 0 deletions analysis_options.yaml
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
13 changes: 13 additions & 0 deletions android/.gitignore
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
72 changes: 72 additions & 0 deletions android/app/build.gradle
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"
}
Loading

0 comments on commit 3725932

Please sign in to comment.