Skip to content

Henok-SE/PCMScheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✝️ PCM Fellowship Scheduler Bot

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.



🚀 Features

  • 🙋 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
  • 🌐 Render.com & Cloud-Ready

    • Lightweight HTTP server for cloud provider compatibility (e.g., Render.com)
    • Configuration YAML for auto-deploy

🛠️ Tech Stack

Node.js Telegraf SQLite Render JavaScript

  • 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

⚡ Quick Start

# 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)
# 4. Start the bot:
node index.js
# (Or deploy to Render.com for 24/7 operation)

🌍 Deployment

  • Render.com: Handles HTTP landing for health checks out-of-the-box. render.yaml is included.
  • Use a Persistent Disk pointed at /data to keep your SQLite database safe.
  • Environment variables are managed in the Render.com dashboard.

🗂️ Project Structure

├── 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

📝 Key Bot Commands & Menu

  • /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

🛡️ Security & Backup

  • 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

🤝 Contributing

Pull requests and issues welcome! Suggest or add new features, localizations, or improvements.


🙏 About

Created by Henok-SE for community and church fellowship management.

To God be all the glory!


Made with ❤️ & faith to help your fellowship flourish!

About

A bot to manage program of the fellowship by assigning a role based on talents

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors