This is a project for the course "Open Data & Data Ethics" at University of Applied Sciences Technikum Vienna.
The bot is called @vienna_service_bot and can be added in Telegram private chats and group chats.
Starting the bot with /start |
Next city bike station |
---|---|
Members: Nils Bauroth, Sigrid Huemer, Linus Schneider
Goal: creating a Telegram chatbot which lists you interesting points in Vienna near your location. Think of it like a “Vienna Service” Bot. You can list ViennaCityBikes near you or drinking fountains, public toilets etc
Used Data: It may be that we do not manage to include all the datasets, but those are the ones we are interested in (checked boxes are implemented):
- ViennaCityBikes
- Public Toilets
- Drinking Fountains
- Cool Streets
- Recycling places
Tech Stack:
- Telegram BotFather
- Telegraf.js (Telegram Bot Framework)
- Node.js (JavaScript)
- Redis Database
- Google Firebase deployment possible (see branch
firebase
)
Have a look at our Wiki for more information about the project and the deployment steps.
You need two environment variables (.env
file inside the root directory).
You can get the telegram bot token by creating a bot with Telegram Botfather (Telegram: How do I create a bot).
The redis user password can be retreived from your created free database (e.g. on https://redislabs.com/ - it's free).
For geocoding addresses (address <-> coordinates) we use the service from https://opencagedata.com.
BOT_TOKEN=<YOUR_TELEGRAM_BOT_TOKEN>
REDIS_PASSWORT=<YOUR_REDIS_USER_PASSWORD>
OPENCAGE_API_KEY=<YOUR_OPEN_CAGE_KEY>
The application also runs with Docker. Run this command: docker compose up -d
(with Compose V2) or docker-compose up -d
First install all required libraries with
npm install
Then start the app with
npm run start
You can build the application with
npm run build
This creates a dist
folder with the babel-transpiled files.
After that, run
npm run start:prod
to run the files from the dist
folder.