Skip to content

markhazleton/TeachSpark

πŸŽ“ TeachSpark

License: MIT .NET Node.js Build Status PRs Welcome

Live Site: teach.makeboldspark.com

LLM-Powered Educational Website - A modern, interactive learning platform that harnesses the power of Large Language Models to create personalized educational experiences.

About

TeachSpark is a live demonstration of an AI-powered educational platform built with .NET 10 MVC. It showcases how Large Language Models can be integrated into a modern web application to deliver personalized, adaptive learning experiences.

Live Site: teach.makeboldspark.com

Built by Mark Hazleton β€” Technical Solutions Architect Part of the MakeBoldSpark portfolio of technical demonstrations.

🌟 Overview

TeachSpark is a cutting-edge educational platform built with .NET 10 MVC and powered by advanced Large Language Models. It provides an intelligent, adaptive learning environment that personalizes content delivery based on individual learning patterns and preferences.

✨ Key Features

  • πŸ€– AI-Powered Learning - Intelligent content adaptation using LLM technology
  • πŸ“š Interactive Curriculum - Dynamic course content with real-time feedback
  • 🎯 Personalized Pathways - Customized learning journeys for each student
  • πŸ“Š Progress Analytics - Comprehensive learning analytics and insights
  • 🌐 Modern Web Experience - Responsive design with world-class UX
  • ⚑ High Performance - Optimized frontend build system with webpack

πŸš€ Quick Start

Prerequisites

  • .NET 10 SDK or later (the repo pins SDK 10.0.101 via global.json)
  • Node.js 18.x or later
  • Git for version control

Installation

  1. Clone the repository

    git clone https://github.com/MarkHazleton/TeachSpark.git
    cd TeachSpark
  2. Install dependencies

    # Install root-level dependencies (Husky, lint-staged)
    npm install
    
    # Install frontend dependencies
    cd TeachSpark.Web
    npm install
  3. Build the application

    # From TeachSpark.Web directory
    npm run build
    
    # Or build the .NET solution (automatically runs npm build)
    dotnet build TeachSpark.sln
  4. Run the application

    # Development mode with hot reloading
    npm run dev
    
    # Or run the .NET application
    dotnet run
  5. Open your browser Navigate to http://localhost:5000 (or the port specified in your configuration)

πŸ—οΈ Architecture

TeachSpark is built with a modern, scalable architecture:

Backend

  • Framework: .NET 10 MVC
  • Language: C#
  • Architecture: Clean Architecture principles
  • Database: Entity Framework Core (configurable provider)

Frontend

  • Build System: Webpack 5 with modern optimization
  • Styling: Bootstrap 5 through the repository's webpack-managed SCSS pipeline
  • JavaScript: ES6+ with Babel compilation
  • Quality Tools: ESLint, Prettier, Stylelint
  • Asset Management: Automated bundling and optimization

Development Tools

  • Git Hooks: Husky for pre-commit automation
  • Code Quality: Automated linting and formatting
  • Bundle Analysis: Webpack Bundle Analyzer
  • Hot Reloading: Development server with live updates

πŸ“ Project Structure

TeachSpark/
β”œβ”€β”€ πŸ“ .husky/                    # Git hooks configuration
β”œβ”€β”€ πŸ“ .vscode/                   # VS Code settings
β”œβ”€β”€ πŸ“ TeachSpark.Web/            # Main web application
β”‚   β”œβ”€β”€ πŸ“ Controllers/           # MVC Controllers
β”‚   β”œβ”€β”€ πŸ“ Models/                # Data models and view models
β”‚   β”œβ”€β”€ πŸ“ Views/                 # Razor views
β”‚   β”œβ”€β”€ πŸ“ src/                   # Frontend source files
β”‚   β”‚   β”œβ”€β”€ πŸ“ js/                # JavaScript modules
β”‚   β”‚   β”œβ”€β”€ πŸ“ scss/              # SCSS stylesheets
β”‚   β”‚   └── πŸ“„ favicon.ico        # Static assets
β”‚   β”œβ”€β”€ πŸ“ wwwroot/               # Generated static files
β”‚   β”œβ”€β”€ πŸ“„ webpack.config.js      # Webpack configuration
β”‚   β”œβ”€β”€ πŸ“„ package.json           # Frontend dependencies
β”‚   └── πŸ“„ *.config.js            # Build tool configurations
β”œβ”€β”€ πŸ“„ TeachSpark.sln             # Visual Studio solution
β”œβ”€β”€ πŸ“„ README.md                  # This file
β”œβ”€β”€ πŸ“„ LICENSE                    # MIT License
└── πŸ“„ package.json               # Root-level dependencies

πŸ› οΈ Development

Available Scripts

From the TeachSpark.Web directory:

# Development
npm run dev              # Start development server with hot reloading
npm run watch            # Build in watch mode

# Building
npm run build            # Production build
npm run build:dev        # Development build
npm run build:analyze    # Build with bundle analysis

# Code Quality
npm run lint             # Run ESLint
npm run lint:fix         # Fix ESLint issues
npm run lint:css         # Run Stylelint
npm run lint:css:fix     # Fix Stylelint issues
npm run format           # Format code with Prettier
npm run format:check     # Check code formatting
npm run quality          # Run all quality checks
npm run quality:fix      # Fix all auto-fixable issues

# Maintenance
npm run clean            # Clean build artifacts
npm run clean:all        # Clean everything and recreate directories

Code Quality Standards

This project maintains high code quality standards with automated tooling:

  • ESLint: JavaScript linting with modern ES6+ rules
  • Prettier: Consistent code formatting
  • Stylelint: SCSS/CSS linting and best practices
  • Pre-commit hooks: Repository-defined pre-commit automation
  • Husky + lint-staged: Only lint changed files for faster commits

Build System

TeachSpark uses a modern webpack-based build system that provides:

  • πŸ”„ Hot Module Replacement for instant development feedback
  • πŸ“¦ Code Splitting for optimal loading performance
  • πŸ—œοΈ Asset Optimization with minification and compression
  • πŸ”— Content Hashing for cache invalidation
  • πŸ“Š Bundle Analysis for performance monitoring

For detailed build system documentation, see .documentation/teachspark-web/build-system-documentation.md.

Project documentation that should not live beside code is organized under .documentation/guide.md.

🀝 Contributing

We welcome contributions from the community! Please see our Contributing Guidelines for details on how to get started.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes following our coding standards
  4. Run quality checks (npm run quality)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Guidelines

  • Follow the existing code style and conventions
  • Write clear, descriptive commit messages
  • Add tests for new functionality
  • Update documentation for significant changes
  • All commits should run the repository's defined quality checks before review

πŸ“‹ Issues and Support

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


⭐ Star this repository if you find it helpful!

TeachSpark β€” built by Mark Hazleton Β· MakeBoldSpark