BEANS BAY, Bangkit 2023 Final Capstone Project

Application as a Platform for
Buying and Selling Indonesian Coffee Bean

Team ID : C23-PS434

📱 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)

Theme : SME/UMKM Empowerment

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.

Technologies

kotlin logo androidstudio logo tensorflow logo nodejs logo googlecloud logo

Mobile Development

Home Page

Detail Product

Checkout Page

History Page

Setting Page

Steps To Clone Project

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).

Featured Technologies

  • 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

Machine Learning

Machine Learning

Steps To Generate Model

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.

Dataset

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.

Both of these datasets are secondary datasets.

Featured Technologies

  • 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.

Cloud Computing

Deploying API to Google Cloud

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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
      
  7. Go to the API folder:

    • In the terminal, navigate to the BeansBay folder:
      cd BeansBay
      cd API
      
  8. Copy the previously generated credentials to the folder.

  9. Install all the dependencies:

    • Run the following command to install all the required dependencies:
      npm install
      
  10. Create a YAML file for App Engine configuration.

  11. Deploy the API:

    • Deploy the API to Google Cloud App Engine by running the following command:
      gcloud app deploy
      
  12. Obtain the deployed API link.

  13. Go to the API ML folder:

    • In the terminal, navigate to the BeansBay folder:
      cd BeansBay
      cd "API ML"
      
  14. Install the required libraries:

    • Run the following command to install the required libraries:
      pip install -r requirements.txt
      
  15. Deploy the Machine Learning API:

    • Deploy the Machine Learning API to Google Cloud App Engine by running the following command:
      gcloud app deploy
      

Featured Technologies

  • 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.

Additional Dependencies:

  • bcrypt: The bcrypt package provides password hashing functionality, allowing you to securely store and compare passwords.
  • body-parser: The body-parser middleware parses incoming request bodies in formats such as JSON, making it easier to handle data sent from client-side forms.
  • dotenv: The dotenv module loads environment variables from a .env file into process.env, making it convenient for storing sensitive information.
  • express: The express framework is a fast and minimalist web framework for Node.js. It simplifies the process of building robust web applications and APIs.
  • express-session: The express-session middleware enables session management in Express, allowing you to store user session data and maintain stateful behavior.
  • express-validator: The express-validator package provides a set of middleware functions for validating request data and ensuring its integrity in Express.
  • firebase: The firebase package provides the JavaScript SDK for Firebase, enabling you to interact with Firebase services in your Node.js application.
  • firebase-admin: The firebase-admin package provides the Firebase Admin SDK, which allows you to access and manage Firebase services from privileged environments.
  • jsonwebtoken: The jsonwebtoken package enables you to generate and verify JSON Web Tokens (JWTs) for user authentication and authorization.