rano/README.md

63 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 projects 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)