Application as a Platform for
Buying and Selling Indonesian Coffee Bean
📱 Fikri Maulana Aziz (A132DKX4468)
📱 Isro Muchsin Abdillah (A151DKX4039)
🤖 Fahira Firdausi (M132DKY4968)
🤖 Visa Asmara Ratu Mutiara Sanda (M132DSY2933)
📡 Reyhan Jarsi Yoga (C305DSX3236)
📡 Tenzilla Titan Arwantaka (C305DSX3335)
According to the International Coffee Organization (2023), Indonesia is the fourth largest coffee producer in the world. Currently, the coffee business is increasingly trending among the public, including MSME players. However, marketing coffee beans for several coffee shops is still difficult to do. So, in this team we create mobile application named BeansBay. BeansBay is such an e-commerce as a platform for buying and selling quality coffee beans is one of the solutions. With BeansBay, it is hoped that the people of Indonesia can buy and sell easily and efficiently, as well as increase knowledge regarding some good coffee beans to boost the economy.
1. Pull the project from android or download from this link https://github.com/isroabdillah/BeansBay.git
2. Open In Android studio
Or you can directly install the application here (https://bit.ly/BeansBay-Apk).
- Kotlin: Why Kotlin. Modern, concise and safe programming language. Concise; Safe; Interoperable.
- Retrofit: Retrofit is the class through which your API interfaces are turned into callable objects
-
Open Google Colaboratory or download from this link:
beansbay_coffee_recommender : https://colab.research.google.com/drive/165dqoY4sKOQTVDOuFs3ZgxLtn5yhy0uw?usp=sharing beansbay_coffee_recommender_similar : https://colab.research.google.com/drive/15dvxj3yBM-rRniRkgsI2eGPQQHD1_uwr?usp=sharing -
Preprocess and clean the datasets according to your code's requirement
-
Customize the downloaded linked dataset links by integrating them in the Load The Data section of each code
-
Build and train the machine learning models in section #Data Train or wherever the models do the training data
-
Incorporate the trained models into your application to provide personalized recommendations and find similar products based on user preferences
Please note that the dataset links provided are subject to change, and it's recommended to download and store the datasets locally for smooth integration with your application.
In BeansBay, two machine learning models are used, namely for system recommendations and for similar products. In both models, two different datasets are used, namely coffee_products and coffee_consumers. Both models use TensorFlow to make accurate recommendations. Meanwhile, the dataset used can be accessed at the following link.- produk_kopi : https://docs.google.com/spreadsheets/d/e/2PACX-1vR0m9FjHszfjZh1ei--UGZnUivJQSoU2-pRdGrWNHaXtqBWneZNbEdoZg_cOZ87gJTDjJMtGcGphED_/pubhtml?gid=165615979&single=true
- konsumen_kopi : https://docs.google.com/spreadsheets/d/e/2PACX-1vR0m9FjHszfjZh1ei--UGZnUivJQSoU2-pRdGrWNHaXtqBWneZNbEdoZg_cOZ87gJTDjJMtGcGphED_/pubhtml?gid=2012083633&single=true
Both of these datasets are secondary datasets.
- Tensorflow: TensorFlow is an open-source machine learning framework that provides a wide range of tools and libraries for building and deploying machine learning models. In BeansBay, TensorFlow is used for training and implementing the recommendation system and similar product models.
- Keras: Keras is a high-level neural networks API that runs on top of TensorFlow. In BeansBay, Keras is utilized in conjunction with TensorFlow to enhance the accuracy and performance of the machine learning models.
-
Create a Google Cloud Project:
- Go to the Google Cloud Console (console.cloud.google.com) and create a new project.
- Provide a unique name for your project and select the desired organization and billing account.
-
Enable the Firestore API:
- In the Google Cloud Console, navigate to the API Library.
- Search for "Firestore API" and click on it.
- Click the "Enable" button to enable the Firestore API for your project.
-
Create a Firestore Database:
- In the Google Cloud Console, go to the Firestore section.
- Click on "Create database" to create a new Firestore database.
- Select the location for your database and choose the security rules (e.g., locked mode or test mode) as per your requirements.
- Click on "Next" and then "Enable" to create the database.
-
Generate Firestore Credentials:
- In the Google Cloud Console, go to the "IAM & Admin" section.
- Select "Service Accounts" and click on "Create Service Account".
- Provide a name for the service account and select the desired roles (e.g., Firestore Admin, Cloud Functions Developer).
- Click on "Create" to generate the service account.
- Once the service account is created, click on the "Create Key" button to generate a JSON key file.
- Download the JSON key file and keep it secure. This file will be used to authenticate your API requests.
-
Open Editor on Your Google Cloud Project:
- Access your Google Cloud project in the Google Cloud Console.
- Open the integrated code editor by clicking on the "Editor" tab.
-
Clone the CC Branch from the Repository:
- In the code editor, open the terminal or command prompt.
- Clone the CC branch from the BeansBay repository by running the following command:
git clone -b CC --single-branch https://github.com/isroabdillah/BeansBay.git
-
Go to the API folder:
- In the terminal, navigate to the BeansBay folder:
cd BeansBay cd API
- In the terminal, navigate to the BeansBay folder:
-
Copy the previously generated credentials to the folder.
-
Install all the dependencies:
- Run the following command to install all the required dependencies:
npm install
- Run the following command to install all the required dependencies:
-
Create a YAML file for App Engine configuration.
-
Deploy the API:
- Deploy the API to Google Cloud App Engine by running the following command:
gcloud app deploy
- Deploy the API to Google Cloud App Engine by running the following command:
-
Obtain the deployed API link.
-
Go to the API ML folder:
- In the terminal, navigate to the BeansBay folder:
cd BeansBay cd "API ML"
- In the terminal, navigate to the BeansBay folder:
-
Install the required libraries:
- Run the following command to install the required libraries:
pip install -r requirements.txt
- Run the following command to install the required libraries:
-
Deploy the Machine Learning API:
- Deploy the Machine Learning API to Google Cloud App Engine by running the following command:
gcloud app deploy
- Deploy the Machine Learning API to Google Cloud App Engine by running the following command:
- Firebase Firestore: Firestore is a versatile and scalable NoSQL document database provided by Firebase. It facilitates storing and synchronizing data for both client-side and server-side development.
- Node.js: Node.js is a runtime environment that enables server-side execution of JavaScript. It utilizes an event-driven, non-blocking I/O model, making it highly efficient for building scalable and real-time applications.
- Flask: Flask is a lightweight web framework for Python. It provides a simple and intuitive way to build web applications and APIs.
- Google App Engine: Google App Engine is a fully managed serverless platform that allows you to build and deploy applications with ease. It abstracts away the underlying infrastructure, enabling you to focus on writing code rather than managing servers.
- Google Cloud Storage: Google Cloud Storage is an object storage service provided by Google Cloud Platform. It offers highly scalable and durable storage for your data, allowing you to store and retrieve files and multimedia content with ease.
bcrypt
: Thebcrypt
package provides password hashing functionality, allowing you to securely store and compare passwords.body-parser
: Thebody-parser
middleware parses incoming request bodies in formats such as JSON, making it easier to handle data sent from client-side forms.dotenv
: Thedotenv
module loads environment variables from a.env
file intoprocess.env
, making it convenient for storing sensitive information.express
: Theexpress
framework is a fast and minimalist web framework for Node.js. It simplifies the process of building robust web applications and APIs.express-session
: Theexpress-session
middleware enables session management in Express, allowing you to store user session data and maintain stateful behavior.express-validator
: Theexpress-validator
package provides a set of middleware functions for validating request data and ensuring its integrity in Express.firebase
: Thefirebase
package provides the JavaScript SDK for Firebase, enabling you to interact with Firebase services in your Node.js application.firebase-admin
: Thefirebase-admin
package provides the Firebase Admin SDK, which allows you to access and manage Firebase services from privileged environments.jsonwebtoken
: Thejsonwebtoken
package enables you to generate and verify JSON Web Tokens (JWTs) for user authentication and authorization.