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.
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.
- 📩 Automatic reading of WhatsApp messages
- 🧠 Smart extraction of purchase data using NLP (Natural Language Processing)
- 📤 Automatic registration of purchases in Timeless (via API)
- Java + Quarkus (timeless-api)
- Quinoa + Angular (frontend)
- Langchain4j + OpenAI Whisper (audio transcription and analysis)
- NodeJS + whatsapp-web.js (whatsapp)
-
You send a message/audio/image on WhatsApp:
"Transfer of R$ 120.00 successfully made to Mercadinho da Vila." -
The system identifies the transaction, extracts the data, and saves it into your monthly budget.
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.
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.
-
Go to
dockerdirectory -
Run all necessary containers:
docker-compose up -dNote
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.
- Go to
timeless-apidirectory and execute:
./mvnw quarkus:dev-
Sign up at http://localhost:8080/sign-up
-
Sign in at http://localhost:8080
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.
- Go to
whatsappdirectory and install all necessary packages:
npm install- Execute the application
npm run start:local- Open the WhatsApp and scan the QR Code generated
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:

