108 lines
4.9 KiB
Markdown
108 lines
4.9 KiB
Markdown
# Project Structure
|
|
|
|
## Directory Layout
|
|
```
|
|
gdc_cmod/
|
|
├── app/ # Application code
|
|
│ ├── Controllers/ # Controllers (API & Pages)
|
|
│ │ ├── Pages/ # Page controllers by role
|
|
│ │ │ ├── AdminController.php
|
|
│ │ │ ├── CsController.php
|
|
│ │ │ ├── LabController.php
|
|
│ │ │ ├── PhlebotomistController.php
|
|
│ │ │ └── SuperuserController.php
|
|
│ │ ├── ApiDashboard.php
|
|
│ │ ├── ApiRequestsAuditController.php
|
|
│ │ ├── ApiValidateController.php
|
|
│ │ ├── AuthController.php
|
|
│ │ ├── BaseController.php
|
|
│ │ ├── ErrorPage.php
|
|
│ │ ├── Home.php
|
|
│ │ ├── LabelController.php
|
|
│ │ ├── RequestsController.php
|
|
│ │ ├── SamplesController.php
|
|
│ │ └── UsersController.php
|
|
│ ├── Config/ # Configuration
|
|
│ │ ├── App.php
|
|
│ │ ├── Database.php
|
|
│ │ ├── Filters.php # Filter definitions
|
|
│ │ ├── Routes.php # Route definitions
|
|
│ │ └── ...
|
|
│ ├── Database/ # Database configurations
|
|
│ ├── Filters/ # Custom filters
|
|
│ │ ├── GuestFilter.php
|
|
│ │ ├── RoleFilter.php
|
|
│ │ └── .gitkeep
|
|
│ ├── Helpers/ # Helper functions
|
|
│ ├── Language/ # Language files
|
|
│ ├── Libraries/ # Custom libraries
|
|
│ ├── Models/ # Models (none used in this project)
|
|
│ ├── ThirdParty/ # Third-party code
|
|
│ └── Views/ # Views
|
|
│ ├── admin/ # Admin views
|
|
│ ├── cs/ # CS views
|
|
│ ├── errors/ # Error pages
|
|
│ ├── lab/ # Lab views
|
|
│ ├── phlebo/ # Phlebo views
|
|
│ ├── shared/ # Shared components
|
|
│ ├── superuser/ # Superuser views
|
|
│ └── ...
|
|
├── public/ # Web root
|
|
│ ├── index.php # Front controller
|
|
│ ├── .htaccess
|
|
│ ├── web.config
|
|
│ ├── css/ # Local CSS
|
|
│ └── js/ # Local JavaScript
|
|
├── tests/ # PHPUnit tests
|
|
│ ├── _support/ # Test support files
|
|
│ ├── database/ # Database tests
|
|
│ ├── session/ # Session tests
|
|
│ ├── unit/ # Unit tests
|
|
│ └── README.md
|
|
├── writable/ # Writeable directories
|
|
├── vendor/ # Composer dependencies
|
|
├── .env # Environment variables (git ignored)
|
|
├── env # Example environment file
|
|
├── .gitignore # Git ignore rules
|
|
├── AGENTS.md # Agent guidelines (this file)
|
|
├── CHECKLIST.md # Feature checklist
|
|
├── CLAUDE.md # Claude Code guidelines
|
|
├── composer.json # Composer dependencies
|
|
├── composer.lock # Locked dependencies
|
|
├── phpunit.xml.dist # PHPUnit configuration
|
|
├── preload.php # PHP OpCache preload
|
|
├── README.md # Project README
|
|
├── spark # CodeIgniter CLI tool
|
|
└── LICENSE # MIT License
|
|
```
|
|
|
|
## Key Files & Their Purposes
|
|
|
|
### Configuration
|
|
- **app/Config/Database.php** - Database connections (SQL Server + Firebird ODBC)
|
|
- **app/Config/Filters.php** - Filter definitions (RoleFilter, GuestFilter)
|
|
- **app/Config/Routes.php** - Route definitions (API and page routes)
|
|
- **app/Config/App.php** - Application settings (baseURL, etc.)
|
|
|
|
### Controllers
|
|
- **Pages/[Role]Controller.php** - Page controllers for each role
|
|
- **Api[Resource]Controller.php** - API controllers for JSON endpoints
|
|
- **AuthController.php** - Authentication (login/logout)
|
|
- **UsersController.php** - User management API
|
|
- **RequestsController.php** - Request validation API
|
|
- **SamplesController.php** - Sample collection API
|
|
|
|
### Filters
|
|
- **app/Filters/RoleFilter.php** - Check user role on protected routes
|
|
- **app/Filters/GuestFilter.php** - Redirect logged-in users from public pages
|
|
|
|
### Views
|
|
- **views/shared/** - Shared components used across roles
|
|
- **views/{role}/** - Role-specific views
|
|
- **views/login.php** - Login page
|
|
|
|
### Tests
|
|
- **tests/unit/** - Unit tests (HealthTest, etc.)
|
|
- **tests/database/** - Database tests
|
|
- **tests/session/** - Session tests
|