Group Project Objective: To create an advanced Bash script that simulates a bills payment system using CSV and text-based databases, integrating automation, validation, and logging features.
This project simulates Over-the-Counter (OTC) and Online Bills Payments such as those via CLIQQ or SM Bills Payment.
It processes a CSV file of payments (https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip), updates customer balances in https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip, and logs all transactions.
- Member 1 – ABEGONIA
- Member 2 – CABALAN, Zachary Ezekiel T
- Member 3 – CINCO
- Member 4 – DIMACALI
- Validate CSV structure before processing
- Backup database before any update
- Update balances automatically
- Log all updates and payment channels
- Generate summary report
- Error handling for missing/invalid files
The script:
[ ] Takes two arguments (CSV + database file)
[ ] Validates the CSV file
[ ] Backs up https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip
[ ] Updates balances
[ ] Logs every update
[ ] Generates a summary report
[x] - not finished [-] - work in progress [/] - finished
Project Structure:
212-MIDTERMS-PROJECT/ │ ├── src/ │ └── https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip # main bash script (starter code + comments) │ ├── data/ │ ├── https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip # extracted data from receipts │ └── https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip # initial customer database │ ├── logs/ │ ├── https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip # log file (auto-generated) │ └── https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip # summary output │ ├── backups/ │ └── .gitkeep # backup folder placeholder │ ├── https://raw.githubusercontent.com/EarlSeandrikCinco/212-MIDTERMS-PROJECT/main/data/PROJECT_MIDTERM_2.2.zip # project overview & group details └── .gitignore # ignore logs/backups in commits