diff --git a/UserManual.md b/UserManual.md new file mode 100644 index 0000000..7887b6a --- /dev/null +++ b/UserManual.md @@ -0,0 +1,76 @@ +# User Guide for GourmetJ application + +The GourmetJ application is a self-container web application +and server program. To use it all that is required is an installed +Java system (Java 11 or greater), a copy of the web application +JAR file, a basic ``recipes.db`` file in your home directory +and a ``.gourmetpw`` password file in the directory that you +run the application from. + +## Basic concepts + +The heart of the system is the recipe database. You can enter +recipes in manually or copy-and-paste them from outside sources +such as web pages. You can even copy a list of ingredients as +a unit and paste them into the Ingredients Editor! + +Once you have a collection of recipes, you can search based on +name, cuisine type, category or ingredient. You can mark selected +recipes and cause their ingredients to be placed on a shopping +list which you can then export and print or feed to other applications. + +## Security + +This is a web application and while you can run it on your deskop, +it can also be hosted on the Internet. To ensure that people can't +mess up your data, the pages than can alter the database are +password-protected. Add userid/password lines to the ``.gourmetpw`` +file to allow login. + +## Ingredient Keys + +An important part of the system is the "Ingredient Key". +Recipes come from many sources and the ingredient list can vary +wildly. One recipe may call for "Onions, diced", another for +"Diced Onions", another for "Finely Minced Onions", and one for +"Cebollas Cortados". To match all of these up to make a shopping +list would require a lot more power and complexity than a simple +app can provide, so we use the "Ingredient Key" to serve as a +universal identifier. For example, for the preceeding, the ingredient +key might be simply "Onions". Or, if you like to buy them pre-diced, +"Diced Onions" + +## Shopping Lists + +When you have recipes selected, the "More..." button on the main +page will bring you to a multi-tabbed page starting with the +list of selected recipes and Shopping List. Each recipe has a +counter control - if you like Macaroni and Cheese 5 times a week, +you can spin the counter up to 5 and the shopping list will adjust +quantities to allow for the extra ingredient amounts. Spin it +down to 0 to omit the recipe from the list. + +The shopping list organizes by Shopping Category. You associate +a Shopping Category with an Ingredient Key by using the "E" (Edit) +button on the recipe. Shopping categories can be used to optimise +your shopping expeditions by placing related ingredient types in +a group. For example the Ingredient Keys "Onions", "Celery", "Lettuce" +might all be under the Shopping Category "Produce". "Oregano" and +"Thyme" might be under "Herbs and Spices". + +## Pantry + +Often, you'll already have some of the ingredient in your pantry. +Like salt. or maybe cans of green beans. You can Mark Ingredient +keys on your shopping list with the "Pantry" marker and they will +not appear on your exported shopping list. Note that Pantry does +not allow for how much is in the pantry, so it's always a good +idea to check before marking stuff off. + +### Maintenance + +Very little maintenance is required. You can back up the recipe +database by just making a copy of the ``recipes.db`` file. +You can add and remove user IDs and passwords by editing +the ``.gourmetpw`` file. A restart of the application will +be required for this. \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/application.yml b/src/main/resources/application.yml similarity index 55% rename from src/main/resources/META-INF/resources/application.yml rename to src/main/resources/application.yml index 4ef1393..d41db02 100644 --- a/src/main/resources/META-INF/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,3 +1,7 @@ +# +# Application YML is used in production. /application.properties +# is used in test. +# spring: datasource: url: jdbc:sqlite:${home}/recipes.db @@ -6,3 +10,6 @@ spring: ddl-auto: none database-platform: org.sqlite.hibernate.dialect.SQLiteDialect +gourmet: + password: + file: .gourmetpw