## Introduction
Phoenix/Mix template for projects at [Nimble](https://nimblehq.co/).
## Prerequisites
NimbleTemplate has been developed and actively tested with the below environment:
- Mix 1.13.3
- Elixir 1.14.0
- Erlang/OTP 25.0.4
- Phoenix 1.6.11
- Node 16.15.0
## Installation
*Note:* NimbleTemplate only works on a _new_ Phoenix/Mix project, applying it to an existing Phoenix/Mix project might not work as expected.
Step 1: Generate a new project
```bash
# New Phoenix project
mix phx.new awesome_project
# New Mix project
mix new awesome_project
```
Step 2: Add `nimble_template` dependency to `mix.exs`:
```elixir
def deps do
[
{:nimble_template, "~> 4.4.0", only: :dev, runtime: false},
# other dependencies ...
]
end
```
Step 3: Fetch and install dependencies
Run this command in the root of the project directory to install NimbleTemplate.
```bash
mix do deps.get, deps.compile
```
## Usage
```bash
mix help nimble_template.gen # Print help
mix nimble_template.gen -v # Print the version
# Phoenix application
mix nimble_template.gen --web # Apply the Web template
mix nimble_template.gen --api # Apply the API template
mix nimble_template.gen --live # Apply the LiveView template
# Non-Phoenix application
mix nimble_template.gen --mix # Apply the Mix template
```
## Running tests
The testing documentation is on [Wiki](https://github.com/nimblehq/elixir-templates/wiki/Testing)
### Release process
The release documentation is on [Wiki](https://github.com/nimblehq/elixir-templates/wiki/Release)
## Contributing
Contributions, issues, and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/nimblehq/elixir-templates/issues).
## FAQ
### 1. Getting `(Mix) The task "phx.new" could not be found` error
The Phoenix application generator is missing. By solving this problem, you need to run
```bash
mix archive.install hex phx_new
```
or
```bash
mix archive.install hex phx_new #{specific-version}
```
### 2. Getting `Wallaby can't find chromedriver` error
Your OS is missing/not installing `chromedriver`, you need to run:
Homebrew
```bash
brew install --cask chromedriver
```
Debian/Ubuntu
```bash
apt install chromium-chromedriver
```
Or download the package on the official site: https://chromedriver.chromium.org/downloads
## License
This project is Copyright (c) 2014 and onwards. It is free software, and may be redistributed under the terms specified in the [LICENSE] file.
[LICENSE]: /LICENSE
## About
![Nimble](https://assets.nimblehq.co/logo/dark/logo-dark-text-160.png)
This project is maintained and funded by Nimble.
We love open source and do our part in sharing our work with the community!
See [our other projects][community] or [hire our team][hire] to help build your product.
[community]: https://github.com/nimblehq
[hire]: https://nimblehq.co