2024-11-01 14:25:30 +00:00
# RANO
2024-09-30 11:34:43 +00:00
2024-11-17 16:58:29 +00:00
Reliable And Nonstop Operations
2024-10-22 18:49:08 +00:00
2024-11-01 14:25:30 +00:00
## Prerequisites
2024-10-22 18:49:08 +00:00
2024-11-01 14:25:30 +00:00
- [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
```
2024-11-10 09:22:33 +00:00
- [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 )
2024-11-04 06:05:43 +00:00
2024-11-17 16:58:29 +00:00
## 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
2024-11-04 06:05:43 +00:00
- [gqlgen ](https://gqlgen.com/ )
- [mux ](https://gitserver.in/patialtech/mux )
2024-11-10 09:22:33 +00:00
- [ent. Go ](https://entgo.io/docs/tutorial-setup ) ORM
2024-11-17 16:58:29 +00:00
-
2024-11-04 06:05:43 +00:00
## 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 )
2024-11-17 16:58:29 +00:00
- [short unique identifiers from numbers ](https://sqids.org/go )