Inspiration

The inspiration for SkillForge came from seeing friends who wanted to learn programming but struggled to stay consistent because they did not know what to learn next. Many of them would start learning a language, become overwhelmed by the number of resources available, and eventually quit because they lacked a clear learning path.

I wanted to create a tool that removes that confusion by generating a structured roadmap, providing practice questions, and giving immediate feedback throughout the learning journey. The goal was to make learning programming feel more guided, organized, and motivating, especially for beginners who often do not know where to start.

Building SkillForge also gave me the opportunity to combine AI with education to create a personalized learning experience that could genuinely help new programmers stay on track and continue progressing.

What it does

SkillForge transforms a static learning roadmap into an interactive coding experience:

  • Users select a programming language (Python, JavaScript, Java, C++, Go)
  • The system generates a 30-day structured learning plan
  • Each day contains topics and coding exercises
  • Users solve coding problems directly in the browser using an embedded editor
  • AI evaluates answers and returns:
    • Correct / Incorrect feedback
    • Explanation and fix suggestions
  • Users earn XP points for correct answers
  • A gamified system tracks:
    • Completed days
    • Progress across the 30-day roadmap
  • Users can request:
    • AI-generated practice questions per day
    • Hints (with XP penalty for advanced hints)
  • A downloadable PDF roadmap is generated for offline use

How we built it

Python is the core engine of SkillForge:

🔹 Backend Logic

  • Handles roadmap generation and transformation
  • Parses and validates AI-generated JSON responses
  • Manages user progress and scoring logic

🔹 Streamlit UI

  • Builds interactive web interface
  • Uses buttons, selectboxes, expanders, and layout columns
  • Displays real-time feedback and progress updates

🔹 Session State Management

  • st.session_state is used to persist:
    • XP system
    • Completed days
    • Practice question results
    • Generated roadmap
    • Achievements, hints and etc.

🔹 AI Integration (Local LLM)

  • Uses OpenAI Python SDK
  • Connected to a local model server (LM Studio / OpenAI-compatible API)
  • Model used: qwen2.5-coder-7b-instruct
  • Responsible for:
    • Roadmap generation
    • Code evaluation
    • Hint generation
    • Practice question creation

Challenges we ran into

During the development of this project, one of the main challenges was connecting the backend logic with the Streamlit frontend. Since this was my first time building a full application using Streamlit, it initially took some time to understand how Streamlit’s execution model and session_state work together to manage dynamic UI updates and persistent data.

Another difficulty was adapting certain features to fit within Streamlit’s limitations, especially around real-time updates, state persistence, and interactive components. Instead of forcing traditional frontend patterns, I had to rethink and redesign parts of the application to align with Streamlit’s reactive nature.

Accomplishments that we're proud of

One of the accomplishments I'm most proud of is successfully building a fully functional AI-powered learning platform that helps users start and stay on track with their programming journey.

I'm also proud that the project addresses a real problem. The idea came from friends who wanted to learn programming but often felt overwhelmed and unsure about what to learn next. SkillForge provides structure and guidance, helping beginners focus on learning instead of spending hours planning.

Perhaps most importantly, this project establishes a strong foundation for future development. While the current version is already functional and useful, it can be expanded into a much larger learning platform with more advanced personalization, improved AI evaluation, and additional learning features. Building this foundation and seeing it work successfully is something I'm especially proud of.

What we learned

This project helped me gain strong practical experience with Streamlit and reactive Python-based UI development. I learned how to quickly build and ship full-stack prototypes using only Python, and how to design applications that work naturally within Streamlit’s architecture.

Most importantly, I discovered how powerful Streamlit can be for rapidly turning backend logic into a functional and interactive frontend, which will significantly speed up my future projects and prototyping workflows.

What's next for SkillForge

One of the biggest improvements I want to make is replacing the current general-purpose LLM workflow with a custom-trained AI system designed specifically for programming education. This would allow SkillForge to provide more personalized learning paths, more accurate code evaluation, and better educational feedback tailored to each learner's progress.

I also plan to add a full authentication and database system so users can create accounts and securely save their progress across sessions. This would enable features such as persistent learning history, cloud-saved roadmaps, achievement tracking, streaks, and personalized recommendations.

Another major focus is expanding the gamification system to keep learners motivated and engaged. Future features could include daily streaks, achievement collections, badges, leaderboards, learning challenges, progression rewards, and milestone celebrations. The goal is to make learning programming feel more rewarding and encourage users to stay consistent throughout their learning journey.

Additional improvements include enhanced progress analytics, support for more programming languages, improved practice question generation, and deeper personalization based on a learner's strengths, weaknesses, and learning goals.

The long-term vision for SkillForge is to evolve from a roadmap generator into a complete AI-powered programming learning platform that helps beginners learn more effectively, stay motivated, and build lasting learning habits.

Live Demo & Access

The public demo for SkillForge is hosted temporarily for demonstration and hackathon evaluation purposes.

If a live demo is available, the latest public demo link can be found on the project's GitHub repository. Please refer to the GitHub page for the most up-to-date access information and deployment status.

Because the application may be hosted on temporary infrastructure during development and testing, the demo link may change or become unavailable in the future. The complete source code, documentation, and setup instructions are included in the repository so the project can still be reviewed and run locally if needed.

Built With

  • ai
  • lm-studio
  • openai
  • python
  • qwen
  • streamlit
Share this project:

Updates