heyapple

module
v0.0.0-...-2d56da1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2024 License: AGPL-3.0

README

HeyApple

HeyApple is an online food & nutrient tracker, recipe manager, and shopping list generator.

There are many apps out there for tracking nutrients and just as many for managing recipes and generating shopping lists. There are hardly any that combine these two into a full food management solution. HeyApple fills that void.

You can track your daily nutrient intake down to individual minerals and vitamins, combine food into recipes, store cooking instructions and prep times. Shopping lists are generated automatically by simply selecting the days you plan to do your shopping for.

Building & Testing

Execute the following command in the project's root directory:

$ make build

This will perform most unit tests, build the server app and the web frontend, and put everything in the ./out directory. All the necessary files to run and deploy the app are embedded into the executable file, so this is the only file that needs to be distributed.

$ make run

This will run the application directly from the ./out directory. By default, the app listens on http://localhost:8080 for incoming requests. Open it in a browser to start the web frontend.

$ make test

This will execute all unit tests in the project, including tests that detect race conditions. It will take a while for all of these to complete, which is why they are not executed by default when building the app.

Directories

Path Synopsis
cmd
cli
internal
api/v1
Package api implements a REST API to interact with the app over HTTP requests.
Package api implements a REST API to interact with the app over HTTP requests.
app
Package app contains the core functionality of the aplication.
Package app contains the core functionality of the aplication.
conv
Package conv provides functionality to convert to or from various external formats.
Package conv provides functionality to convert to or from various external formats.
core
Package core defines core structs and interfaces.
Package core defines core structs and interfaces.
db/mem
package mem provides an implementation of the app.DB interface that lives entirely in the application's runtime memory.
package mem provides an implementation of the app.DB interface that lives entirely in the application's runtime memory.
email
Package email provides an implementation of the app.Notifier interface that sends notifications over standard e-mail.
Package email provides an implementation of the app.Notifier interface that sends notifications over standard e-mail.
handler
Package handler defines handlers for static web content that conform to the http.Handler and the httprouter.Handle interfaces.
Package handler defines handlers for static web content that conform to the http.Handler and the httprouter.Handle interfaces.
job
mock
Package mock supplies various stubs and mock objects that can be used for unit testing and development deployments.
Package mock supplies various stubs and mock objects that can be used for unit testing and development deployments.
mw
Package mw defines various pieces of middleware that conform to the http.Handler and the httprouter.Handle interfaces.
Package mw defines various pieces of middleware that conform to the http.Handler and the httprouter.Handle interfaces.
web

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL