- Flutter Ayatnesia Qur'an Search
- Table of Contents
- Getting Started with AyatNesia Qur'an Search
- Run the Project
- Troubleshooting
- Additional Information
- Developed By 👨💻
- Technologies Used ⚙
- Dependencies 📦
- Assets
Flutter Ayatnesia Qur'an Search is a mobile application developed using Flutter, which serves as my final project for completing a Computer Science degree at Nahdlatul Ulama University, Blitar.
This application features a search capability for the text of Qur'anic verses in Indonesian translation, utilizing both lexical and semantic similarity measurements. Flutter Ayatnesia is designed to meet the needs of users looking for relevant Qur'anic verses, whether based on keyword similarity or semantic meaning, by leveraging the Al-Qur'an dataset provided by the Indonesian Ministry of Religious Affairs (Kemenag). This makes it easier for the Indonesian public to find verses that best match their needs.
The search feature and Qur'anic data management are integrated through a REST API that I developed in the project "FastAPI Ayatnesia." The Qur'an dataset, which includes Arabic text, translations, and brief interpretations, is sourced from the Al Qur'an Kemenag, ensuring that the data is valid and reliable.
Key Features:
- Lexical Search: Find Qur'anic verses based on keywords or phrases using TF-IDF and cosine similarity methods.
- Semantic Search: Discover verses based on the meaning of words using word embeddings with the FastText model.
- Combined Search: A blend of lexical and semantic searches that allows for searching verses using both keywords and semantic meanings simultaneously.
- Relevance Calculation: Search results include relevance scores based on three methods: lexical, semantic, and combined.
- Brief Interpretation by Kemenag: The application also features brief interpretations by Kemenag, making it easier for users to read and understand the interpretation of each verse.
ayatnesia-mobile-demo.mp4
Follow these steps to set up and run the AyatNesia Qur'an Search project in your local development environment.
Ensure you have installed the following prerequisites:
- Flutter SDK: Version
>=3.1.0
- Dart SDK: Included with the Flutter SDK.
- Git: For cloning the repository.
- Code Editor: Visual Studio Code or Android Studio is recommended.
-
Open a terminal or command prompt.
-
Run the following command to clone the repository to your local machine:
git clone https://github.com/utrodus/flutter-ayatnesia-quran-search
-
Navigate to the cloned project directory:
cd flutter-ayatnesia-quran-search
Once the repository is successfully cloned, the next step is to install all the dependencies required by the project:
-
Run the following command to download and install all the necessary Flutter packages:
flutter pub get
After all dependencies are installed and the splash screen is generated, you can run the project with the following steps:
-
First of all before you run Ayatnesia Qur'an Search project, make sure you have Setup and Run Ayatnesia API in your machine
-
Connect your Android or iOS device to your computer, or run an emulator.
-
Run the following command to start the application:
flutter run
The project will be compiled and run on the connected device or emulator.
This project uses the flutter_native_splash
package to generate a native splash screen. Follow these steps to generate the native splash screen:
-
Run the following commands in the terminal:
flutter clean flutter pub get flutter pub run flutter_native_splash:create
If you encounter issues while running the project, try the following steps:
- Ensure all prerequisites are installed correctly.
- Run
flutter doctor
to check for any issues with your Flutter installation. - If there are dependency issues, run
flutter pub get
again. - Check the
pubspec.yaml
file to ensure there are no syntax errors or incorrect package versions.
If you have trouble with pod install, try running the following command:
sudo arch -x86_64 gem install ffi
cd ios
arch -x86_64 pod install
For more information on how to use Flutter, visit the official Flutter documentation.
Role | Team | Status | Joined At |
---|---|---|---|
Developer | Utrodus - contact.utrodus@gmail.com | Active | Project kick-off |
Dart | Flutter |
---|---|
3.16.9 | 3.2.6 |
Package Dependencies
Package | Version | Description |
---|---|---|
animate_do | ^3.0.2 | A package used to add attractive animations to widgets. |
cupertino_icons | ^1.0.2 | iOS style icons for use in the application. |
dartz | ^0.10.1 | A library providing functional data structures like Either , Option , and more. |
dio | ^5.2.1+1 | An HTTP client supporting interceptors, cancellation, and other advanced features for API communication. |
flutter | sdk: flutter | A framework for building natively compiled applications for mobile, web, and desktop from a single codebase. |
flutter_staggered_animations | ^1.1.1 | A library for adding staggered animations to lists of widgets. |
flutter_screenutil | ^5.8.4 | A package for handling screen responsiveness in Flutter. |
get | ^4.6.6 | A simple yet powerful state management library for Flutter applications. |
ionicons | ^0.2.2 | A package providing a variety of Ionicons style icons. |
logger | ^2.4.0 | A library for logging within Flutter applications. |
lottie | ^3.1.2 | A package for displaying Lottie animations, compiled from After Effects. |
get_storage | 2.1.1 | A simple and fast data storage package for Flutter. |
Development Dependencies
Dev Dependency | Version | Description |
---|---|---|
flutter_lints | ^4.0.0 | Linting rules for Flutter projects. |
flutter_native_splash | ^2.2.17 | Generates native splash screens for Flutter applications. |
flutter_test | sdk: flutter | A package for writing unit tests and widget tests in Flutter. |
- Images:
- Stored in the
assets/img/
directory.
- Stored in the
- Animations:
- Stored in the
assets/animation/
directory.
- Stored in the
- Fonts:
- Poppins:
- Bold (700):
assets/fonts/Poppins-Bold.ttf
- SemiBold (600):
assets/fonts/Poppins-SemiBold.ttf
- Medium (500):
assets/fonts/Poppins-Medium.ttf
- Regular (400):
assets/fonts/Poppins-Regular.ttf
- Bold (700):
- LPMQ-IsepMisbah:
- Regular (400):
assets/fonts/LPMQ-IsepMisbah.ttf
- Regular (400):
- Poppins: