npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

engineer-daily-coach

v1.0.2

Published

A personalized daily learning coach for Engineering Leads delivered via Telegram.

Readme

Engineer Daily Coach (EDC)

EDC is a personalized daily learning platform delivered via Telegram, designed for engineering, preparing for top-tier tech interviews (Amazon, Uber, Flipkart, etc.).

🚀 Features

  • Daily Lessons: 15-20 min modules covering DSA, System Design, and AI.
  • Saturday Revision: Consolidated weekly content for better retention.
  • Sunday Deep Dives: Intensive 30-40 min deep dives into complex topics.
  • Multi-AI Powered: Content generated using Groq (Llama 3), OpenAI (GPT-4o), or Google Gemini.
  • Automatic Fallback: Intelligent switching between AI providers (Groq -> Gemini -> OpenAI) to ensure delivery.
  • Message Chunking: Automatically splits long AI lessons into multiple Telegram messages to bypass the 4096-character limit.
  • Personalized: Content focus adjusts based on your Experience, Role, Weak Topics, and Strong Topics.
  • Automated Delivery: Scheduled delivery at 06:00 PM IST daily.

🛠 Tech Stack

  • Backend: Node.js, Express.js
  • Database: MongoDB (Mongoose)
  • AI: Groq API, OpenAI API, Google Gemini API
  • Messaging: Telegram Bot API (Telegraf)
  • Scheduling: node-cron
  • Validation: Zod
  • Logging: Winston, Morgan

📁 Project Structure

src/
├── config/           # Environment variables & validation
├── database/         # Connection and Mongoose models
├── modules/
│   ├── users/        # User profiles & Personalization Engine
│   ├── progress/     # Progress tracking
│   ├── curriculum/   # Curriculum management logic
│   ├── openai/       # LLM Service (Unified Groq/Gemini/OpenAI) and Prompt Builders
│   ├── telegram/     # Telegram Bot integration (with Message Chunking)
│   ├── scheduler/    # node-cron job definitions
├── shared/           # Utils, Logger, Error Handling
├── app.js            # Express application setup
└── server.js         # Entry point

⚙️ Setup (Standalone Use)

  1. Clone the repository
  2. Install dependencies:
    npm install
  3. Configure Environment: Create a .env file based on .env.example:
    PORT=3000
    MONGODB_URI=your_mongodb_connection_string
       
    # AI Provider Configuration
    AI_PROVIDER=groq # 'groq', 'gemini', or 'openai'
       
    # Groq (Free & Fast - Recommended)
    GROQ_API_KEY=your_groq_key
    GROQ_MODEL=llama-3.3-70b-versatile
       
    # Google Gemini (Free Tier)
    GEMINI_API_KEY=your_gemini_key
    GEMINI_MODEL=gemini-pro
    GEMINI_API_VERSION=v1
       
    # OpenAI (Paid)
    OPENAI_API_KEY=your_openai_key
    OPENAI_MODEL=gpt-4o-mini
       
    TELEGRAM_BOT_TOKEN=your_telegram_bot_token
    NODE_ENV=development
  4. Run the application:
    • Development: npm run dev
    • Production: npm start

📦 NPM Package Usage

You can also use EDC as a dependency in your own project:

  1. Install the package:

    npm install engineer-daily-coach
  2. Initialize in your code: Ensure you have the required environment variables (see .env.example) set in your process environment.

    const edc = require('engineer-daily-coach');
    
    async function startMyBot() {
      try {
        // Starts the scheduler, bot, and health server
        await edc.start({
          port: 3000 // optional health check port
        });
        console.log("EDC Service Started!");
      } catch (err) {
        console.error("Failed to start EDC:", err);
      }
    }
    
    startMyBot();

🧠 AI Priority & Fallback Logic

The system uses a unified LLMService to manage content generation:

  • Priority: Controlled by the AI_PROVIDER environment variable.
  • Fallback: If the primary provider fails (e.g., Quota exceeded or 404), the system automatically cycles through other configured providers to ensure the lesson is delivered.

📡 Telegram Bot Commands

  • /start: Initialize the bot interaction.
  • /register: Interactive profile setup (Experience, Role, Targets, Weak/Strong Topics).
  • /profile: View your current profile settings.
  • /status: Check your current learning progress (Day count).
  • /reset: Delete your profile to restart the registration.

🧪 Helper Scripts

  • Diagnostic Gemini: node scripts/check-gemini.js (Check which Gemini models are available).
  • Seed & Test: TELEGRAM_ID=your_id node scripts/seed-and-test.js (Manually trigger a lesson delivery for testing).

🚀 Deployment

The project is ready for deployment on Render.

  • Build Command: npm install
  • Start Command: npm start
  • Ensure all Environment Variables are configured in the Render dashboard.

⚖️ License

ISC