Skip to content

mcruzdev/timeless

Repository files navigation

🕰️ Timeless

Do you often make purchases and forget to write them down? Timeless is a project designed to help you by automatically detecting purchase-related messages on WhatsApp and registering that data in the Timeless app — your personal financial organization hub.

✨ Overview

This application monitors WhatsApp messages for signs of purchases (such as receipts, audio messages, transfers), extracts relevant information (amounts, descriptions), and automatically sends it to Timeless, helping you keep your finances organized — effortlessly.

🚀 Features

  • 📩 Automatic reading of WhatsApp messages
  • 🧠 Smart extraction of purchase data using NLP (Natural Language Processing)
  • 📤 Automatic registration of purchases in Timeless (via API)

🛠️ Technologies Used

  • Java + Quarkus (timeless-api)
  • Quinoa + Angular (frontend)
  • Langchain4j + OpenAI Whisper (audio transcription and analysis)
  • NodeJS + whatsapp-web.js (whatsapp)

💡 How It Works

  1. You send a message/audio/image on WhatsApp:
    "Transfer of R$ 120.00 successfully made to Mercadinho da Vila."

  2. The system identifies the transaction, extracts the data, and saves it into your monthly budget.

Running with Terraform and AWS

Warning

Actually, you will need two phones and a OpenAI token. Feel free to change the code to support only one number and a local LLM.

If you want to use Terraform and AWS see this tutorial.

Running locally with localstack

Warning

Actually, you will need two phones and a OpenAI token. Feel free to change the code to support only one number and a local LLM.

Execute the infrastructure

  1. Go to docker directory

  2. Run all necessary containers:

docker-compose up -d

Execute the timeless-api

Note

Before you start, make sure to fill the quarkus.langchain4j.openai.api-key and quarkus.langchain4j.openai.gpt-4-turbo.api-key variables in the timeless/src/main/resources/application.properties file.

  1. Go to timeless-api directory and execute:
./mvnw quarkus:dev
  1. Sign up at http://localhost:8080/sign-up

  2. Sign in at http://localhost:8080

Execute the whatsapp application

Note

Before you start, make sure to fill the ALLOWED_USERS and OPENAI_API_KEY variables in the .env.local file. This variable determines the number of users who can interact with the bot.

  1. Go to whatsapp directory and install all necessary packages:
npm install
  1. Execute the application
npm run start:local
  1. Open the WhatsApp and scan the QR Code generated

scan-qr-code

Send a message

After connected the device with the scanned QR Code, send the following message: "Achei mil reais no chão da praia".

You should receive something like it:

success

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published