208 lines
5.7 KiB
Markdown
Executable File
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.
|