Inventory Count System
├── Frontend Layer
│   ├── React Application (src/)
│   │   ├── App.jsx (Main React component - currently basic Vite template)
│   │   ├── App.css
│   │   ├── index.css
│   │   └── assets/
│   │       └── react.svg
│   └── Static Assets (public/)
│       ├── index.html
│       ├── css/
│       │   └── style.css
│       └── js/
│           └── app.js
├── Backend Layer
│   ├── PHP Backend (Web Pages)
│   │   ├── Authentication
│   │   │   ├── login.php
│   │   │   ├── logout.php
│   │   │   ├── register.php
│   │   │   └── sessions.php
│   │   ├── Dashboard & Management
│   │   │   ├── index.php (Entry point)
│   │   │   ├── dashboard.php
│   │   │   ├── users.php
│   │   │   ├── items.php
│   │   │   ├── assignments.php
│   │   │   ├── sessions.php
│   │   │   ├── pending_counts.php
│   │   │   └── reports.php
│   │   ├── Counting Interface
│   │   │   ├── count_items.php
│   │   │   ├── counting_instructions.php
│   │   │   └── checking_guidelines.php
│   │   └── API Endpoints (api/)
│   │       ├── get_item.php
│   │       ├── get_user.php
│   │       ├── update_assignment_status.php
│   │       └── delete_assignment.php
│   ├── Node.js Backend (server.cjs - Express API Server)
│   │   ├── Authentication & Security
│   │   │   ├── JWT token handling
│   │   │   ├── Session management
│   │   │   └── Role-based access control
│   │   ├── API Routes
│   │   │   ├── /api/login (POST)
│   │   │   ├── /api/dashboard (GET)
│   │   │   ├── /api/items (GET, POST, PUT, DELETE)
│   │   │   ├── /api/items/upload (POST - CSV upload)
│   │   │   ├── /api/sessions (GET, POST)
│   │   │   ├── /api/assignments (GET, POST)
│   │   │   ├── /api/counts (POST)
│   │   │   ├── /api/pending-counts (GET)
│   │   │   ├── /api/reports/* (GET)
│   │   │   └── /api/users (GET, POST, PUT, DELETE)
│   │   └── File Upload Handling
│   │       └── Multer configuration for CSV imports
│   └── Configuration & Utilities
│       ├── config.php (PHP config, DB connection, auth functions)
│       ├── .htaccess (PHP limits configuration)
│       └── package.json (Node.js dependencies)
├── Database Layer
│   ├── MySQL Database
│   │   ├── users (Authentication & roles)
│   │   ├── items (Inventory items)
│   │   ├── count_sessions (Counting periods)
│   │   ├── count_assignments (Task assignments)
│   │   ├── counts (Count transactions)
│   │   └── system_settings (Application settings)
│   └── Database Scripts
│       ├── create_database.sql
│       ├── migrate_counts_schema.sql
│       └── migrate_recount_schema.sql
├── Reporting & Analytics
│   ├── Python Scripts
│   │   ├── generate_report.py
│   │   └── import_csv.py
│   └── Report Outputs (reports/)
│       ├── count_report.csv
│       ├── count_summary_report.csv
│       ├── session_*.csv
│       └── variance_report.csv
├── File Management
│   └── Uploads Directory (uploads/)
│       └── CSV import files
└── Development & Build Tools
    ├── Vite Configuration (vite.config.js)
    ├── ESLint Configuration (eslint.config.js)
    ├── TODO List (TODO.md)
    └── Git Configuration (.gitignore)

### Key Architecture Notes:
- **Dual Backend**: The application has both PHP-based web pages and a separate Node.js Express API server
- **Frontend**: React app is currently a basic template, not fully integrated with the backend
- **Database**: MySQL with comprehensive schema for inventory counting workflow
- **Roles**: Three user roles (Admin, Counter, Checker) with different permissions
- **Workflow**: Session-based counting with assignments, physical counts, checking, and reporting
- **File Handling**: CSV import/export for bulk operations and reporting
