All Projects → javarushcommunity → javarush-telegrambot

javarushcommunity / javarush-telegrambot

Licence: Apache-2.0 license
JavaRush Telegram bot from the community to the community. All the process of software development of this bot is described in series of posts

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to javarush-telegrambot

Community
开源论坛、问答系统,现有功能提问、回复、通知、最新、最热、消除零回复功能。功能持续更新中…… 技术栈 Spring、Spring Boot、MyBatis、MySQL/H2、Bootstrap
Stars: ✭ 1,947 (+1827.72%)
Mutual labels:  springboot, flyway
SpringBoot-Learn
Spring Boot 入门
Stars: ✭ 62 (-38.61%)
Mutual labels:  springboot, flyway
mvvm
简易mvvm模式实现。
Stars: ✭ 37 (-63.37%)
Mutual labels:  mvp
CoreLibs
MVP-Based, RxJava, RxAndroid, Retrofit, Glide, ButterKnife, RxBus...
Stars: ✭ 39 (-61.39%)
Mutual labels:  mvp
Damon
Android MVP
Stars: ✭ 12 (-88.12%)
Mutual labels:  mvp
flutter fish
仿闲鱼 flutter demo
Stars: ✭ 19 (-81.19%)
Mutual labels:  mvp
mvp-monitor
📊 Microsoft MVPs Monitor
Stars: ✭ 30 (-70.3%)
Mutual labels:  mvp
AlquranQ
Terjemahan Alquran Bahasa Indonesia & Bahasa Inggris
Stars: ✭ 26 (-74.26%)
Mutual labels:  mvp
skycloud-base
🔥springcloud脚手架,配置中心(apollo/nacos) 注册中心(consul/nacos) 分布式事物(seata) 调用链(skywalking) 日志(ELK)监控(prometheus与grafana) 等,适合学习与快速开发使用
Stars: ✭ 80 (-20.79%)
Mutual labels:  springboot
P-MVP
[停止维护]基于 dagger.android,简单实用的 MVP 框架
Stars: ✭ 15 (-85.15%)
Mutual labels:  mvp
mvp-sample
一个简单的MVP示例,和传统不一样的是,我们把Activity/Fragment作为Presenter,把View单独提出来,扩展了Presenter的能力。
Stars: ✭ 41 (-59.41%)
Mutual labels:  mvp
weather
基于MVP的安卓天气demo
Stars: ✭ 49 (-51.49%)
Mutual labels:  mvp
MVP Project
mvp 案例
Stars: ✭ 43 (-57.43%)
Mutual labels:  mvp
Core-iOS-Application-Architecture
Core iOS Application Architecture - The development paradigm of clean, testable code and modular iOS applications. + Xcode templates
Stars: ✭ 123 (+21.78%)
Mutual labels:  mvp
Dribbble
根据Dribbble 网站开源的API,将世界各大优秀设计师的作品,展示出来,用于学习MD设计和流式编程。项目采用Google设计规范Material Design设计开发,基础架构采用MVP模式进一步解耦, 使用流式编程框架RxJava + RxAndroid ,结合Retrofit客户端库组织网络框架,图片缓存库采用Google。
Stars: ✭ 20 (-80.2%)
Mutual labels:  mvp
HumanResources
Account Registration and Confirmation. Exception Handling. Caching with Redis.Mail sender by Apache Kafka.Notification send with RabbitMq.
Stars: ✭ 19 (-81.19%)
Mutual labels:  springboot
wikilight
A lightweight Wikipedia Client
Stars: ✭ 50 (-50.5%)
Mutual labels:  mvp
flyway-ant
Flyway Ant tasks
Stars: ✭ 14 (-86.14%)
Mutual labels:  flyway
flywaydb.org
The main marketing and documentation site for Flyway by Redgate
Stars: ✭ 41 (-59.41%)
Mutual labels:  flyway
sina-picbed
新浪图床
Stars: ✭ 16 (-84.16%)
Mutual labels:  springboot

Javarush Telegram Bot

87- Converted

JavaRush Telegram bot from community for community. Written by developers, who learned in Javarush.

Idea

The main idea is to show how to create real application, which can be used by someone else. There are set of posts, which are describing step by step guidelines of how it was created.

MVP Scope

As a user, I want to subscribe on group of posts and get notification via telegram-bot every time, when new post, related to group subscriptions, has come.

How it works

Based on MVP Scope, we can specify next behaviours (here and after Telegram User, which is using JavaRush Telgegram bot will call User):

  • User can subscribe on group of posts
  • User can view list of group subscriptions on which user subscribes
  • User can unsubscribe from group of posts
  • User can set an inactive bot and do not receive notifications
  • User can restart getting notifications

Find new posts workflow

The workflow of finding new posts and send them to subscribers can be viewed here: Find_New_Posts_WF

Deployment

Deployment process as easy as possible: Required software:

  • terminal for running bash scripts
  • docker
  • docker-compose

to deploy application, switch to needed branch and run bash script:

$ bash start.sh ${bot_username} ${bot_token}

That's all.

Local development

For local development and testing, use docker-compose-test.yml. Run command:

docker-compose -f docker-compose-test.yml up

Next step, is to run SpringBoot app with configured Edit Configuration in which two env vars are provided:

bot.token=${BOT_TOKEN};bot.username=${BOT_USERNAME}

And add VM Options:

-Dspring.profiles.active=test

With these configurations - run SpringBoot main method.

Technological stack

  • SpringBoot as a skeleton framework
  • Spring Scheduler as a task manager
  • MySQL database as a database for saving user and subscription info
  • Flyway database migration tool
  • Telegram-bot SpringBoot starter
  • Spring Data starter
  • Unirest - lib for working with REST calls

Code of Conduct

Please, follow Code of Conduct page.

License

This project is Apache License 2.0 - see the LICENSE file for details

Contributions

Feel free to suggest new features via github issue. Note, that new features must be approved before start implement it to avoid the situation, when the time was spent, but the changes wouldn't added to the project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].