Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arumandesu/go-revise
go-revise is a Telegram bot designed to help you retain and reinforce information over time. Whether it's an article you’ve read about maps in Go, or any other topic, the bot ensures you don’t forget by prompting you to revisit the content at regular intervals.
https://github.com/arumandesu/go-revise
golang sqlite telegram-bot
Last synced: about 1 month ago
JSON representation
go-revise is a Telegram bot designed to help you retain and reinforce information over time. Whether it's an article you’ve read about maps in Go, or any other topic, the bot ensures you don’t forget by prompting you to revisit the content at regular intervals.
- Host: GitHub
- URL: https://github.com/arumandesu/go-revise
- Owner: ARUMANDESU
- License: mit
- Created: 2024-08-25T14:40:06.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-10T05:48:36.000Z (about 1 month ago)
- Last Synced: 2024-10-12T17:24:06.168Z (about 1 month ago)
- Topics: golang, sqlite, telegram-bot
- Language: Go
- Homepage:
- Size: 334 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
go-revise
Table of Contents
## About The Project
A Telegram bot designed to help you retain and reinforce information over time. Whether it's an article or video, the bot will remind you to revise it at the right time.
More details
### Intervals
The bot uses the [Spaced repetition](https://en.wikipedia.org/wiki/Spaced_repetition) technique to remind you to revise the information. The intervals are as follows:### Built With
[![Go][go-shield]][go-url] [![SQLite][sqlite-shield]][sqlite-url]
## Getting Started
### Prerequisites* Go version 1.23.0
* [Taskfile 3](https://taskfile.dev/installation/)```sh
go version
task --version
```### Installation
1. Clone the repo
```sh
git clone https://github.com/ARUMANDESU/go-revise.git
```
2. Change directory
```sh
cd go-revise
```
3. Write the environment variables in the `.env` file
```dotenv
ENV=dev #local, test, dev, prodSTART_TIMEOUT=
SHUTDOWN_TIMEOUT=
# sqlite3 database file name, it will be created in cache directory
# On linux in $HOME/.cache. On Darwin, in $HOME/Library/Caches. On Windows in %LocalAppData%
DATABASE_URL=
TELEGRAM_TOKEN= #Get it from @BotFather
```
4. Run the service
```sh
task r
```## Testing
1. Coverage
```sh
task tc
```
2. Unit tests
```sh
task tu
```
3. Integration tests
```sh
task ti
```## Notification scheduling logic
![Notification scheduling logic](./assets/notification_logic.png)[aitu-url]: https://astanait.edu.kz/
[aitu-ucms-url]: https://www.ucms.space/
[protofiles-url]: https://github.com/ARUMANDESU/uniclubs-protos[go-url]: https://golang.org/
[sqlite-url]: https://www.sqlite.org/index.html[go-shield]: https://img.shields.io/badge/Go-00ADD8?style=for-the-badge&logo=go&logoColor=white
[sqlite-shield]: https://img.shields.io/badge/SQLite-003B57?style=for-the-badge&logo=sqlite&logoColor=white