PHPackages                             jongi-theautodidact/ntoshisoft-framework - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. jongi-theautodidact/ntoshisoft-framework

ActiveProject[Framework](/categories/framework)

jongi-theautodidact/ntoshisoft-framework
========================================

NtoshiSoft Framework - Lightweight PHP MVC framework for rapid business application development. Built for small to medium-sized business applications, featuring a CLI tool, modular architecture, and user-centric identity model.

v1.0.0(1mo ago)07GPL-3.0-or-laterPHPPHP &gt;=8.0

Since May 30Pushed 1w agoCompare

[ Source](https://github.com/Jongi-TheAutodidact/ntoshisoft-framework)[ Packagist](https://packagist.org/packages/jongi-theautodidact/ntoshisoft-framework)[ Docs](https://github.com/Jongi-TheAutodidact/ntoshisoft-framework)[ RSS](/packages/jongi-theautodidact-ntoshisoft-framework/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

 [![NtoshiSoft Framework](https://raw.githubusercontent.com/Jongi-TheAutodidact/ntoshisoft-framework/main/public/assets/img/logos/logo.png)](https://raw.githubusercontent.com/Jongi-TheAutodidact/ntoshisoft-framework/main/public/assets/img/logos/logo.png)NtoshiSoft Framework
====================

[](#ntoshisoft-framework)

**Lightweight PHP MVC Framework for Rapid Business Application Development**

[![PHP Version](https://camo.githubusercontent.com/4c73639daea46b26b4391d70c970bb6e25a155cd3d283a293b8af2a03887d076/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344382e302d3737374242343f7374796c653d666c61742d737175617265266c6f676f3d706870)](https://php.net)[![License: GPL v3](https://camo.githubusercontent.com/829c26aa8b202d567203f280b9b1d5229bbfa39a4e4d55e893b364e829b8034f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c76332d626c75652e7376673f7374796c653d666c61742d737175617265)](https://www.gnu.org/licenses/gpl-3.0)[![GitHub release](https://camo.githubusercontent.com/b4272d3b392fb28d783f5b9f4935fe6ee8fd062baf3182a57394d0558f9d395c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f4a6f6e67692d5468654175746f6469646163742f6e746f736869736f66742d6672616d65776f726b3f7374796c653d666c61742d737175617265)](https://github.com/Jongi-TheAutodidact/ntoshisoft-framework/releases)[![GitHub stars](https://camo.githubusercontent.com/7815f9040b765fe984e48accfdbf9ff92ae7667ef939823af9b7aea7b8b08c92/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f4a6f6e67692d5468654175746f6469646163742f6e746f736869736f66742d6672616d65776f726b3f7374796c653d666c61742d737175617265)](https://github.com/Jongi-TheAutodidact/ntoshisoft-framework/stargazers)

*Built for small to medium-sized businesses, startups, and solo developers who want to ship functional applications fast — without the overhead of enterprise frameworks.*

[Getting Started](#getting-started) • [CLI Tool](#cli-tool) • [Documentation](#documentation) • [Contributing](#contributing)

---

Features
--------

[](#features)

- **Lightweight MVC** — Clean separation of concerns with Models, Views, and Controllers
- **User-Centric Identity** — Everyone registers as a `users` first; role-specific profiles (Employee, Client, etc.) link back via `user_id`
- **CLI Generator** (`jongi`) — Scaffold controllers, models, migrations from the terminal
- **Migration System** — Version-controlled database schema changes
- **Built-in Auth** — Session management, CSRF protection, password hashing, role-based access
- **Mailer Integration** — SMTP email via PHPMailer (password resets, notifications)
- **Payment Gateway** — Extensible payment processing (PayFast ready)
- **Image Handler** — Upload, resize, and manage images
- **Validator** — Form input validation with error feedback
- **Logger** — File-based logging with rotating logs
- **Environment Config** — `.env` file management via `EnvLoader`/`EnvWriter`
- **Installation Wizard** — 6-step web-based setup for first-time deployment

---

Requirements
------------

[](#requirements)

RequirementMinimumPHP8.0 or higherPDO Extension`pdo_mysql`GD LibraryImage processingcURLHTTP requestsFileinfoMIME type detectionmbstringMulti-byte string handlingJSONData serializationMySQL5.7+ or MariaDB 10.3+ComposerDependency management**Web Server**Apache (mod\_rewrite) or Nginx---

Getting Started
---------------

[](#getting-started)

### Option 1: Install via Composer (Recommended)

[](#option-1-install-via-composer-recommended)

```
composer create-project jongi-theautodidact/ntoshisoft-framework my-app
cd my-app
```

### Option 2: Clone from GitHub

[](#option-2-clone-from-github)

```
git clone https://github.com/Jongi-TheAutodidact/ntoshisoft-framework.git
cd ntoshisoft-framework
composer install
```

Or [download the ZIP](https://github.com/Jongi-TheAutodidact/ntoshisoft-framework/archive/refs/heads/main.zip), extract, and run `composer install`.

---

Post-Installation: Running the Setup Wizard
-------------------------------------------

[](#post-installation-running-the-setup-wizard)

After installation, the framework guides you through a **6-step web-based wizard** to configure your application.

### 1. Live Server Prerequisite

[](#1-live-server-prerequisite)

> **Important:** On a live server, before running the install wizard, you **must** rename `.htaccess-bkp` to `.htaccess` in the project root. Without this, the browser will display a blank page because Apache URL rewriting will not be active.

```
mv .htaccess-bkp .htaccess
```

This step is **not required** on localhost (XAMPP) since the app is accessed directly via the `public/` directory.

### 2. Copy the Environment File

[](#2-copy-the-environment-file)

```
cp .env.example .env
```

### 3. Open the Installer in Your Browser

[](#3-open-the-installer-in-your-browser)

Navigate to the appropriate URL for your environment:

EnvironmentURL**Localhost (XAMPP)**`http://localhost/{project-directory}/public`**Live Server**`https://your-domain.com`> **Note:** The app is served via Apache (XAMPP or production). Do **not** use `php jongi serve` or `php jongi spinit` — the framework is designed to run through a proper web server.

You'll be redirected to the **Installation Wizard** (`install.php`).

### 4. Complete the 6-Step Wizard

[](#4-complete-the-6-step-wizard)

The wizard will walk you through:

StepWhat You'll Configure**1. Welcome &amp; Requirements**Server checks (PHP version, extensions, permissions)**2. Database**MySQL host, database name, credentials**3. Tables**Creates `users` and `settings` tables**4. Admin Account**Your super-admin login credentials**5. Site Settings**App name, logo upload**6. Mail &amp; Finalize**SMTP settings (optional — skip to do later)Once complete, the `.env` file is written automatically and you're redirected to your application.

### 5. Log In

[](#5-log-in)

Navigate to your app URL and log in using the admin credentials you created during setup.

---

What's Included Out of the Box
------------------------------

[](#whats-included-out-of-the-box)

The installation wizard creates **only two default tables**:

TablePurpose`users`Admin and user accounts`settings`Application configuration (site name, colors, etc.)These are the minimum tables needed for the framework to function (authentication and basic settings).

### Ships With — But Not Auto-Migrated

[](#ships-with--but-not-auto-migrated)

The framework also includes **example migrations, models, controllers, and CRUD views** in the codebase. These are provided as **reference implementations** — ready-made examples you can study, adapt, or use as a starting point for your own project.

> **Do not migrate all migrations during setup.** Running every included migration would create tables you may never use and clutter your database. Instead:
>
> 1. Browse `app/migrations/`, `app/models/`, `app/controllers/`, and `app/views/` to see what's available.
> 2. Pick only the ones relevant to your project.
> 3. Create your own migrations, models, and controllers as your project dictates.

This keeps your database lean and your application tailored to your specific needs.

---

Web Server Configuration
------------------------

[](#web-server-configuration)

### Apache (with mod\_rewrite)

[](#apache-with-mod_rewrite)

The framework ships with a `.htaccess` file inside `public/` that handles URL rewriting. No additional configuration needed if `.htaccess` is enabled.

For a cleaner setup (optional), move the rewrite rules to the root:

```

    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]

```

### Nginx

[](#nginx)

```
server {
    listen 80;
    server_name my-app.local;
    root /path/to/my-app/public;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?url=$uri&$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
```

---

CLI Tool (`jongi`)
------------------

[](#cli-tool-jongi)

The framework includes a **command-line scaffolding tool** to accelerate development.

```
php jongi help
```

### Available Commands

[](#available-commands)

#### Scaffolding

[](#scaffolding)

CommandDescription`php jongi make:controller `Generate a new controller`php jongi make:model `Generate a new model`php jongi make:migration `Generate a new migration file`php jongi list:migrations`List all migration files### Scaffolding Examples

[](#scaffolding-examples)

```
# Create a controller
php jongi make:controller Product

# Create a model (table name auto-pluralized: products)
php jongi make:model Product

# Create a migration
php jongi make:migration create_products_table
```

---

Directory Structure
-------------------

[](#directory-structure)

```
ntoshisoft-framework/
├── app/
│   ├── config/          # Route definitions
│   ├── controllers/     # Application controllers
│   ├── core/            # Framework engine (Database, Model, Router, etc.)
│   ├── jongi/           # CLI tool classes
│   ├── middleware/       # Auth, role, rate-limit middleware
│   ├── migrations/       # Database migration files
│   └── models/          # Data models
│   └── views/           # Presentation templates (.ntoshi.php)
├── logs/                # Application logs
├── public/              # Web root (index.php entry point)
│   └── assets/          # CSS, JS, images, uploads
├── vendor/              # Composer dependencies
├── .env                 # Environment configuration (gitignored)
├── .gitignore
├── composer.json
├── index.php            # Install check & redirect to public/
├── install.php          # Setup wizard
├── jongi                # CLI entry point
└── README.md

```

### Key Framework Files

[](#key-framework-files)

FilePurpose`public/index.php`Application entry point — bootstraps routing`app/core/init.php`Loads Composer autoloader (delegates to `vendor/autoload.php`)`app/core/config.php`Defines constants from `.env` (DB, app, mail, security settings)`app/core/functions.php`Global helper functions`app/core/Database.php`PDO database wrapper (queries, transactions, error handling)`app/core/Model.php`Base trait for all models (CRUD, query building, pagination)`app/core/Controller.php`Base trait — view rendering, data passing`app/core/Router.php`URL dispatcher — matches routes to controllers`app/core/Middleware.php`Base middleware class`app/config/routes.php`Define your application routes here---

Configuration
-------------

[](#configuration)

The `.env` file is created automatically during the installation wizard. Key variables:

```
# Database
DB_HOST=localhost
DB_NAME=my_app_db
DB_USER=root
DB_PASS=""

# Application
APP_NAME="My Application"
ROOT="http://localhost/ntoshisoft-framework/public"
APP_ENV=production
DEBUG=false

# Mail (optional)
MAIL_HOST=smtp.gmail.com
MAIL_USERNAME=your@email.com
MAIL_PASSWORD="your-app-password"

# Security
SESSION_LIFETIME=120
CSRF_TOKEN_LENGTH=32
```

> **Note:** On a live server, `ROOT` will be set to `https://your-domain.com` (without `/public`). On localhost (XAMPP), it will be `http://localhost/{project-directory}/public`.

> **Security:** The `.env` file is excluded from Git via `.gitignore`. Never commit it to version control.

---

Built With
----------

[](#built-with)

- [PHPMailer](https://github.com/PHPMailer/PHPMailer) — Email sending
- [Dompdf](https://github.com/dompdf/dompdf) — PDF generation
- [Bootstrap 5](https://getbootstrap.com) — Frontend UI (included in assets)
- [Bootstrap Icons](https://icons.getbootstrap.com) — Icon library

---

License
-------

[](#license)

This project is licensed under the **GNU General Public License v3.0** — see the [LICENSE](https://www.gnu.org/licenses/gpl-3.0) for details.

---

 Built with ❤️ by [Jongi Mbodla](https://github.com/Jongi-TheAutodidact)
 NtoshiSoft Framework — Making business applications accessible to everyone.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance94

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

56d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6805057a53659d6680f01d87d1a03beae8948d90238aabfded89cfeff0588d77?d=identicon)[Jongi-TheAutodidact](/maintainers/Jongi-TheAutodidact)

---

Top Contributors

[![TheTechKaffir](https://avatars.githubusercontent.com/u/113806218?v=4)](https://github.com/TheTechKaffir "TheTechKaffir (14 commits)")

---

Tags

phpframeworkmvcphp-clirapid-developmentlightweight php frameworkPHP CRMNtoshiSoftbusiness applications

### Embed Badge

![Health badge](/badges/jongi-theautodidact-ntoshisoft-framework/health.svg)

```
[![Health](https://phpackages.com/badges/jongi-theautodidact-ntoshisoft-framework/health.svg)](https://phpackages.com/packages/jongi-theautodidact-ntoshisoft-framework)
```

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
