{"_id":"@codejoy/random-learner","_rev":"4-4562412cf4faaeaea7285d388152247d","name":"@codejoy/random-learner","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@codejoy/random-learner","version":"1.0.0","keywords":["learning","quiz","education","random","popup","ai","programming","electron","desktop-app","openai","gemini","questions","study","coding","java","python","database","oop","artificial-intelligence"],"author":{"name":"CodeJoy","email":"support@codejoy.dev"},"license":"MIT","_id":"@codejoy/random-learner@1.0.0","maintainers":[{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"}],"homepage":"https://github.com/codejoy-org/random-learner#readme","bugs":{"url":"https://github.com/codejoy-org/random-learner/issues"},"os":["darwin","win32","linux"],"bin":{"random-learner":"bin/random-learner.js"},"dist":{"shasum":"6f1f62cf5a5a6f5dbae23bbd4d17689d5dda3393","tarball":"https://registry.npmjs.org/@codejoy/random-learner/-/random-learner-1.0.0.tgz","fileCount":22,"integrity":"sha512-LIxazmBZzV2I762QTmipeE4QdQZwK4r+xkbor4vhXoF29vfefT1jqlmP2JbvvYtt49HikZ5BUEIXWyykOd7PDw==","signatures":[{"sig":"MEUCIHKt37L53ZzpWoZJsITJtuo09iKFf+TYm/7Q8drW5nKnAiEAn2PGDGXeCWXtZAlgRAWd4vhhS0qSuKLwk/Iuz5TWl1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2644917},"main":"src/index.js","engines":{"npm":">=8.0.0","node":">=16.0.0"},"gitHead":"f6fe062a833f88b1fc3be9c8d9a7fcdd0a037ca4","scripts":{"dev":"nodemon --exec electron src/index.js","test":"echo \"No tests specified\" && exit 0","build":"echo \"Build completed\"","start":"electron src/index.js","postinstall":"echo \"Random Learner installed successfully! Run 'random-learner' to start.\"","prepublishOnly":"npm test"},"_npmUser":{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"},"repository":{"url":"git+https://github.com/codejoy-org/random-learner.git","type":"git"},"_npmVersion":"11.3.0","description":"An intelligent learning companion that displays random popup quiz questions with AI-powered content generation to help users learn programming concepts on-the-go","directories":{},"_nodeVersion":"24.2.0","dependencies":{"openai":"^4.0.0","electron":"^26.0.0","readline-sync":"^1.4.10","electron-store":"^8.1.0","@google/generative-ai":"^0.24.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.0.1","electron-builder":"^24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/random-learner_1.0.0_1756129538620_0.6673799960892597","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@codejoy/random-learner","version":"1.0.1","keywords":["learning","quiz","education","random","popup","ai","programming","electron","desktop-app","openai","gemini","questions","study","coding","java","python","database","oop","artificial-intelligence"],"author":{"name":"CodeJoy","email":"support@codejoy.dev"},"license":"MIT","_id":"@codejoy/random-learner@1.0.1","maintainers":[{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"}],"homepage":"https://github.com/codejoy-org/random-learner#readme","bugs":{"url":"https://github.com/codejoy-org/random-learner/issues"},"os":["darwin","win32","linux"],"bin":{"random-learner":"bin/random-learner.js"},"dist":{"shasum":"6835d47c80adfa30450557109909fc1165d00e62","tarball":"https://registry.npmjs.org/@codejoy/random-learner/-/random-learner-1.0.1.tgz","fileCount":22,"integrity":"sha512-C3RuEJKanXwQA2+m3wACniSCUK3W8J2DLE/RgQvpFfUCyQfXLxSX340Z1/qDCHPJOc1O9N8c1AvoDIrAJvKRFw==","signatures":[{"sig":"MEYCIQCl1UFkZAtQh0ecWE5G7yDcFkDqY3BMum63HC29ioOwxQIhAK0TWl3szMfY6Z36uKNJkWXiQx5+oNMCfuHv7QFUUJKH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2644917},"main":"src/index.js","engines":{"npm":">=8.0.0","node":">=16.0.0"},"gitHead":"f6fe062a833f88b1fc3be9c8d9a7fcdd0a037ca4","scripts":{"dev":"nodemon --exec electron src/index.js","test":"echo \"No tests specified\" && exit 0","build":"echo \"Build completed\"","start":"electron src/index.js","postinstall":"echo \"Random Learner installed successfully! Run 'random-learner' to start.\"","prepublishOnly":"npm test"},"_npmUser":{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"},"repository":{"url":"git+https://github.com/codejoy-org/random-learner.git","type":"git"},"_npmVersion":"11.3.0","description":"An intelligent learning companion that displays random popup quiz questions with AI-powered content generation to help users learn programming concepts on-the-go","directories":{},"_nodeVersion":"24.2.0","dependencies":{"openai":"^4.0.0","electron":"^26.0.0","readline-sync":"^1.4.10","electron-store":"^8.1.0","@google/generative-ai":"^0.24.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.0.1","electron-builder":"^24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/random-learner_1.0.1_1756129705820_0.39572652852985524","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@codejoy/random-learner","version":"1.0.2","keywords":["learning","quiz","education","random","popup","ai","programming","electron","desktop-app","openai","gemini","questions","study","coding","java","python","database","oop","artificial-intelligence"],"author":{"name":"CodeJoy","email":"support@codejoy.dev"},"license":"MIT","_id":"@codejoy/random-learner@1.0.2","maintainers":[{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"}],"homepage":"https://github.com/SujithKandamuri/lerner#readme","bugs":{"url":"https://github.com/SujithKandamuri/lerner/issues"},"os":["darwin","win32","linux"],"bin":{"random-learner":"bin/random-learner.js"},"dist":{"shasum":"e4c55d03d3c90abd20c2e6ff79a1c5d4a732be90","tarball":"https://registry.npmjs.org/@codejoy/random-learner/-/random-learner-1.0.2.tgz","fileCount":22,"integrity":"sha512-zWOkAmjpiH2o5lg5rOYu4Bl/EwCDcfXZ3SpBEby4AOtvAUT+hrm6uyDdxLF2TSID7J75Tj7GI3xg8D6fk0URBg==","signatures":[{"sig":"MEUCIQCanyaaPcM64afhbZt+ctPndsMLYkzJ9IYK87KgZQiXDQIgMOoP+QpSu7HKP2cwncVBc2/8UlyDQuij7yDpDsvFILA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2644905},"main":"src/index.js","engines":{"npm":">=8.0.0","node":">=16.0.0"},"gitHead":"f6fe062a833f88b1fc3be9c8d9a7fcdd0a037ca4","scripts":{"dev":"nodemon --exec electron src/index.js","test":"echo \"No tests specified\" && exit 0","build":"echo \"Build completed\"","start":"electron src/index.js","postinstall":"echo \"Random Learner installed successfully! Run 'random-learner' to start.\"","prepublishOnly":"npm test"},"_npmUser":{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"},"repository":{"url":"git+https://github.com/SujithKandamuri/lerner.git","type":"git"},"_npmVersion":"11.3.0","description":"An intelligent learning companion that displays random popup quiz questions with AI-powered content generation to help users learn programming concepts on-the-go","directories":{},"_nodeVersion":"24.2.0","dependencies":{"openai":"^4.0.0","electron":"^26.0.0","readline-sync":"^1.4.10","electron-store":"^8.1.0","@google/generative-ai":"^0.24.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.0.1","electron-builder":"^24.13.3"},"_npmOperationalInternal":{"tmp":"tmp/random-learner_1.0.2_1756130111878_0.03201607812461327","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@codejoy/random-learner","version":"2.0.0","description":"A comprehensive interview preparation and learning companion with AI-powered questions, mock interviews, skill assessments, and company-specific question sets for technical job interviews","main":"src/index.js","bin":{"random-learner":"bin/random-learner.js"},"scripts":{"start":"electron src/index.js","dev":"nodemon --exec electron src/index.js","build":"echo \"Build completed\"","test":"echo \"No tests specified\" && exit 0","prepublishOnly":"npm test","postinstall":"echo \"Random Learner installed successfully! Run 'random-learner' to start.\""},"keywords":["interview-preparation","mock-interviews","skill-assessment","company-questions","learning","quiz","education","ai","programming","electron","desktop-app","openai","gemini","questions","study","coding","java","python","database","oop","artificial-intelligence","google","amazon","meta","microsoft","apple","netflix","uber","faang","technical-interviews","coding-interviews","system-design","behavioral-interviews","weakness-detection","analytics","progress-tracking"],"author":{"name":"CodeJoy","email":"support@codejoy.dev"},"license":"MIT","homepage":"https://github.com/SujithKandamuri/lerner#readme","repository":{"type":"git","url":"git+https://github.com/SujithKandamuri/lerner.git"},"bugs":{"url":"https://github.com/SujithKandamuri/lerner/issues"},"dependencies":{"@google/generative-ai":"^0.24.1","electron":"^26.0.0","electron-store":"^8.1.0","openai":"^4.0.0","readline-sync":"^1.4.10"},"devDependencies":{"electron-builder":"^24.13.3","nodemon":"^3.0.1"},"engines":{"node":">=16.0.0","npm":">=8.0.0"},"os":["darwin","win32","linux"],"publishConfig":{"access":"public"},"_id":"@codejoy/random-learner@2.0.0","gitHead":"2ec4ef065c81d37ad01b940e010b3e1862db26ba","_nodeVersion":"24.2.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-+IDVO8+B7WK8tnw6u/hbtLtD5xRDO31QQRZJ7cRw8yljMmoqefCbUCTDNoeE3uhbJSIlmOR/E/Co/azJycYeyA==","shasum":"73b99eccf7b143b287fd0407c5a5657c62187a68","tarball":"https://registry.npmjs.org/@codejoy/random-learner/-/random-learner-2.0.0.tgz","fileCount":33,"unpackedSize":2982427,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDXVcZ4V4nOnQguvB1IuHPTaJQfFUOlTbadFz4n96PifAIhAM0Kcl5RQSrM8PCz6WMuIKc0LDu0jLCrJVat9jrqyUbc"}]},"_npmUser":{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"},"directories":{},"maintainers":[{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/random-learner_2.0.0_1756190242749_0.4097847421681371"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-25T13:45:38.544Z","modified":"2025-08-26T06:37:23.222Z","1.0.0":"2025-08-25T13:45:38.952Z","1.0.1":"2025-08-25T13:48:26.193Z","1.0.2":"2025-08-25T13:55:12.148Z","2.0.0":"2025-08-26T06:37:23.011Z"},"bugs":{"url":"https://github.com/SujithKandamuri/lerner/issues"},"author":{"name":"CodeJoy","email":"support@codejoy.dev"},"license":"MIT","homepage":"https://github.com/SujithKandamuri/lerner#readme","keywords":["interview-preparation","mock-interviews","skill-assessment","company-questions","learning","quiz","education","ai","programming","electron","desktop-app","openai","gemini","questions","study","coding","java","python","database","oop","artificial-intelligence","google","amazon","meta","microsoft","apple","netflix","uber","faang","technical-interviews","coding-interviews","system-design","behavioral-interviews","weakness-detection","analytics","progress-tracking"],"repository":{"type":"git","url":"git+https://github.com/SujithKandamuri/lerner.git"},"description":"A comprehensive interview preparation and learning companion with AI-powered questions, mock interviews, skill assessments, and company-specific question sets for technical job interviews","maintainers":[{"name":"sujithkandamuri","email":"ksnvsujith@gmail.com"}],"readme":"# Random Learner 🧠 v2.0.0\n\n[![npm version](https://badge.fury.io/js/%40codejoy%2Frandom-learner.svg)](https://badge.fury.io/js/%40codejoy%2Frandom-learner)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js Version](https://img.shields.io/badge/node-%3E%3D16.0.0-brightgreen)](https://nodejs.org/)\n\n**The Ultimate Interview Preparation & Learning Companion** 🚀\n\nA comprehensive desktop application that transforms your interview preparation with AI-powered mock interviews, skill assessments, company-specific question sets, and intelligent learning analytics. Perfect for developers preparing for technical interviews at top tech companies!\n\n## 🎯 **What's New in v2.0.0**\n\n### 🏢 **Company-Specific Interview Prep**\n- **8 Major Tech Companies**: Google, Amazon, Meta, Microsoft, Apple, Netflix, Uber, Startups\n- **AI-Generated Questions**: Authentic company-style questions tailored to each company's interview process\n- **One-Click Download**: Get 25-60 questions per company with real-time progress tracking\n\n### 🎯 **Mock Interview System**\n- **6 Interview Types**: Technical General, Frontend, Backend, Full-Stack, Data Science, Quick Practice\n- **Real-Time Scoring**: Live performance tracking with detailed feedback\n- **Company-Specific Modes**: Practice with actual company interview styles and difficulty levels\n\n### 🧠 **AI-Powered Weakness Detection**\n- **Smart Analysis**: AI identifies your knowledge gaps and weak areas\n- **Targeted Practice**: Automatically serves questions focused on your weaknesses\n- **Progress Tracking**: Monitor improvement in specific skill areas over time\n\n### 🏆 **Comprehensive Skill Assessment**\n- **Multi-Dimensional Evaluation**: Technical, Problem-Solving, Speed, Communication skills\n- **Experience Level Classification**: Junior, Mid-Level, Senior, Expert with salary benchmarks\n- **Interview Readiness Score**: Data-driven assessment of your interview preparedness\n- **Industry Benchmarking**: Compare your skills against industry standards\n\n### 📊 **Advanced Learning Analytics**\n- **Interactive Dashboard**: Beautiful charts and graphs showing your learning progress\n- **Performance Metrics**: Success rates, response times, topic mastery, and streaks\n- **AI Insights**: Personalized recommendations and study plans\n- **Export Capabilities**: Download your progress data and analytics\n\n## 📦 Installation\n\n### Option 1: Install via npm (Recommended)\n\n```bash\nnpm install -g @codejoy/random-learner\n```\n\nThen run:\n```bash\nrandom-learner\n```\n\n### Option 2: Clone and Run Locally\n\n```bash\ngit clone https://github.com/codejoy-org/random-learner.git\ncd random-learner\nnpm install\nnpm start\n```\n\n## 🚀 Quick Start\n\n1. **Install the app**: `npm install -g @codejoy/random-learner`\n2. **Run it**: `random-learner`\n3. **Configure**: Right-click the tray icon → Settings\n4. **Add AI**: Enter your OpenAI or Gemini API key (optional)\n5. **Learn**: Questions will start appearing automatically!\n\n## ✨ Features\n\n### 🎯 **Core Learning Features**\n- **Random Question Popups**: Questions appear randomly every 2-10 minutes\n- **Multiple Choice Questions**: Easy-to-answer format with clickable options\n- **Instant Feedback**: Get immediate results with explanations\n- **Level-Based Learning**: Beginner, Intermediate, and Advanced questions\n- **Topic-Focused Questions**: OOP, Java, Python, AI, and Databases\n\n### 🤖 **AI-Powered Features**\n- **OpenAI Integration**: Generate unlimited questions using GPT\n- **Custom Prompts**: Customize how AI generates questions\n- **Enhanced Feedback**: AI-powered explanations for wrong answers\n- **Dynamic Topics**: Ask AI about any programming topic\n- **Smart Validation**: AI validates and explains your answers\n\n### ⚙️ **Customization & Settings**\n- **Comprehensive Settings Page**: Configure every aspect of your learning\n- **Topic Preferences**: Choose which topics to focus on\n- **Difficulty Selection**: Select your preferred learning levels\n- **Timing Controls**: Customize popup intervals (2-120 minutes)\n- **UI Preferences**: Always on top, auto-close settings\n\n### 🎨 **User Experience**\n- **Beautiful Modern UI**: Gradient-based design with smooth animations\n- **Keyboard Shortcuts**: Quick navigation (1-4 for options, Enter, Esc)\n- **Menu Bar Integration**: Easy access to settings and manual questions\n- **Question Metadata**: See topic, level, and source (static vs AI)\n- **Enhanced Feedback**: Visual indicators for AI-generated content\n\n## Installation\n\n1. **Clone or download this project**\n2. **Install dependencies**:\n   ```bash\n   npm install\n   ```\n\n## 🚀 Quick Start\n\n1. **Install dependencies**:\n   ```bash\n   npm install\n   ```\n\n2. **Start the application**:\n   ```bash\n   npm start\n   ```\n\n3. **For development** (with auto-restart):\n   ```bash\n   npm run dev\n   ```\n\n## 🎮 How to Use\n\n### **Basic Usage**\n- The app runs in the background after starting\n- Random questions popup every 2-10 minutes (configurable)\n- Click options or use keyboard shortcuts (1-4)\n- Press Enter to submit, Esc to skip\n- Windows auto-close after showing results\n\n### **Accessing Settings**\n- **Menu**: Random Learner → Settings\n- **Keyboard**: Cmd/Ctrl + Comma (,)\n- Configure OpenAI, topics, difficulty, timing, and UI preferences\n\n### **OpenAI Setup** (Optional but Recommended)\n1. Get your API key from [OpenAI Platform](https://platform.openai.com/api-keys)\n2. Open Settings (Cmd/Ctrl + ,)\n3. Enter your API key in the OpenAI section\n4. Enable \"Use OpenAI for question generation\"\n5. Optionally customize the generation prompt\n\n### **Manual Questions**\n- **Menu**: Random Learner → Show Question Now\n- **Keyboard**: Cmd/Ctrl + Q\n\n## 📚 Built-in Question Bank\n\n### **Topics Covered**\n- **Object-Oriented Programming (OOP)**: Classes, inheritance, polymorphism, encapsulation\n- **Java**: JVM, syntax, exceptions, keywords, best practices  \n- **Python**: Data types, list comprehensions, functions, GIL, libraries\n- **Artificial Intelligence**: Machine learning, neural networks, algorithms\n- **Databases**: SQL, normalization, joins, ACID properties, NoSQL\n- **General Programming**: Web development, algorithms, version control\n\n### **Difficulty Levels**\n- **Beginner**: Basic concepts and terminology\n- **Intermediate**: Practical applications and deeper understanding\n- **Advanced**: Complex scenarios and expert-level knowledge\n\n**Total Questions**: 60+ static questions across all topics and levels\n\n## Keyboard Shortcuts\n\n- **1, 2, 3, 4**: Select answer options A, B, C, D\n- **Enter**: Submit selected answer\n- **Escape**: Skip question and close window\n\n## 🛠 Advanced Configuration\n\n### **Settings Management**\n- **Export/Import**: Backup and share your settings (excluding API keys)\n- **Reset to Defaults**: Restore original configuration\n- **Live Updates**: Changes apply immediately without restart\n\n### **OpenAI Prompt Customization**\nThe default prompt can be customized in Settings. Use these placeholders:\n- `{topic}`: Will be replaced with the selected topic\n- `{level}`: Will be replaced with the difficulty level\n\n**Default Prompt Structure**:\n- Requests specific question format (4 options, 1 correct)\n- Asks for concise explanations (2-3 sentences)\n- Focuses on practical, applicable knowledge\n- Ensures appropriate difficulty level\n\n### **Adding Static Questions**\nAdd questions to `src/quizManager.js` in the `levelBasedQuestions` object:\n\n```javascript\n{\n  id: 606,\n  question: \"Your question here?\",\n  options: [\"Option A\", \"Option B\", \"Option C\", \"Option D\"],\n  correct: 0, // Index of correct answer (0-3)\n  level: \"intermediate\", // beginner/intermediate/advanced\n  topic: \"databases\", // oops/java/python/ai/databases\n  explanation: \"Explanation of the correct answer\"\n}\n```\n\n## 🔧 Technology Stack\n\n- **Electron**: Cross-platform desktop applications\n- **Node.js**: Backend runtime and logic\n- **OpenAI API**: AI-powered question generation and feedback\n- **electron-store**: Persistent settings storage\n- **HTML/CSS/JavaScript**: Modern frontend interface\n- **IPC (Inter-Process Communication)**: Secure process communication\n\n## Project Structure\n\n```\nlerner/\n├── package.json           # Project configuration and dependencies\n├── README.md             # This documentation\n└── src/\n    ├── index.js          # Main Electron app with menu and IPC\n    ├── quizManager.js    # Static question bank and quiz logic\n    ├── openAIManager.js  # OpenAI integration and prompt management\n    ├── settingsManager.js # Settings persistence and management\n    ├── question.html     # Question popup UI\n    └── settings.html     # Settings page UI\n```\n\n## 🤝 Contributing\n\nFeel free to contribute by:\n- **Adding Questions**: Expand the static question bank\n- **New Topics**: Add support for more programming topics\n- **UI/UX Improvements**: Enhance the visual design and user experience\n- **Advanced Features**: Progress tracking, statistics, spaced repetition\n- **Bug Fixes**: Report and fix issues\n- **OpenAI Prompts**: Share effective prompt templates\n\n## 🎯 Future Enhancements\n\n- **Spaced Repetition**: Questions repeat based on your performance\n- **Progress Tracking**: Statistics and learning analytics\n- **Custom Topics**: User-defined subject areas\n- **Team Mode**: Share questions and compete with colleagues\n- **Mobile App**: Companion mobile application\n- **Plugin System**: Extensible architecture for custom features\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🚀 Publishing & Development\n\n### Development Setup\n\n```bash\ngit clone https://github.com/codejoy-org/random-learner.git\ncd random-learner\nnpm install\nnpm run dev  # Runs with nodemon for auto-restart\n```\n\n### Publishing to npm\n\n```bash\n# Build and test\nnpm run build\nnpm test\n\n# Publish (requires @codejoy npm organization access)\nnpm publish\n```\n\n## 🙏 Acknowledgments\n\n- Built with Electron for cross-platform desktop support\n- Uses OpenAI GPT and Google Gemini for intelligent question generation\n- Inspired by the need for continuous learning in our busy lives\n\n## 📞 Support\n\n- **Issues**: [GitHub Issues](https://github.com/codejoy-org/random-learner/issues)\n- **Email**: support@codejoy.dev\n- **NPM Package**: [@codejoy/random-learner](https://www.npmjs.com/package/@codejoy/random-learner)\n\n---\n\n**Happy Learning! 🚀**\n","readmeFilename":"README.md"}