My project: Change Request Tracker (CLI)
A simple command-line Change Management / Change Request tracking system built with Python and SQLite.
This project was created as a mini portfolio project to demonstrate:
- working with a database (SQL)
- CRUD functionality (Create, Read, Update, Delete)
- input validation and clean CLI output
- structured code separation (UI / handlers / services)
- Create a change request (title + description)
- View all change requests
- View a request by ID
- Update request status (pending / approved / rejected)
- Delete a request with confirmation
- SQLite database persistence
- Python 3
- SQLite (Python standart library)
change_tracker/
├── src/
│ ├── main.py
│ ├── database.py
│ ├── services.py
│ ├── ui.py
│ └── handlers.py
├── .gitignore
├── change_tracker.db (generated automatically when the app runs)
├── README.md
└── requirements.txt
- Clone the repository
- (Optional) Create and activate a virtual environment
- Run:
#```bash #py src/main.py
After starting application you will see a menu:
- Add Change Request
- View All Requests
- View Request by ID
- Update Request Status
- Delete Request
- Exit
Statuses allowed: pending, approved, rejected.
The database file change_tracker.db is created automatically. IDs don't reset after deletions (normal database behavior with autoincrement). No external dependencies are required (standard Python library only).
Add unit tests Add search/filter by status Export requests to CSV