https://github.com/feliphemp/yana-telegrambot
Yana is a lightweight and stylish Telegram bot that fetches credit card invoice data from a Google Sheets document and displays it in a modern, emoji-rich format.
https://github.com/feliphemp/yana-telegrambot
asyncio credit-card csv-parser dotenv expenses-tracker fastapi finance-bot google-sheets httpx open-source personal-finance python render-deploy render-deployment serverless telegram telegram-bot webhook
Last synced: about 1 month ago
JSON representation
Yana is a lightweight and stylish Telegram bot that fetches credit card invoice data from a Google Sheets document and displays it in a modern, emoji-rich format.
- Host: GitHub
- URL: https://github.com/feliphemp/yana-telegrambot
- Owner: FelipheMP
- License: gpl-3.0
- Created: 2025-05-16T02:14:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-15T17:53:27.000Z (4 months ago)
- Last Synced: 2026-01-23T16:19:31.848Z (4 months ago)
- Topics: asyncio, credit-card, csv-parser, dotenv, expenses-tracker, fastapi, finance-bot, google-sheets, httpx, open-source, personal-finance, python, render-deploy, render-deployment, serverless, telegram, telegram-bot, webhook
- Language: Python
- Homepage: https://render.com
- Size: 1.01 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Yana π§Ύπ±
**Yana** is a lightweight and stylish Telegram bot that fetches credit card invoice data from a Google Sheets document and displays it in a modern, emoji-rich format. Itβs perfect for keeping track of your monthly expenses directly through Telegram! πΈπ
---
## β¨ Features
- π₯ Fetches invoice values from multiple cards (e.g., Nubank, Inter, Santander)
- π¬ Beautifully formatted response with:
- Per-card amount and progress bar
- Due dates and payment status
- Monthly totals
- π¨ Color and emoji styling per card
- βοΈ Data sourced from a public Google Sheets CSV link
- π Built with FastAPI and deployable to Render (or any cloud)
---
## π€ Available Commands
| Command | Description |
|-------------|---------------------------------------------|
| `/faturas` | Returns the monthly invoice summary |
| any message | The bot gently replies asking for commands |
---
## π§° Requirements
- Python 3.10+
- Telegram Bot Token (via [@BotFather](https://t.me/BotFather))
- Public link to a Google Sheets CSV export
### π¦ Install Python dependencies
```bash
pip install -r requirements.txt
```
Your `requirements.txt` should include:
```
python-dotenv
fastapi
uvicorn
httpx
pydantic
```
---
## π Environment Variables
Create a `.env` file at the root of the project:
```env
BOT_USERNAME=yourbotusername
BOT_TOKEN=your_telegram_bot_token
CSV_URL=public_link_to_your_google_sheets_csv
SHEET_LINK=https://your_shared_sheet_link
RENDER_URL=optional_url_for_render_deployment
AUTHORIZED_CHAT_IDS=your_personal_chat_id,another_one,group_chat_id,another_one
```
> β οΈ **Never commit your `.env` file to version control!**
> Make sure to add `.env` to `.gitignore`.
---
## π Running the Bot
### π Development mode
To run locally with auto-reload:
```bash
uvicorn main:app --reload
```
You can use a tool like [ngrok](https://ngrok.com/) to test Telegram webhook locally.
### βοΈ Deployment to Render
Create a web service using `main:app` as the entry point. The `RENDER_URL` is used to ping itself periodically to prevent free-tier sleeping.
---
## πΈ Sample Output
Hereβs how the bot outputs information in a Telegram chat:

---
## π Security Notes
- π Keep your bot token and links secure.
- β Never expose your `.env` or secrets publicly.
- β
Use environment variables for safe deployment.
---
## π€ Contributing
Contributions are welcome!
Bug reports, suggestions, and pull requests are appreciated. π οΈ
Letβs make this bot better together. π¬β¨
---
## π¨βπ» Author
Made with β€οΈ by [FelipheMP](https://github.com/FelipheMP)
---
## π License
GPL-3.0. See [LICENSE](./LICENSE) for more details.