A feature-rich Telegram bot for easy fellowship ministry scheduling, member management, and reminders — built with a modern tech stack and a focus on simplicity for users and admins alike.
-
🙋 Member Registration & Management
- Self-registration with multiple talents (roles)
- Edit member info, add phone number, activate/deactivate, and delete (admin only)
- View detailed member info
-
📅 Program Schedule Generation
- Automatic 4-week rolling schedule assignment based on roles/talents
- Handy displays: “My Schedule,” “This Week,” and “Monthly” overviews
-
🔔 Scheduling Reminders
- Weekly reminders sent every Wednesday 8AM (Africa/Addis_Ababa timezone)
- Force reminder broadcast (admin only)
-
🛡 Admin Control Panel
- Easily manage members and schedules via Telegram
- Regenerate schedule, send announcements, export data, and advanced stats
- Export/backup and database clearing tools
-
💾 Database
- Persistent, auto-managed SQLite database in
/data/fellowship.db
- Persistent, auto-managed SQLite database in
-
🌐 Render.com & Cloud-Ready
- Lightweight HTTP server for cloud provider compatibility (e.g., Render.com)
- Configuration YAML for auto-deploy
- Node.js — Lightning-fast JavaScript runtime for scalable bots
- Telegraf — Robust Telegram bot API framework
- Better-SQLite3 — High-performance SQLite storage
- node-cron — Flexible and reliable job scheduling
# 1. Clone the repository
git clone https://github.com/Henok-SE/PCMScheduler.git
cd PCMScheduler
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.example .env # Or create .env manually
# Fill in:
# BOT_TOKEN=<Your Telegram Bot Token>
# ADMIN_ID=<Your Telegram numeric ID>
# PORT=3000 # Optional (for Render.com or your host)- Get your BOT_TOKEN from @BotFather
- Get your Telegram numeric ID (for admin) from @userinfobot
# 4. Start the bot:
node index.js
# (Or deploy to Render.com for 24/7 operation)- Render.com: Handles HTTP landing for health checks out-of-the-box. render.yaml is included.
- Use a Persistent Disk pointed at
/datato keep your SQLite database safe. - Environment variables are managed in the Render.com dashboard.
├── index.js # Main bot logic
├── package.json # NPM scripts and dependencies
├── render.yaml # Deployment config for Render.com
├── data/
│ └── fellowship.db # SQLite database (auto-created)
├── .gitignore
└── README.md
- /start – Welcome and register
- Main Menu — Register, This Week, My Schedule, Monthly Schedule, Help (Admin panel button for admins)
- Admin Panel — Manage members, regenerate schedules, send reminders/announcements, view stats, export, and settings
- All sensitive data stored in
/data/fellowship.db(never tracked in git) - Admin: Export all data as JSON and manage the db from your Telegram panel
- Reset/Clear options are protected — only for ADMIN_ID
Pull requests and issues welcome! Suggest or add new features, localizations, or improvements.
Created by Henok-SE for community and church fellowship management.
To God be all the glory!
Made with ❤️ & faith to help your fellowship flourish!