Skip to content

aIi-raza/Agent-Based-Smart-Architect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agent-Based Smart Architect

A rule-based, multi-stage layout generator built for the Agent-Based Software Engineering course. It takes user-specified plot dimensions, floor count, and room requirements, then runs a pipeline of coordination functions (referred to in the codebase as "agents") to zone, lay out, wall, furnish, and connect rooms into a schematic house design.

Project Status

This repository was originally built as a team coursework project. I'm using it as a personal QA and testing practice ground: identifying defects, writing test coverage, and documenting fixes the way I would on a real codebase, rather than rewriting the project from scratch. Treat the sections below as a living audit log rather than a finished changelog.

How It Works

The system runs five sequential stages, coordinated through a shared blackboard object rather than independent decision-making agents:

  1. Zoning — assigns room types to floors based on simple priority rules (master suite first, then bedrooms, then ground-floor core rooms)
  2. Layout — divides each floor into a hallway "spine" with left/right wings, then proportionally splits wing space across assigned rooms by weight
  3. Structural — derives wall segments from the resulting room rectangles
  4. Interior — places hardcoded furniture per room type (bed, sofa, table, etc.)
  5. Connectivity — infers door placement based on which rooms touch each other

Note: despite the naming, these are deterministic functions, not autonomous or LLM-based agents. No external APIs, search, or learned reasoning are involved.

Known Issues / Defects Log

Documenting these openly is part of the point — this is what I'd flag in a QA review of this codebase:

  • Room minimum dimensions are defined but unenforced. Every room type in ROOM_SPECS has a minDim value (e.g. bathrooms require 6ft minimum), but LayoutAgent never reads it. Rooms are sized purely by proportional weight against available space, so a small plot or high room count can produce undersized, architecturally invalid rooms.
  • No feasibility validation before generation. There's no check that a given plot size can actually accommodate the requested room count at minimum standards. This likely causes failed or malformed generations on smaller inputs rather than a clear error message.
  • No automated tests exist, despite a CI workflow expecting npm test to pass.
  • No input validation on the requirements form for edge cases (zero rooms, negative dimensions, floor count exceeding plot size, etc.)

Planned QA Work

  • Write unit tests for ZoningAgent, LayoutAgent, StructuralAgent, and ConnectivityAgent in isolation
  • Add edge case tests: minimum plot size, zero/negative dimensions, single-room input, maximum floor count
  • Enforce minDim constraints in the layout solver and add a feasibility check with a clear user-facing error
  • Fix or rewrite the existing GitHub Actions CI workflow so it reflects real test coverage instead of failing silently
  • Document expected vs. actual behavior for each defect above with reproduction steps

Tech Stack

JavaScript, React, CSS, HTML

Getting Started

git clone https://github.com/aIi-raza/Agent-Based-Smart-Architect
cd Agent-Bassed-Smart-Architect
npm install
npm start

Then open http://localhost:3000.

Original Project Context

Built as a team project for the Agent-Based Software Engineering course at Air University. Original authorship: SE-Muhammad-Shamoil and team. This fork/copy is maintained independently for personal QA practice and is not affiliated with the original course submission.

About

This repository is used as a personal QA practice project to analyze an existing codebase, identify defects, and improve reliability through testing and structured documentation.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors