rano/README.md

63 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

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-11-01 14:25:30 +00:00
## Prerequisites
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-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 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)
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
-
## 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)