63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
# RANO
|
||
|
||
Reliable And Nonstop Operations
|
||
|
||
## Prerequisites
|
||
|
||
- [deno](https://docs.deno.com/runtime/) to manage node modules
|
||
- [go-task](https://taskfile.dev/installation/) to run tasks
|
||
```bash
|
||
go install github.com/go-task/task/v3/cmd/task@latest
|
||
```
|
||
- [golang-migrate](https://github.com/golang-migrate/migrate) for manual migrations.
|
||
To install [follow instructions](https://github.com/golang-migrate/migrate/tree/master/cmd/migrate)
|
||
|
||
## Use RANO as your new project template
|
||
|
||
to use "rano" as your new project template first install `gonew`
|
||
|
||
```bash
|
||
go install golang.org/x/tools/cmd/gonew@latest
|
||
|
||
```
|
||
|
||
now run gonew in your new project’s parent directory with two arguments: first, the path to the template you wish to copy, and second, the module name of the project you are creating.\
|
||
For example:
|
||
|
||
```bash
|
||
gonew gitserver.in/patialtech/rano example.com/mynewapp
|
||
cd ./mynewapp
|
||
```
|
||
|
||
## Project Structure
|
||
|
||
- `cmd` dir contains quick commands or scripts we need in app
|
||
- `config` app configurations depends .env.\<environment\> file\
|
||
for development we have .env.development file
|
||
- `db` databse schema and migrations
|
||
- `graph` is [gqlgen](https://gqlgen.com/) graph server
|
||
- `mailer` to send emails and contains mail message templates
|
||
- `pkg` folder is home for most of the business logic for your go app
|
||
- `util` shared utilities
|
||
- `web`single page web app built using [SvelteKit](https://svelte.dev/docs/kit/introduction)
|
||
- `assets` keep images and icons used in app init
|
||
- `lib` client lib
|
||
- `public` files of frontend app
|
||
- `routes` svelte app pages
|
||
|
||
## Go packages that are in use
|
||
|
||
- [gqlgen](https://gqlgen.com/)
|
||
- [mux](https://gitserver.in/patialtech/mux)
|
||
- [ent. Go](https://entgo.io/docs/tutorial-setup) ORM
|
||
-
|
||
|
||
## Web modules
|
||
|
||
- [SvelteKit](https://svelte.dev/docs/kit/introduction)
|
||
- [Tailwind](https://tailwindcss.com/docs/installation)
|
||
- [daisyui](https://daisyui.com/docs/install/)
|
||
- [urql](https://commerce.nearform.com/open-source/urql/docs/basics/svelte/)
|
||
- [GraphQL Codegen](https://the-guild.dev/graphql/codegen)
|
||
- [short unique identifiers from numbers](https://sqids.org/go)
|