The Big Library Project is a personal Python project created to gain hands‑on experience with object‑oriented programming and modular application design, using a library domain as a practical context.
It was started to gain hands‑on experience with object‑oriented programming, modular design, and building software from small, well‑defined components. The project focuses on writing clear, readable code and understanding how different parts of an application work together over time.
The project is currently in an early but well‑structured development stage, with a strong focus on data design and persistence foundations.
- Database schema designed with required and optional fields
- JSON‑based persistence module implemented
- Data validation rebuilt to match updated schemas
- Core library logic scaffolded but not yet implemented
- Development currently driven mainly by unit tests
- Python - Core language used to implement the application logic and data handling.
unittest- Used for writing unit tests, especially for validating persistence and data integrity.- Git & GitHub
- JSON - File‑based storage format used for persistence during early development.
- Obsidian - Used for technical documentation, design notes, and tracking architectural decisions.
- Git & GitHub - Version control and project tracking.
- GitHub Copilot (AI assistant) - Used as a reasoning and review partner to support learning, validate design decisions, and improve code clarity during development.
- Functions and classes with a single, clear responsibility
- Modular structure
- Explicit and readable code
- Incremental development supported by unit tests
- OOP used where it improves clarity
- Finalize and test persistence and validation logic
- Implement core library functionality (borrowing, availability, users)
- Add user login and basic data protection
- Build a GUI
- Implement a simple AI Agent with book recommendation and library statistics component