Files
jongryangje/README.md

98 lines
4.0 KiB
Markdown
Raw Normal View History

# 종량제 — 쓰레기봉투 물류시스템 (jongryangje)
**[종량제 개발목록](https://github.com/wixon-associates/jongryangje/raw/main/assets/종량제_개발목록_20260127.xlsx)** — [`assets/종량제_개발목록_20260127.xlsx`](./assets/종량제_개발목록_20260127.xlsx)
지자체·지정판매소 등을 대상으로 하는 **종량제 쓰레기봉투 물류·업무 웹 애플리케이션**입니다.
백엔드는 **[CodeIgniter 4](https://codeigniter.com/)** 기반입니다.
**저장소:** [wixon-associates/jongryangje](https://github.com/wixon-associates/jongryangje)
---
## 요구 사항
- **PHP** 8.2 이상 (`composer.json` 기준)
- **Composer** 2.x
- **MySQL / MariaDB** (프로젝트는 `MySQLi` 드라이버 사용)
- 권장 PHP 확장: `intl`, `mbstring`, MySQL 사용 시 `mysqlnd`
---
## 빠른 시작 (로컬)
### 1) 저장소 복제
```bash
git clone https://github.com/wixon-associates/jongryangje.git
cd jongryangje
```
### 2) 의존성 설치
```bash
composer install
```
### 3) 환경 설정
루트에 있는 샘플 파일을 복사해 `.env`를 만듭니다.
```bash
cp env .env
```
`.env`에서 최소한 다음을 설정합니다.
| 항목 | 설명 |
|------|------|
| `app.baseURL` | 예: `http://localhost:8080/` (끝에 `/`) |
| `database.default.*` | DB 호스트·DB명·사용자·비밀번호 |
| `encryption.key` | 개인정보(이메일·연락처) 암호화용. **64자리 hex** (예: `php -r "echo bin2hex(random_bytes(32));"`) |
### 4) 데이터베이스 준비
| 파일 | 용도 |
|------|------|
| `writable/database/init_jongryangje_dev.sql` | DB·DB 사용자 생성 예시 |
| `writable/database/login_tables.sql` | 회원·로그인·지자체 등 기본 테이블 |
| `writable/database/member_approval_request_add.sql` | 회원가입 역할 승인 요청 테이블 (별도 추가) |
| `writable/database/menu_tables.sql` 등 | 메뉴·시드 관련 SQL |
| `writable/database/order_tables.sql` | 발주 (`bag_order`, `bag_order_item` 등) |
| `writable/database/sales_tables.sql` | 판매·입고·재고·불출·주문 등 (`bag_sale`, `bag_receiving`, `bag_inventory` …) |
| `writable/database/code_master_init_daegu.sql` | 기본코드 종류·세부코드 시드 |
| `writable/database/code_master_sync_from_csv.sql` | 개발목록 CSV와 DB 보강용 (선택) |
개발목록 **기본코드 종류** CSV와 DB를 맞출 때는 `writable/tools/sync_basic_codes_from_csv.py`로 SQL을 생성하거나, 위 `code_master_sync_from_csv.sql`을 참고해 실행할 수 있습니다.
---
## 주요 URL (참고)
| 경로 | 설명 |
|------|------|
| `/` | 홈 (비로그인 시 환영 화면 등) |
| `/login`, `/logout` | 로그인·로그아웃 |
| `/register` | 회원가입 (역할 승인 플로우 연동) |
| `/dashboard` | 로그인 후 사이트형 메인 흐름 |
| `/dashboard/classic-mock` 등 | UI 시안용 라우트 |
| `/bag/basic-info` | 기본정보 (단가·포장단위 등 링크 허브) |
| `/bag/code-kinds` | **기본코드 종류** 목록 (로그인 사용자 조회; 시민·판매소는 조회만) |
| `/bag/code-details/{ck_idx}` | **기본코드 세부** 목록 (종류별) |
| `/admin` | 관리자 (권한·필터 적용) |
| `/admin/access/approvals` | 회원가입 역할 **승인 대기** 처리 |
### 기본코드 CRUD (관리자)
- **목록 화면은 `/bag/code-kinds`, `/bag/code-details/{ck_idx}`만 사용**합니다. `/admin` 아래에는 종류·세부 **목록 페이지가 없고**, 등록·수정·삭제 등 **CRUD만** `admin` 라우트로 열립니다.
- 예: `/admin/code-kinds/create`, `edit/{id}`, `store`/`update`/`delete`; `/admin/code-details/{ck_idx}/create`, `code-details/edit/{id}` 등 (전체는 `Routes.php` 참고).
- 예전 주소 `/admin/code-details/{ck_idx}`**`/bag/code-details/{ck_idx}`로 리다이렉트**됩니다.
E2E: 기본코드·사이트 메뉴 경로는 `e2e/code-management.spec.js`, `e2e/bag-site.spec.js`를 참고하세요.
정확한 라우트는 `app/Config/Routes.php`를 확인하세요.