Expand the project structure diagram on the readme.

This commit is contained in:
voussoir 2017-12-16 04:08:15 -08:00
parent 443d93ce18
commit 67c2dadffa

View file

@ -17,16 +17,42 @@ Documentation is still a work in progress. In general,
You may notice that Etiquette doesn't have a version number anywhere. That's because I don't think it's ready for one. I am using this project to learn and practice, and breaking changes are very common. You may notice that Etiquette doesn't have a version number anywhere. That's because I don't think it's ready for one. I am using this project to learn and practice, and breaking changes are very common.
### Project Structure ### Project structure
Here is a brief overview of the project
- `etiquette` - `etiquette`
The core backend package. The core backend package.
- `constants`
Strings, messages, column layouts, and other things that are constant during runtime.
- `decorators`
Function decorators.
- `exceptions`
Exception classes.
- `helpers`
A variety of small, useful functions that wouldn't belong as a method on any class.
- `jsonify`
Toolkit for serializing the Etiquette objects as JSON.
- `objects`
Definition of the Etiquette data objects like Photos and Tags.
- `photodb`
Definition of the PhotoDB class and its Mixins.
- `searchhelpers`
A variety of validation, normalization, and processing functions used to handle search queries.
- `tag_export`
Toolkit for exporting a PDB's tagset into a different formats e.g. varying levels of nesting or depicting tags with their full qualified names.
- `frontends` - `frontends`
Ideally the backend should be frontend-agnostic. Even though the Flask interface is my primary interest, it should not feel like it must be the only one. Therefore I place it in this folder to indicate that other frontends are possible too. Ideally the backend should be frontend-agnostic. Even though the Flask interface is my primary interest, it should not feel like it must be the only one. Therefore I place it in this folder to indicate that other frontends are possible too.
- `etiquette_flask` - `etiquette_flask`
This folder represents the flask server as somewhat of a black box, in the sense that you can move it around and just run the contained launch file. This folder represents the flask server as somewhat of a black box, in the sense that you can move it around and just run the contained launch file.
- `etiquette_flask` - `etiquette_flask`
This is the package that contains all of the site's actual API code. This is the package that contains all of the site's actual API code.
- `static`
User-facing, static, cacheable content like CSS, JS, and graphics.
- `templates`
Jinja HTML templates, including reusable subunits as macros.
- `etiquette_repl`
Preloads a few variables into the interpreter so you can quickly test functions within the Python REPL itself.
- `utilities` - `utilities`
For other scripts that will be used with etiquette databases, but are not part of the library itself. For other scripts that will be used with etiquette databases, but are not part of the library itself.