<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zheus Leiandre Codez Cajote</title>
    <description>The latest articles on DEV Community by Zheus Leiandre Codez Cajote (@zheyuse).</description>
    <link>https://dev.to/zheyuse</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3866688%2F40838dd4-cd3d-450f-8bb9-0fb7583ee737.jpeg</url>
      <title>DEV Community: Zheus Leiandre Codez Cajote</title>
      <link>https://dev.to/zheyuse</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zheyuse"/>
    <language>en</language>
    <item>
      <title>Examlock</title>
      <dc:creator>Zheus Leiandre Codez Cajote</dc:creator>
      <pubDate>Sat, 18 Apr 2026 02:42:51 +0000</pubDate>
      <link>https://dev.to/zheyuse/examlock-257m</link>
      <guid>https://dev.to/zheyuse/examlock-257m</guid>
      <description>&lt;h1&gt;
  
  
  ExamLock
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Secure exams, live classroom workflows, and real-time proctor intervention.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  DEMO
&lt;/h1&gt;


&lt;div class="ltag-netlify"&gt;
  &lt;iframe src="https://examlock.netlify.app/" title="Netlify embed"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;


&lt;p&gt;ExamLock is more than a lock screen for tests. It is a full classroom and assessment platform with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Flutter mobile app for both students and teachers&lt;/li&gt;
&lt;li&gt;Role-based home layouts (RBAC) for student and teacher workflows&lt;/li&gt;
&lt;li&gt;A web dashboard used mainly for larger-screen convenience and expanded operations&lt;/li&gt;
&lt;li&gt;Shared real-time data and notifications through Firebase&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What ExamLock Covers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Classroom management (create/join/archive classes)&lt;/li&gt;
&lt;li&gt;Post workflows (announcements, files, and activities)&lt;/li&gt;
&lt;li&gt;Exam creation (timer, question sheet, security settings)&lt;/li&gt;
&lt;li&gt;Live proctor monitoring with lock/unlock controls&lt;/li&gt;
&lt;li&gt;Submission review, auto-checking, manual essay scoring, and grade exports&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mobile App Features (RBAC: Student + Teacher)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Role-aware authentication (email/password + Google Sign-In)&lt;/li&gt;
&lt;li&gt;Role-based routing and home layouts (&lt;code&gt;student&lt;/code&gt; and &lt;code&gt;teacher&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Student Side (Mobile)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Join classes using class code&lt;/li&gt;
&lt;li&gt;View class stream with announcements, files, and activities&lt;/li&gt;
&lt;li&gt;Take exams with countdown timer and continuous answer auto-save&lt;/li&gt;
&lt;li&gt;Exam pass (&lt;code&gt;exampass&lt;/code&gt;) before start (if required)&lt;/li&gt;
&lt;li&gt;Lock passcode re-entry if exam is locked&lt;/li&gt;
&lt;li&gt;Anti-screenshot support&lt;/li&gt;
&lt;li&gt;Anti-copy/paste restrictions&lt;/li&gt;
&lt;li&gt;Immersive mode + background detection during active exam&lt;/li&gt;
&lt;li&gt;Real-time exam status sync (&lt;code&gt;Good&lt;/code&gt;, &lt;code&gt;Warning&lt;/code&gt;, &lt;code&gt;Locked&lt;/code&gt;, &lt;code&gt;Ended&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;View graded results and score details&lt;/li&gt;
&lt;li&gt;Notifications and unseen grade indicators&lt;/li&gt;
&lt;li&gt;Archive handling for joined classes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrm2lsrd0moitu3qtxfu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrm2lsrd0moitu3qtxfu.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Teacher Side (Mobile)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Dedicated teacher home layout with sections such as Classes, Activities, Notes, Students, Sheet, and Archive&lt;/li&gt;
&lt;li&gt;Create and manage classes&lt;/li&gt;
&lt;li&gt;Publish announcements, files, and activities&lt;/li&gt;
&lt;li&gt;Configure exam security (&lt;code&gt;antiScreenshot&lt;/code&gt;, &lt;code&gt;antiCopyPaste&lt;/code&gt;, &lt;code&gt;examLock&lt;/code&gt;, &lt;code&gt;randomize&lt;/code&gt;, passcode, exampass)&lt;/li&gt;
&lt;li&gt;Build or attach test sheets and answer keys&lt;/li&gt;
&lt;li&gt;Monitor students during active exams (test room flow)&lt;/li&gt;
&lt;li&gt;Review submissions and grading flows&lt;/li&gt;
&lt;li&gt;Manage students, class archive, and teacher notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcq31t4yj6q9ya67kd1n7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcq31t4yj6q9ya67kd1n7.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Web Dashboard (Teacher/Proctor) Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Web is primarily the teacher convenience layer for bigger screens and faster class operations&lt;/li&gt;
&lt;li&gt;Teacher-only web login and role validation&lt;/li&gt;
&lt;li&gt;Class management: create classes, share class code, manage enrollment, archive/unarchive/delete&lt;/li&gt;
&lt;li&gt;Post management: announcements, file/link posts, and activity posts&lt;/li&gt;
&lt;li&gt;Activity types: &lt;code&gt;exam&lt;/code&gt;, &lt;code&gt;quiz&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;, &lt;code&gt;assignment&lt;/code&gt;, &lt;code&gt;homework&lt;/code&gt;, &lt;code&gt;prelim&lt;/code&gt;, &lt;code&gt;midterm&lt;/code&gt;, &lt;code&gt;semi-finals&lt;/code&gt;, &lt;code&gt;finals&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Activity security setup: countdown, anti-screenshot, anti-copy/paste, randomize, exam lock, passcode, exampass&lt;/li&gt;
&lt;li&gt;Saved sheet attachment and reusable test sheet management&lt;/li&gt;
&lt;li&gt;Real-time Test Room with status cards, lock/unlock, and lock all/unlock all&lt;/li&gt;
&lt;li&gt;Turn-in review with objective auto-check and manual essay scoring&lt;/li&gt;
&lt;li&gt;Class record controls: category percentage weights + Excel export&lt;/li&gt;
&lt;li&gt;Personal teacher notes and profile/password management&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technologies&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mobile (Student + Teacher App)&lt;/td&gt;
&lt;td&gt;Flutter, Dart, Material UI, &lt;code&gt;flutter_windowmanager_plus&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web (Teacher Dashboard)&lt;/td&gt;
&lt;td&gt;HTML5, CSS3, Vanilla JavaScript (ES modules), Firebase Web SDK&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend/Data&lt;/td&gt;
&lt;td&gt;Firebase Realtime Database, Firebase Authentication, Cloud Firestore&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notifications&lt;/td&gt;
&lt;td&gt;Firebase Cloud Messaging (FCM), Cloud Functions (&lt;code&gt;cloud_functions/&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;Firebase Hosting, Netlify scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Platform Architecture
&lt;/h2&gt;

&lt;p&gt;ExamLock runs as a dual-client system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mobile client (&lt;code&gt;lib/&lt;/code&gt;): student and teacher experiences under RBAC&lt;/li&gt;
&lt;li&gt;Web client (&lt;code&gt;web/&lt;/code&gt;): teacher-focused convenience interface for larger displays and extended workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both clients read/write shared Firebase nodes for classes, posts, testroom status, submissions, and scores.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use (Student Mobile)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Sign up/login and select &lt;strong&gt;Student&lt;/strong&gt; role.&lt;/li&gt;
&lt;li&gt;Join a class using the class code provided by your teacher.&lt;/li&gt;
&lt;li&gt;Open the activity/exam from your class feed.&lt;/li&gt;
&lt;li&gt;Enter exam pass if required, then start the exam.&lt;/li&gt;
&lt;li&gt;Answer questions while timer and progress auto-save run in real time.&lt;/li&gt;
&lt;li&gt;If locked, enter the required passcode to continue.&lt;/li&gt;
&lt;li&gt;Submit before timeout and review grades/results when released.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to Use (Teacher: Mobile or Web)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Login using a &lt;strong&gt;Teacher&lt;/strong&gt; account (mobile app or web portal).&lt;/li&gt;
&lt;li&gt;Create/open a class, then share class code with students.&lt;/li&gt;
&lt;li&gt;Create posts:&lt;/li&gt;
&lt;li&gt;Announcement for updates&lt;/li&gt;
&lt;li&gt;File/link for materials&lt;/li&gt;
&lt;li&gt;Activity for exams/quizzes/tests/assignments&lt;/li&gt;
&lt;li&gt;For activities, set security/timer options and attach or create a test sheet.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Test Room&lt;/strong&gt; during live exams to monitor students and lock/unlock as needed (mobile or web).&lt;/li&gt;
&lt;li&gt;Review turn-ins, score essays, and publish/update grades.&lt;/li&gt;
&lt;li&gt;Use web for heavier convenience tasks like class record percentage setup and Excel export.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ExamLock is designed as a full classroom + assessment system, not only exam locking.&lt;/li&gt;
&lt;li&gt;Real-time behavior depends on Firebase Realtime Database synchronization.&lt;/li&gt;
&lt;li&gt;For production, enforce strict Firebase Security Rules and role-based access.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>teacher</category>
      <category>students</category>
      <category>exam</category>
      <category>lock</category>
    </item>
    <item>
      <title>ML CLI - M LHUILLIER FILE GENERATOR</title>
      <dc:creator>Zheus Leiandre Codez Cajote</dc:creator>
      <pubDate>Mon, 13 Apr 2026 06:17:40 +0000</pubDate>
      <link>https://dev.to/zheyuse/ml-cli-m-lhuillier-file-generator-40ao</link>
      <guid>https://dev.to/zheyuse/ml-cli-m-lhuillier-file-generator-40ao</guid>
      <description>&lt;h2&gt;
  
  
  GITHUB REPO
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ZheyUse" rel="noopener noreferrer"&gt;
        ZheyUse
      &lt;/a&gt; / &lt;a href="https://github.com/ZheyUse/mlhuillier" rel="noopener noreferrer"&gt;
        mlhuillier
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;ML CLI (M Lhuillier)&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;ML CLI is a Windows-first PHP command-line toolkit for scaffolding projects, managing a shared user database, and automating common local development workflows.&lt;/p&gt;
&lt;p&gt;It is designed for teams building multiple PHP apps (typically under XAMPP) that need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fast project bootstrap&lt;/li&gt;
&lt;li&gt;consistent folder/file structure&lt;/li&gt;
&lt;li&gt;centralized user account storage&lt;/li&gt;
&lt;li&gt;quick RBAC/PBAC table provisioning&lt;/li&gt;
&lt;li&gt;repeatable backup and update workflows&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What This System Does&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;ML CLI provides one command surface (&lt;code&gt;ml&lt;/code&gt;) for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creating starter PHP project structures&lt;/li&gt;
&lt;li&gt;Navigating quickly between projects under &lt;code&gt;C:\xampp\htdocs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Opening projects in browser (&lt;code&gt;http://localhost/&amp;lt;project&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Importing and testing a shared &lt;code&gt;userdb&lt;/code&gt; schema&lt;/li&gt;
&lt;li&gt;Creating user accounts from terminal prompts&lt;/li&gt;
&lt;li&gt;Creating project-specific RBAC and PBAC tables in &lt;code&gt;userdb&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Configuring and running MySQL schema backups via &lt;code&gt;mysqldump&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Checking and applying CLI updates from GitHub&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Core Purpose&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This repository solves repetitive setup work for local PHP development on Windows.&lt;/p&gt;
&lt;p&gt;Instead of manually creating files, wiring auth tables, and…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ZheyUse/mlhuillier" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  DOCUMENTATIONS
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://zheyuse.github.io/mlhuillier/documentation/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;zheyuse.github.io&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h1&gt;
  
  
  ML CLI (M Lhuillier)
&lt;/h1&gt;

&lt;p&gt;ML CLI is a Windows-first PHP command-line toolkit for scaffolding projects, managing a shared user database, and automating common local development workflows.&lt;/p&gt;

&lt;p&gt;It is designed for teams building multiple PHP apps (typically under XAMPP) that need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fast project bootstrap&lt;/li&gt;
&lt;li&gt;consistent folder/file structure&lt;/li&gt;
&lt;li&gt;centralized user account storage&lt;/li&gt;
&lt;li&gt;quick RBAC/PBAC table provisioning&lt;/li&gt;
&lt;li&gt;repeatable backup and update workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This System Does
&lt;/h2&gt;

&lt;p&gt;ML CLI provides one command surface (&lt;code&gt;ml&lt;/code&gt;) for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating starter PHP project structures&lt;/li&gt;
&lt;li&gt;Navigating quickly between projects under &lt;code&gt;C:\xampp\htdocs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Opening projects in browser (&lt;code&gt;http://localhost/&amp;lt;project&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Importing and testing a shared &lt;code&gt;userdb&lt;/code&gt; schema&lt;/li&gt;
&lt;li&gt;Creating user accounts from terminal prompts&lt;/li&gt;
&lt;li&gt;Creating project-specific RBAC and PBAC tables in &lt;code&gt;userdb&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Configuring and running MySQL schema backups via &lt;code&gt;mysqldump&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Checking and applying CLI updates from GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Core Purpose
&lt;/h2&gt;

&lt;p&gt;This repository solves repetitive setup work for local PHP development on Windows.&lt;/p&gt;

&lt;p&gt;Instead of manually creating files, wiring auth tables, and writing one-off DB scripts for every project, you can run a small set of &lt;code&gt;ml&lt;/code&gt; commands and start building features immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Windows (PowerShell / CMD)&lt;/li&gt;
&lt;li&gt;PHP CLI installed (XAMPP &lt;code&gt;C:\xampp\php\php.exe&lt;/code&gt; is auto-detected)&lt;/li&gt;
&lt;li&gt;MySQL/MariaDB access&lt;/li&gt;
&lt;li&gt;Internet access for remote helper downloads/updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Optional:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js (only for rebuilding docs JSON)&lt;/li&gt;
&lt;li&gt;VS Code CLI (&lt;code&gt;code&lt;/code&gt;) for &lt;code&gt;ml nav&lt;/code&gt; open-in-editor flow&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Option A: Standard Installer (recommended)
&lt;/h3&gt;

&lt;p&gt;From the repository root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;install&lt;/span&gt;&lt;span class="na"&gt;-ml&lt;/span&gt;.bat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What it does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;installs CLI runtime to &lt;code&gt;C:\ML CLI\Tools&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;copies shell wrapper(s)&lt;/li&gt;
&lt;li&gt;updates user PATH&lt;/li&gt;
&lt;li&gt;installs version metadata (&lt;code&gt;VERSION&lt;/code&gt;, &lt;code&gt;version.txt&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After install, open a new terminal and verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="na"&gt;--v
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Option B: Local Developer Install
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;php&lt;/span&gt; &lt;span class="kd"&gt;ml&lt;/span&gt;&lt;span class="na"&gt;-local&lt;/span&gt;.php
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also pass a custom destination:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;php&lt;/span&gt; &lt;span class="kd"&gt;ml&lt;/span&gt;&lt;span class="na"&gt;-local&lt;/span&gt;.php &lt;span class="s2"&gt;"C:\Some\Path"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  PowerShell Wrapper Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\install-wrappers.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This installs wrappers to &lt;code&gt;%USERPROFILE%\bin&lt;/code&gt; and updates your PowerShell profile/PATH behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create project
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="kd"&gt;create&lt;/span&gt; &lt;span class="kd"&gt;my&lt;/span&gt;&lt;span class="na"&gt;-project
&lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="kd"&gt;my&lt;/span&gt;&lt;span class="na"&gt;-project
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Set DB values in &lt;code&gt;.env&lt;/code&gt; (especially &lt;code&gt;USERDB_NAME&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Import and test shared user database&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="kd"&gt;add&lt;/span&gt; &lt;span class="kd"&gt;userdb&lt;/span&gt;
&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="kd"&gt;test&lt;/span&gt; &lt;span class="kd"&gt;userdb&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Create access-control tables for this project
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="kd"&gt;create&lt;/span&gt; &lt;span class="na"&gt;--rbac &lt;/span&gt;&lt;span class="kd"&gt;my_project&lt;/span&gt;
&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="kd"&gt;create&lt;/span&gt; &lt;span class="na"&gt;--pbac &lt;/span&gt;&lt;span class="kd"&gt;my_project&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Create first account
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="kd"&gt;create&lt;/span&gt; &lt;span class="na"&gt;--a
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Open app in browser
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="kd"&gt;serve&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Command Reference
&lt;/h2&gt;

&lt;h3&gt;
  
  
  General
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ml --h&lt;/code&gt; : show help&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml --v&lt;/code&gt; : show installed version&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml --c&lt;/code&gt; : check remote version&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml update&lt;/code&gt; : update installed CLI files&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml --d&lt;/code&gt; : download installer helper&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml doc&lt;/code&gt; / &lt;code&gt;ml docs&lt;/code&gt; : open hosted docs site&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project / Workflow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ml create &amp;lt;project_name&amp;gt;&lt;/code&gt; : scaffold a new project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml nav&lt;/code&gt; : interactive navigation under &lt;code&gt;C:\xampp\htdocs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml nav --&amp;lt;project_name&amp;gt;&lt;/code&gt; : jump directly to project&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml nav --new&lt;/code&gt; : jump to &lt;code&gt;C:\xampp\htdocs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml serve [project_name]&lt;/code&gt; : open project URL in browser&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Database / UserDB
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ml test &amp;lt;database&amp;gt;&lt;/code&gt; : test DB connection&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml test userdb&lt;/code&gt; : userdb-specific connectivity check&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml add userdb&lt;/code&gt; : import userdb schema SQL&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml create --config&lt;/code&gt; : create backup config JSON&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml --b [schema|all]&lt;/code&gt; : backup one/all schemas&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Account / Access Control
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ml create --a&lt;/code&gt; : interactive account creation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml create --rbac &amp;lt;project_name&amp;gt;&lt;/code&gt; : create &lt;code&gt;&amp;lt;project_name&amp;gt;_rbac&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml create --pbac &amp;lt;project_name&amp;gt;&lt;/code&gt; : create &lt;code&gt;&amp;lt;project_name&amp;gt;_pbac&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Generated Project Scaffold
&lt;/h2&gt;

&lt;p&gt;The scaffolder (&lt;code&gt;generate-file-structure.php&lt;/code&gt;) creates a complete starter app including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;src/config&lt;/code&gt; (env/db/auth/session/csrf/middleware/error helpers)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/controllers&lt;/code&gt;, &lt;code&gt;src/models&lt;/code&gt;, &lt;code&gt;src/pages&lt;/code&gt;, &lt;code&gt;src/modals&lt;/code&gt;, &lt;code&gt;src/templates&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;public&lt;/code&gt;, &lt;code&gt;public/api&lt;/code&gt;, &lt;code&gt;public/components&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;starter UI/layout files (&lt;code&gt;index.php&lt;/code&gt;, CSS templates, modal/components)&lt;/li&gt;
&lt;li&gt;project &lt;code&gt;.env&lt;/code&gt; and starter &lt;code&gt;README.md&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Database Model
&lt;/h2&gt;

&lt;p&gt;Main shared database: &lt;code&gt;userdb&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Included migrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;migration/userdb/userdb_users.sql&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;migration/userdb/userdb_userlogs.sql&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;users&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Important columns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id_number&lt;/code&gt; (unique)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;username&lt;/code&gt; (unique)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;firstname&lt;/code&gt;, &lt;code&gt;middlename&lt;/code&gt;, &lt;code&gt;lastname&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;role&lt;/code&gt; (default &lt;code&gt;Public&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;password&lt;/code&gt; (hashed)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dateCreated&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;userlogs&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Important columns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;log_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;id_number&lt;/code&gt; (FK -&amp;gt; &lt;code&gt;users.id_number&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;last_online&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dateModified&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project RBAC Table
&lt;/h3&gt;

&lt;p&gt;Created by &lt;code&gt;ml create --rbac &amp;lt;project_name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;table name: &lt;code&gt;&amp;lt;project_name&amp;gt;_rbac&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PK: &lt;code&gt;&amp;lt;project_name&amp;gt;_no&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;includes &lt;code&gt;id_number&lt;/code&gt; FK and &lt;code&gt;user_role&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project PBAC Table
&lt;/h3&gt;

&lt;p&gt;Created by &lt;code&gt;ml create --pbac &amp;lt;project_name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;table name: &lt;code&gt;&amp;lt;project_name&amp;gt;_pbac&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PK: &lt;code&gt;&amp;lt;project_name&amp;gt;_no&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;includes &lt;code&gt;id_number&lt;/code&gt; FK, &lt;code&gt;access_level&lt;/code&gt;, &lt;code&gt;permissions&lt;/code&gt; (text/JSON-style payload)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Account Creation Behavior
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;account-insert.php&lt;/code&gt; / &lt;code&gt;ml create --a&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reads nearest &lt;code&gt;.env&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;requires valid &lt;code&gt;USERDB_NAME&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;prompts for ID, first/last name, role&lt;/li&gt;
&lt;li&gt;generates username from last name + ID&lt;/li&gt;
&lt;li&gt;stores password as a hash (&lt;code&gt;password_hash&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;inserts default user log status&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Backup Workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Configure backup settings:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="kd"&gt;create&lt;/span&gt; &lt;span class="na"&gt;--config
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This writes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;C:\ML CLI\Tools\mlcli-config.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Run backup:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="na"&gt;--b
&lt;/span&gt;&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="na"&gt;--b &lt;/span&gt;&lt;span class="kd"&gt;userdb&lt;/span&gt;
&lt;span class="kd"&gt;ml&lt;/span&gt; &lt;span class="na"&gt;--b &lt;/span&gt;&lt;span class="kd"&gt;all&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Backups are written under:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;C:\ML CLI\Backup\BACKUP_MM-DD-YY\&amp;lt;schema&amp;gt;\&amp;lt;schema&amp;gt;.sql&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Update and Versioning
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Local version source: &lt;code&gt;VERSION&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;CLI constant in &lt;code&gt;ml.bat&lt;/code&gt;: &lt;code&gt;ML_VERSION&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Check remote: &lt;code&gt;ml --c&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Apply update: &lt;code&gt;ml update&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Batch version bump helper (repo maintenance):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;php&lt;/span&gt; &lt;span class="kd"&gt;v&lt;/span&gt;.php &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kd"&gt;new&lt;/span&gt;&lt;span class="na"&gt;-version&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;v.php&lt;/code&gt; updates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ml.bat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;install-ml.bat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;uninstall-ml.bat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VERSION&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Uninstall
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;uninstall&lt;/span&gt;&lt;span class="na"&gt;-ml&lt;/span&gt;.bat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uninstaller removes installed runtime (&lt;code&gt;C:\ML CLI\Tools&lt;/code&gt;), PATH entries, and wrapper/profile artifacts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation Site
&lt;/h2&gt;

&lt;p&gt;This repo includes a static docs app in &lt;code&gt;documentation/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Build command metadata JSON from &lt;code&gt;ml.bat&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run docs:build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Watch mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run docs:watch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;documentation/assets/data/commands.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open docs page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;documentation/index.html&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Repository Structure
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ml.bat&lt;/code&gt;, &lt;code&gt;ml.cmd&lt;/code&gt;, &lt;code&gt;ml.ps1&lt;/code&gt; : command entry points/wrappers&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;generate-file-structure.php&lt;/code&gt; : main scaffolder&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;generate-file-remote.php&lt;/code&gt; : remote loader stub&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ml-nav.php&lt;/code&gt;, &lt;code&gt;ml-serve.php&lt;/code&gt;, &lt;code&gt;ml-update.php&lt;/code&gt; : workflow helpers&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;account-insert.php&lt;/code&gt;, &lt;code&gt;userdb-import.php&lt;/code&gt;, &lt;code&gt;userdb-con-test.php&lt;/code&gt; : DB/account utilities&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rbac/&lt;/code&gt;, &lt;code&gt;pbac/&lt;/code&gt; : access-control table generators&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;backup-cli/&lt;/code&gt;, &lt;code&gt;db-config/&lt;/code&gt; : backup tooling&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;migration/&lt;/code&gt; : SQL sources&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;documentation/&lt;/code&gt; : docs website assets&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;scripts/&lt;/code&gt; : docs/template extraction tooling&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Security Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.env&lt;/code&gt; and &lt;code&gt;mlcli-config.json&lt;/code&gt; can contain plaintext DB credentials&lt;/li&gt;
&lt;li&gt;keep these files out of version control&lt;/li&gt;
&lt;li&gt;use least-privilege DB users where possible&lt;/li&gt;
&lt;li&gt;rotate and protect SQL backup files&lt;/li&gt;
&lt;li&gt;review generated auth/permission logic before production use&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ml&lt;/code&gt; command not recognized
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;reopen terminal after install&lt;/li&gt;
&lt;li&gt;verify PATH contains &lt;code&gt;C:\ML CLI\Tools&lt;/code&gt; and/or &lt;code&gt;%USERPROFILE%\bin&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;re-run &lt;code&gt;install-ml.bat&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  DB connection failures
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;run &lt;code&gt;ml test userdb&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;verify &lt;code&gt;.env&lt;/code&gt; values (&lt;code&gt;DB_*&lt;/code&gt;, &lt;code&gt;USERDB_*&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;ensure MySQL is running and reachable&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backup errors (&lt;code&gt;mysqldump not found&lt;/code&gt;)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;run &lt;code&gt;ml create --config&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;set valid full path to &lt;code&gt;mysqldump.exe&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Remote fetch/update errors
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;check internet/proxy/firewall for GitHub raw/API endpoints&lt;/li&gt;
&lt;li&gt;retry command&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;This toolchain is primarily Windows-oriented.&lt;/li&gt;
&lt;li&gt;Many helper flows fetch the latest scripts from GitHub at runtime.&lt;/li&gt;
&lt;li&gt;For stable offline behavior, keep local script copies and avoid remote dependency paths where needed.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cli</category>
      <category>bat</category>
      <category>php</category>
      <category>ps1</category>
    </item>
    <item>
      <title>CameraFool</title>
      <dc:creator>Zheus Leiandre Codez Cajote</dc:creator>
      <pubDate>Mon, 13 Apr 2026 02:21:20 +0000</pubDate>
      <link>https://dev.to/zheyuse/project-name-camerafool-1180</link>
      <guid>https://dev.to/zheyuse/project-name-camerafool-1180</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;CameraFool is a revolutionary, cutting-edge, AI-powered mirror experience… that literally just opens your device camera.&lt;/p&gt;

&lt;p&gt;Yes. That’s it.&lt;/p&gt;

&lt;p&gt;In a world where your phone already has a camera app one tap away, CameraFool bravely asks:&lt;br&gt;
“What if… we made it harder?”&lt;/p&gt;

&lt;p&gt;Instead of simply opening your camera like a normal person, users must:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visit a website&lt;/li&gt;
&lt;li&gt;Click a dramatic “Open Mirror” button&lt;/li&gt;
&lt;li&gt;Select their preferred mirror device (very important)&lt;/li&gt;
&lt;li&gt;Then… we open the exact same camera anyway&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Innovation.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://zheyuse.github.io/camerafool/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;zheyuse.github.io&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ZheyUse" rel="noopener noreferrer"&gt;
        ZheyUse
      &lt;/a&gt; / &lt;a href="https://github.com/ZheyUse/camerafool" rel="noopener noreferrer"&gt;
        camerafool
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;CameraFool&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;"The Future of Reflection Technology" - a premium-looking prank app that adds dramatic steps before opening a camera flow.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Intro&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;CameraFool is intentionally overdesigned and funny:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;User visits a beautiful landing page.&lt;/li&gt;
&lt;li&gt;User clicks &lt;strong&gt;Open Mirror&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;User sees a fake permission modal (&lt;strong&gt;Allow&lt;/strong&gt; / &lt;strong&gt;Definitely Allow&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;User gets dramatic startup text and fake calibration.&lt;/li&gt;
&lt;li&gt;Then CameraFool launches camera behavior (native-device flow attempt first).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It looks like a $49/month AI product. It mostly opens a camera.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How It Works&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Main flow&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open Mirror&lt;/strong&gt; -&amp;gt; opens fake permission modal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Allow&lt;/strong&gt; / &lt;strong&gt;Definitely Allow&lt;/strong&gt; -&amp;gt; runs dramatic loading sequence.&lt;/li&gt;
&lt;li&gt;After loading:
&lt;ul&gt;
&lt;li&gt;On Windows, it attempts to launch native Camera app via &lt;code&gt;microsoft.windows.camera:&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;On other devices, it triggers native capture intent (&lt;code&gt;input capture&lt;/code&gt;) where supported.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If no camera is detected, it shows a &lt;strong&gt;No Camera Detected&lt;/strong&gt; modal.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Demo flow&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Try Demo Mode&lt;/strong&gt; bypasses the fake permission modal…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ZheyUse/camerafool" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;TechStack: HTML, JS, CSS&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;I’m going for Best Google AI Usage because this project uses AI in the most powerful way possible… by making everything feel smart while doing absolutely nothing new 😭&lt;/p&gt;

&lt;p&gt;We added “AI-powered reflection enhancement”, smart mirror selection, and dramatic loading like it’s about to scan your soul… but in the end it just opens your camera like usual.&lt;/p&gt;

&lt;p&gt;It’s basically a tribute to every product that says “AI-powered” just to sound cool.&lt;/p&gt;

&lt;p&gt;So technically, the AI is working… just not in the way you expect 😏&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
