From 67c2dadffa9f56d6101c355a9e1fc4b209851166 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Sat, 16 Dec 2017 04:08:15 -0800 Subject: [PATCH] Expand the project structure diagram on the readme. --- README.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7713602..eb12c2a 100644 --- a/README.md +++ b/README.md @@ -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.