tinyqc/README.md
2026-02-12 09:01:59 +07:00

208 lines
5.7 KiB
Markdown
Executable File

# TinyQC - Quality Control Management System
A CodeIgniter 4 PHP application for quality control data management in laboratory settings. Built with Tailwind CSS, Alpine.js, and DaisyUI.
## Features
- **Dictionary Management**: Maintain departments, tests, and control parameters
- **Control Management**: Configure and manage quality control standards
- **Daily Entries**: Record daily quality control test results
- **Monthly Entries**: Aggregate and track monthly quality control data
- **Comments System**: Add notes and comments to results
- **Reporting**: Generate quality control reports and analysis
## Technology Stack
| Layer | Technology |
|-------|------------|
| Backend | CodeIgniter 4 (PHP 8.1+) |
| Database | SQL Server |
| Frontend | TailwindCSS + Alpine.js + DaisyUI |
| Icons | FontAwesome 7 |
| Testing | PHPUnit |
## Requirements
- PHP 8.1 or higher
- SQL Server 2016+
- Composer
- Web server (Apache/Nginx/IIS)
## Installation
1. **Clone the repository**
```bash
git clone <repository-url> tinyqc
cd tinyqc
```
2. **Install dependencies**
```bash
composer install
```
3. **Configure environment**
```bash
copy env .env
```
Edit `.env` with your database settings:
```env
database.default.hostname = localhost
database.default.port = 1433
database.default.database = tinyqc
database.default.username = sa
database.default.password = your_password
database.default.DBDriver = SQLSRV
```
4. **Set up database**
- Create a new SQL Server database
- Run migrations if applicable
- Seed initial data if needed
5. **Configure web server**
Point your web server to the `public` directory:
```apache
<VirtualHost *:80>
ServerName tinyqc.local
DocumentRoot "D:/data/www/tinyqc/public"
<Directory "D:/data/www/tinyqc">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
```
6. **Access the application**
Open http://localhost in your browser
## Project Structure
```
tinyqc/
├── app/
│ ├── Config/ # Configuration files
│ │ ├── Database.php # Database settings
│ │ └── Routes.php # Route definitions
│ ├── Controllers/ # Application controllers
│ │ ├── Api/ # API controllers
│ │ ├── Dashboard.php
│ │ ├── Dept.php
│ │ ├── Test.php
│ │ ├── Control.php
│ │ ├── Entry.php
│ │ ├── PageController.php
│ │ └── Report.php
│ ├── Models/ # Database models
│ │ ├── DictDeptModel.php
│ │ ├── DictTestModel.php
│ │ ├── DictControlModel.php
│ │ ├── ControlModel.php
│ │ ├── ControlTestModel.php
│ │ ├── DailyResultModel.php
│ │ └── ...
│ └── Views/ # View templates
│ ├── layout/ # Layout templates
│ ├── dashboard.php
│ ├── dept/ # Department views
│ ├── test/ # Test views
│ ├── control/ # Control views
│ ├── entry/ # Entry views
│ └── report/ # Report views
├── public/ # Web root
├── tests/ # Unit tests
├── writable/ # Writable directory
├── env # Environment template
├── composer.json
└── phpunit.xml.dist
```
## Usage
### Dashboard
The main dashboard provides an overview of quality control status and quick access to all modules.
### Dictionary Management
- **Departments**: Manage department/category entries
- **Tests**: Maintain test parameters and specifications
- **Controls**: Configure control standards and limits
### Data Entry
- **Daily Entry**: Record daily QC test results
- **Monthly Entry**: Aggregate monthly data and comments
### Reports
Generate quality control reports based on:
- Date ranges
- Test types
- Control parameters
## API Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | /api/dept | List departments |
| GET | /api/dept/:id | Get department details |
| POST | /api/dept | Create department |
| PUT | /api/dept/:id | Update department |
| DELETE | /api/dept/:id | Delete department |
| GET | /api/test | List tests |
| GET | /api/test/:id | Get test details |
| POST | /api/test | Create test |
| PUT | /api/test/:id | Update test |
| DELETE | /api/test/:id | Delete test |
| GET | /api/control | List controls |
| GET | /api/control/:id | Get control details |
| POST | /api/control | Create control |
| PUT | /api/control/:id | Update control |
| DELETE | /api/control/:id | Delete control |
| GET | /api/entry/controls | Get controls for entry |
| GET | /api/entry/tests | Get tests for entry |
| POST | /api/entry/daily | Save daily result |
| POST | /api/entry/monthly | Save monthly entry |
| POST | /api/entry/comment | Save comment |
## Development
### Running Tests
```bash
# Run all tests
./vendor/bin/phpunit
# Run with coverage
./vendor/bin/phpunit --coverage-html coverage/
```
### Code Style
Follow these guidelines:
- PSR-12 coding standards
- CamelCase for variables/functions
- PascalCase for classes
- snake_case for database tables/columns
### Adding New Features
1. Create model in `app/Models/`
2. Create API controller in `app/Controllers/Api/`
3. Add routes in `app/Config/Routes.php`
4. Create views in `app/Views/[module]/`
5. Add menu item in layout if needed
## Documentation
- [agent1.md](agent1.md) - Complete development guide
- [VIEWS_RULES.md](VIEWS_RULES.md) - View patterns and conventions
## License
This project is proprietary software.
## Support
For support, please contact the development team.