# MVC-Starter - Project Overview

**Date:** 2026-03-11T11:59:39Z
**Type:** web
**Architecture:** Server-rendered MVC monolith

## Executive Summary

MVC-Starter is a RouteKit Classic ASP starter for building server-rendered MVC applications on Windows IIS. It combines a shared framework/runtime layer in `core/` with application-specific controllers and views in `app/`, and supports database-backed features through Access and VBScript-based scaffolding.

## Project Classification

- **Repository Type:** monolith
- **Project Type(s):** web
- **Primary Language(s):** VBScript, Classic ASP
- **Architecture Pattern:** Starter/framework hybrid MVC monolith

## Technology Stack Summary

- Runtime: Classic ASP on IIS
- Routing/dispatch: RouteKit-style router and MVC dispatcher
- Data: ADO + Microsoft Access
- UI: Bootstrap CDN + server-rendered ASP views
- Tooling: Windows Script Host VBScript scripts

## Key Features

- Front-controller request flow through `public/Default.asp`
- Controller whitelist and dynamic dispatch in `core/mvc.asp`
- Shared header/footer layout for page rendering
- Generator-assisted migrations, repositories, and controllers
- Included starter pages for home and 404 handling

## Architecture Highlights

- Single deployable web app
- Clear split between runtime/framework code and app-specific code
- Config-driven behavior through `public/web.config`
- Manual but structured development workflow through scripts and route/controller wiring

## Development Overview

### Prerequisites

- Windows + IIS + Classic ASP
- IIS URL Rewrite
- Microsoft Access Database Engine
- `cscript` for tooling

### Getting Started

Point IIS at `public/`, update `public/web.config`, then validate the home page loads. Use the provided VBScript generators to create migrations, repositories, and controllers for new features.

### Key Commands

- **Generate migration:** `cscript //nologo scripts\generateMigration.vbs create_my_table`
- **Generate repo:** `cscript //nologo scripts\GenerateRepo.vbs /table:my_table /pk:id`
- **Generate controller:** `cscript //nologo scripts\generateController.vbs MyController "Index;Show(id)"`
- **Run migrations:** `cscript //nologo scripts\runMigrations.vbs status`

## Repository Structure

`public/` is the web entry surface, `core/` is the framework/runtime layer, `app/` is the application layer, `db/` contains database assets, and `scripts/` contains operational tooling.

## Documentation Map

- [index.md](./index.md)
- [architecture.md](./architecture.md)
- [source-tree-analysis.md](./source-tree-analysis.md)
- [development-guide.md](./development-guide.md)
