Project Info
Inspiration
Have you ever gone to start a new assignment or learn a new coding framework but felt like you were missing gaps from prior knowledge that you saw years ago? How about trying to follow YouTube videos and not being sure if they are covering the correct part of the topic? This VS Code extension allows you to take any assignments, and then provides all knowledge needed to fill in the gaps and completely understand the assignment. No more wondering if you are missing required prior knowledge or unnecessarily complicated YouTube videos, learn exactly what you need through practice tailored directly to your necessities.
What it does
Simplicity is an intelligent, project-based learning platform built directly into Visual Studio Code. It allows users to automatically generate tailored, hands-on learning plans for various programming languages. These learning plans focus on milestone-driven progress, with each step presented as a commented-out instructional guide within a generated playground file. Simplicity helps developers quickly ramp up on new languages or deepen their expertise by guiding them through real-world projects without ever leaving their coding environment.
How we built it
We built Simplicity using TypeScript and integrated it as a VS Code extension. The extension interacts with the GROQ SDK to fetch dynamic learning content via the LLaMA 3 large language model, which generates comprehensive, language-specific milestones and instructional comments. We implemented file handling, workspace management, and automated content generation through the VS Code API, ensuring seamless integration with the developer’s workflow. The extension also dynamically comments out all instructional content to prevent code execution errors, utilizing specific syntax for any programming language.
Challenges we ran into
A key challenge was efficiently managing workspace folders and file creation within the VS Code environment. Handling the creation of files in various languages while ensuring no raw code would lead to execution errors required carefully designing how comments were inserted based on language syntax. The prompt does not need to specify a language, but if one is specified the entire environment shifts around that language. Additionally, integrating the GROQ API for dynamic content generation while maintaining performance and responsiveness within the IDE was challenging, especially with rate limits and token size constraints in the model responses.
Accomplishments we're proud of
We’re proud of successfully embedding a powerful learning tool directly into the VS Code ecosystem, enabling real-time, interactive project-based learning without leaving the editor. The seamless integration of the GROQ API and the efficient handling of multi-language support in a single extension is a major technical accomplishment. We also managed to optimize the extension’s performance to ensure minimal overhead on the developer’s environment, making it both practical and easy to use.
What we learned
Through this project, we deepened our knowledge of the VS Code API, particularly in managing workspaces, files, and dynamically generated content. We gained experience with API rate limiting and learned best practices for leveraging large language models in real-time developer tools. Additionally, we learned how to make project-based learning more intuitive and developer-friendly by focusing on automated content generation that respects the user's coding workflow.
What's next
Next, we plan to extend Simplicity’s functionality by introducing collaborative learning environments where multiple users can generate shared learning plans. We aim to enhance the generated content by integrating more detailed project blueprints, covering advanced programming paradigms such as concurrency, distributed systems, and machine learning. We also plan to incorporate more granular control over milestones, allowing users to set learning objectives based on specific technologies or frameworks.
Simplicity Extension for VS Code
Simplicity is an intelligent, project-based learning platform built directly into Visual Studio Code. It allows users to automatically generate personalized, hands-on learning plans for various programming languages. With milestone-driven progress, each step is presented as a commented-out instructional guide inside a generated playground file, making it easy to learn or deepen expertise without leaving the coding environment.
Features
- Automatically generates learning plans based on user-defined goals.
- Supports multiple programming languages with smart inference from user prompts.
- Provides milestone-based challenges that increase in difficulty.
- Allows code evaluation and feedback directly in the playground file.
- Offers an additional feature to generate detailed explanations of topics or code snippets.
Table of Contents
Setup
Prerequisites
Before using Simplicity, ensure you have the following installed and/or set-up:
- Groq API Key*
- Node.js (v14 or higher)
- npm
Configuring the Extension
- Clone the repository:
git clone https://github.com/vishruthb/simplicity/
cd simplicity
OR
Download the binary .vsix file from releases and install using command palette in VS Code.
- Create the
config.jsonfile:
{
"groqApiKey": "<YOUR_GROQ_API_KEY>"
}
-
Install dependencies:
npm install -
Compile typescript to check for any errors:
npm run compile
Usage
Commands
All interactions with the Simplicity extension are done via the Visual Studio Code Command Palette (Ctrl + Shift + P or Cmd + Shift + P on macOS). Below are the available commands:
- Simplicity: Initialize Learning Path
- Starts the learning plan creation process.
- Simplicity: Validate User Code
- Evaluates your code to see if it passes the current milestone’s test cases.
- Simplicity: Explain Topic
- Generates a Markdown file that explains a programming topic or code snippet.
Learning Path Workflow
- Initialize Learning Path:
- Use
Simplicity: Initialize Learning Pathfrom the Command Palette. - You will be prompted to describe what you'd like to learn, such as:
- "Learning object-oriented programming in Java"
- "Master data structures in Python"
Based on your prompt, Simplicity will infer the programming language and create the first milestone in a playground file (
playground.<language>). Each milestone is a mini-task that helps you work towards your goal.
- Work through Milestones:
- Each milestone is a new challenge or task that builds on the previous one.
- The playground file will contain commented-out instructions, including:
- A problem description
- Function signatures to implement
- Test cases to pass
- Evaluate Your Code:
- After completing the task in the playground file, use the
Simplicity: Validate User Codecommand to check if your solution works. - If successful, the next milestone will be automatically generated.
- If not, you’ll receive feedback to help debug your solution.
Explanation Workflow
- Explain a Topic:
- Use the
Simplicity: Explain Topiccommand. - Enter a programming topic or code snippet that you want to understand better (e.g., "recursion in Python" or "how to use promises in JavaScript").
- Simplicity will generate a detailed Markdown (.md) file with a concise explanation, a simple example, and a more advanced example. The examples are designed to teach the topic progressively.
- Use the
How it Works
Intelligent Project-Based Learning
Simplicity’s core feature is its intelligent learning path generation. It creates personalized learning plans for various programming topics by:
- Understanding User Goals: You enter a natural-language prompt, and the extension uses Groq to infer the appropriate language and create milestones.
- Step-by-Step Progress: Milestones are designed to increase in difficulty, guiding users from beginner-level tasks to more complex challenges. Each task is provided with clear instructions, function signatures, and test cases.
- Adaptive Learning Experience: With all milestones and evaluations occurring within the VS Code playground file, users never have to leave their development environment to learn.
Developer Tool Integration
Simplicity is designed as a developer tool for learning new languages or sharpening existing skills directly in VS Code. It integrates deeply with the IDE:
- Command Palette Integration: All interactions are done via the command palette, keeping the workflow simple and IDE-centric.
- Real-Time Code Evaluation: Once you’ve completed a milestone task, you can immediately test your solution by running the
Simplicity: Validate User Codecommand, providing immediate feedback. - Markdown Documentation: The
Explain Topiccommand generates Markdown files, which are easy to read, edit, and share.
*Integrations for other providers coming soon! :)
Analysis
View
Metric
- 12
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- JavaScriptIn code
- TypeScriptIn code
- Node.jsClaimed
2 of 3 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
21 KB
Source files
6
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
vishruthb/simplicity
17 files · 128 KB · @ feddffe
Structure
Application logic
3 files · 18%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript71%
- Markdown25%
- JavaScript4%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 8- groq-sdk
- +7 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.