Skip to content

Commit b936c75

Browse files
Merge branch 'main' into tests/issue-#103-integration-tests-for-SignUpResource
2 parents c404aa9 + b2d4382 commit b936c75

8 files changed

Lines changed: 120 additions & 4 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Publish Landing Page to Amazon S3
2+
on:
3+
push:
4+
branches:
5+
- main
6+
paths:
7+
- site/index.html
8+
jobs:
9+
publish-landing-page:
10+
name: Publish Landing Page
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout Repository
15+
uses: actions/checkout@v5
16+
17+
- name: Configure AWS Credentials
18+
uses: aws-actions/configure-aws-credentials@main
19+
with:
20+
aws-access-key-id: ${{ secrets.LANDING_PAGE_AWS_ACCESS_KEY }}
21+
aws-secret-access-key: ${{ secrets.LANDING_PAGE_AWS_SECRET_KEY }}
22+
aws-region: sa-east-1
23+
24+
- name: Sync Landing Page to S3
25+
run: |
26+
aws s3 cp site/index.html s3://${{ secrets.LANDING_PAGE_S3_BUCKET }}/index.html

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
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.
44

5+
See our landing page: [**https://timeless.platformoon.com**](https://timeless.platformoon.com)
6+
57
## ✨ Overview
68

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

site/index.html

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>Timeless — your personal financial organization hub.</title>
7+
<script src="https://cdn.tailwindcss.com"></script>
8+
</head>
9+
<body class="bg-gray-50 text-gray-900">
10+
<!-- Hero Section -->
11+
<header class="w-full py-4 flex justify-between items-center px-6 absolute top-0 left-0">
12+
<div class="text-2xl font-bold">Timeless</div>
13+
<nav class="flex items-center gap-6 text-lg">
14+
<a href="https://github.com/mcruzdev/timeless" target="_blank" class="flex items-center gap-2 hover:opacity-80 transition">
15+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .5C5.65.5.5 5.65.5 12c0 5.1 3.3 9.45 7.9 10.98.58.1.77-.25.77-.55v-2c-3.22.7-3.9-1.55-3.9-1.55-.52-1.32-1.28-1.67-1.28-1.67-1.04-.72.08-.7.08-.7 1.15.08 1.75 1.18 1.75 1.18 1.02 1.75 2.68 1.25 3.33.95.1-.75.4-1.25.72-1.55-2.56-.3-5.26-1.28-5.26-5.72 0-1.28.46-2.33 1.18-3.15-.12-.3-.52-1.52.12-3.15 0 0 .97-.3 3.18 1.18.92-.26 1.9-.4 2.88-.4.98 0 1.96.14 2.88.4 2.2-1.48 3.18-1.18 3.18-1.18.64 1.63.24 2.85.12 3.15.74.82 1.18 1.87 1.18 3.15 0 4.46-2.7 5.42-5.28 5.72.42.36.78 1.08.78 2.2v3.28c0 .28.18.65.78.54C20.2 21.43 23.5 17.1 23.5 12c0-6.35-5.15-11.5-11.5-11.5Z"/></svg>
16+
GitHub
17+
</a>
18+
</nav>
19+
</header>
20+
<section class="min-h-screen flex flex-col justify-center items-center text-center px-6">
21+
<img src="https://upload.wikimedia.org/wikipedia/commons/6/6b/WhatsApp.svg" alt="WhatsApp Icon" class="w-16 h-16 mb-4 mx-auto opacity-90" />
22+
<h1 class="text-5xl font-bold mb-4">Timeless</h1>
23+
<p class="text-xl max-w-2xl mb-8">Send messages, images, and audio through WhatsApp. Timeless uses AI to understand, organize, and store everything — helping you keep your <b>financial life organized effortlessly</b> through WhatsApp.</p>
24+
<a href="#start" class="bg-blue-600 text-white px-6 py-3 rounded-xl text-lg font-semibold hover:bg-blue-700 transition">Get Started</a>
25+
</section>
26+
27+
<!-- How it Works -->
28+
<section class="py-20 px-6 bg-white" id="start">
29+
<h2 class="text-3xl font-bold text-center mb-12">How Timeless Works</h2>
30+
31+
<div class="grid grid-cols-1 md:grid-cols-3 gap-10 max-w-6xl mx-auto">
32+
<div class="p-6 bg-gray-100 rounded-2xl shadow">
33+
<h3 class="text-xl font-semibold mb-3">1. Send via WhatsApp</h3>
34+
<p>Send any text, image, or audio message directly to Timeless using WhatsApp.
35+
<img src="https://upload.wikimedia.org/wikipedia/commons/6/6b/WhatsApp.svg" alt="WhatsApp" class="w-10 h-10 mt-4 opacity-80" /></p>
36+
</div>
37+
<div class="p-6 bg-gray-100 rounded-2xl shadow">
38+
<h3 class="text-xl font-semibold mb-3">2. AI Processes It</h3>
39+
<p>Timeless recognizes and classifies your content using advanced AI models.</p>
40+
</div>
41+
<div class="p-6 bg-gray-100 rounded-2xl shadow">
42+
<h3 class="text-xl font-semibold mb-3">3. Retrieve Anytime</h3>
43+
<p>Search and access all your stored messages through a simple interface.</p>
44+
</div>
45+
</div>
46+
</section>
47+
48+
<!-- Financial Organization Section -->
49+
<section class="py-20 px-6 bg-gray-50 text-center">
50+
<h2 class="text-3xl font-bold mb-6">Organize Your Financial Life Without Effort</h2>
51+
<p class="text-lg max-w-3xl mx-auto mb-10">Send receipts, invoices, notes, payment confirmations, and voice memos about your expenses or goals directly through WhatsApp. Timeless automatically classifies and stores everything using AI — so you know exactly where your money is going.</p>
52+
</section>
53+
54+
<!-- Contribute Section -->
55+
<section class="py-20 px-6 bg-white text-center">
56+
<h2 class="text-3xl font-bold mb-6">Timeless is Open Source</h2>
57+
<p class="text-lg max-w-2xl mx-auto mb-8">We believe in transparency, collaboration, and community. Want to contribute, open issues, or help build new features? Join the project on GitHub.</p>
58+
59+
<div class="flex justify-center gap-6 mt-6">
60+
<a href="https://github.com/mcruzdev/timeless" target="_blank" class="flex items-center gap-2 bg-gray-900 text-white px-6 py-3 rounded-xl text-lg font-semibold hover:bg-black transition">
61+
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .5C5.65.5.5 5.65.5 12c0 5.1 3.3 9.45 7.9 10.98.58.1.77-.25.77-.55v-2c-3.22.7-3.9-1.55-3.9-1.55-.52-1.32-1.28-1.67-1.28-1.67-1.04-.72.08-.7.08-.7 1.15.08 1.75 1.18 1.75 1.18 1.02 1.75 2.68 1.25 3.33.95.1-.75.4-1.25.72-1.55-2.56-.3-5.26-1.28-5.26-5.72 0-1.28.46-2.33 1.18-3.15-.12-.3-.52-1.52.12-3.15 0 0 .97-.3 3.18 1.18.92-.26 1.9-.4 2.88-.4.98 0 1.96.14 2.88.4 2.2-1.48 3.18-1.18 3.18-1.18.64 1.63.24 2.85.12 3.15.74.82 1.18 1.87 1.18 3.15 0 4.46-2.7 5.42-5.28 5.72.42.36.78 1.08.78 2.2v3.28c0 .28.18.65.78.54C20.2 21.43 23.5 17.1 23.5 12c0-6.35-5.15-11.5-11.5-11.5Z"/></svg>
62+
Contribute on GitHub
63+
</a>
64+
65+
<a href="https://www.buymeacoffee.com/mcruzdev" target="_blank" class="bg-yellow-400 text-black px-6 py-3 rounded-xl text-lg font-semibold hover:bg-yellow-300 transition">
66+
Buy Me a Coffee ☕
67+
</a>
68+
</div>
69+
</section>
70+
71+
<!-- Call to Action -->
72+
<section class="py-24 px-6 bg-blue-600 text-white text-center">
73+
<h2 class="text-3xl font-bold mb-6">Start Using Timeless Today</h2>
74+
<p class="text-lg mb-8 max-w-2xl mx-auto">Your financial Life organized forever. No effort required.</p>
75+
<a href="#" class="bg-white text-blue-600 px-6 py-3 rounded-xl text-lg font-semibold hover:bg-gray-200 transition">Join the Waitlist</a>
76+
</section>
77+
78+
<!-- Footer -->
79+
<footer class="py-6 text-center text-gray-600 text-sm">
80+
© 2025 Timeless. All rights reserved.
81+
</footer>
82+
</body>
83+
</html>

timeless-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<version>1.0.0-SNAPSHOT</version>
99

1010
<properties>
11-
<compiler-plugin.version>3.14.0</compiler-plugin.version>
11+
<compiler-plugin.version>3.14.1</compiler-plugin.version>
1212
<maven.compiler.release>21</maven.compiler.release>
1313
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1414
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

timeless-api/src/main/resources/application.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# application
22
security.sensible.secret=${SECURITY_KEY}
3+
%dev.security.sensible.secret=YS0xNi1ieXRlLXNlY3JldA==
4+
35
whatsapp.incoming-messages.queue-url=${INCOMING_MESSAGE_FIFO_URL}
46
whatsapp.messages-processed.queue-url=${MESSAGES_PROCESSED_FIFO_URL}
57

@@ -38,3 +40,4 @@ quarkus.quinoa.run-tests=false
3840
%quarkus.test.arg-line=--add-opens java.base/java.lang=ALL-UNNAMED
3941

4042
%test.quarkus.scheduler.enabled=false
43+
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { Component } from '@angular/core';
22
import { RouterOutlet } from '@angular/router';
33
import { Toast } from 'primeng/toast';
4-
import { MessageService } from 'primeng/api';
54

65
@Component({
76
selector: 'app-root',
87
imports: [RouterOutlet, Toast],
98
templateUrl: './app.component.html',
109
styleUrl: './app.component.scss',
11-
providers: [MessageService],
10+
providers: [],
1211
})
1312
export class AppComponent {
13+
constructor() {}
1414
title = 'timeless';
1515
}

timeless-api/src/main/webui/src/app/app.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { provideAnimationsAsync } from '@angular/platform-browser/animations/asy
66
import { providePrimeNG } from 'primeng/config';
77
import Material from '@primeng/themes/material';
88
import { provideHttpClient } from '@angular/common/http';
9+
import { MessageService } from 'primeng/api';
910

1011
export const appConfig: ApplicationConfig = {
1112
providers: [
@@ -18,5 +19,6 @@ export const appConfig: ApplicationConfig = {
1819
},
1920
}),
2021
provideHttpClient(),
22+
MessageService,
2123
],
2224
};

timeless-api/src/main/webui/src/app/pages/user-config/user-config.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
></p-inputmask>
6767
</div>
6868

69-
<div class="flex flex-col md:col-span-2">
69+
<div class="md:col-span-2">
7070
<button
7171
pButton
7272
severity="contrast"

0 commit comments

Comments
 (0)