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.
### Project Structure
### Project structure
Here is a brief overview of the project
- `etiquette`
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`
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`
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`
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`
For other scripts that will be used with etiquette databases, but are not part of the library itself.