-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
14 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,27 @@ | ||
## Haskell Setup | ||
# Salon | ||
|
||
1. If you haven't already, [install Stack](https://haskell-lang.org/get-started) | ||
* On POSIX systems, this is usually `curl -sSL https://get.haskellstack.org/ | sh` | ||
2. Install the `yesod` command line tool: `stack install yesod-bin --install-ghc` | ||
3. Build libraries: `stack build` | ||
The application ["Salon"](https://salon-w3cpovaqka-de.a.run.app) provides the ability to publish and advertise the services of beauty salon owners on the web. | ||
|
||
If you have trouble, refer to the [Yesod Quickstart guide](https://www.yesodweb.com/page/quickstart) for additional detail. | ||
## Overview | ||
|
||
## Development | ||
The services to be advertised are defined and published in section ["Services"](https://salon-w3cpovaqka-de.a.run.app/admin/services) of group "Data". Optionally, services can be defined as a hierarchy of groups and subservices. | ||
|
||
Start a development server with: | ||
Each service can have multiple offers with corresponding prices and currencies. Offers are defined for each Service in the “Services” section in the “Data” group. | ||
|
||
``` | ||
stack exec -- yesod devel | ||
``` | ||
Once the service and its offerings are defined, the service can be published. The service and offers will be displayed to the customer in the section ["Services"](https://salon-w3cpovaqka-de.a.run.app/services) and available for booking in the section ["Book appointment"](https://salon-w3cpovaqka-de.a.run.app/book). | ||
|
||
As your code changes, your site will be automatically recompiled and redeployed to localhost. | ||
## ERD Diagram | ||
|
||
## Tests | ||
![Entity Relationship Diagram](static/img/Salon-ERD.svg) | ||
|
||
``` | ||
stack test --flag salon:library-only --flag salon:dev | ||
``` | ||
## State transition diagram for booking | ||
|
||
(Because `yesod devel` passes the `library-only` and `dev` flags, matching those flags means you don't need to recompile between tests and development, and it disables optimization to speed up your test compile times). | ||
![State transition diagram for booking](static/img/Booking-State-Diagram.svg) | ||
|
||
## Documentation | ||
## State transition diagram for appointment | ||
|
||
* Read the [Yesod Book](https://www.yesodweb.com/book) online for free | ||
* Check [Stackage](http://stackage.org/) for documentation on the packages in your LTS Haskell version, or [search it using Hoogle](https://www.stackage.org/lts/hoogle?q=). Tip: Your LTS version is in your `stack.yaml` file. | ||
* For local documentation, use: | ||
* `stack haddock --open` to generate Haddock documentation for your dependencies, and open that documentation in a browser | ||
* `stack hoogle <function, module or type signature>` to generate a Hoogle database and search for your query | ||
* The [Yesod cookbook](https://github.com/yesodweb/yesod-cookbook) has sample code for various needs | ||
![State transition diagram for appointment](static/img/Appointment-State-Transition.svg) | ||
|
||
## Getting Help | ||
## Demo | ||
|
||
* Ask questions on [Stack Overflow, using the Yesod or Haskell tags](https://stackoverflow.com/questions/tagged/yesod+haskell) | ||
* Ask the [Yesod Google Group](https://groups.google.com/forum/#!forum/yesodweb) | ||
* There are several chatrooms you can ask for help: | ||
* For IRC, try Freenode#yesod and Freenode#haskell | ||
* [Functional Programming Slack](https://fpchat-invite.herokuapp.com/), in the #haskell, #haskell-beginners, or #yesod channels. | ||
[Click here to see demo](https://salon-w3cpovaqka-de.a.run.app) |