Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

Awesome Lists containing this project

README

        

V



go-revise

Table of Contents



  1. About The Project



  2. Getting Started


## 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:

(back to top)

### Built With

[![Go][go-shield]][go-url] [![SQLite][sqlite-shield]][sqlite-url]

(back to top)

## 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, prod

START_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
```

(back to top)

## 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