Barky is inspired by Dane Hillard's Bark example of an application that demonstrates some basic software engineering principles such as:
- Separation of concerns
- Loose Coupling
- Inheritance
- Extensibility
- Abstraction
- Refactoring
This repository is an extension of Dane's example to also include testing.
At a basic level, the architecture is designed with a layered strategy to include the following common/typical elements:
- Presentation Layer (will be a module called barky.py here)
- Business Logic Layer (will be a module called commands.py here)
- Presistence Layer (will be a module called database.py here)
We will take a bare bones approach and connect directly to a sqlite database.
The DB Browser for SQLite tool will be useful to inspect the data and manage the database file.
The initial database wil consist of a table called bookmarks
:
CREATE TABLE IF NOT EXISTS bookmarks
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
url TEXT NOT NULL,
notes TEXT,
date_added TEXT NOT NULL
);