https://github.com/tructn/goal
🥮 [Experiment] Full Stack Golang React
https://github.com/tructn/goal
echo go react tailwindcss
Last synced: about 1 year ago
JSON representation
🥮 [Experiment] Full Stack Golang React
- Host: GitHub
- URL: https://github.com/tructn/goal
- Owner: tructn
- License: mit
- Created: 2023-07-20T06:31:01.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-11T13:11:13.000Z (over 2 years ago)
- Last Synced: 2025-03-25T21:22:50.418Z (about 1 year ago)
- Topics: echo, go, react, tailwindcss
- Language: TypeScript
- Homepage:
- Size: 23.5 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

Simple Office Management System
*⚠️ This project for learning purpose*
[](https://github.com/truc9/goal/actions/workflows/codeql.yml)
[](https://github.com/truc9/goal/actions/workflows/go.yml)
## Planning
- [x] Local DB AuthN
- [x] My Booking
- [x] Booking Dashboard
- [x] Role-based AuthZ
- [x] Realtime Update for Dashboard
- [x] Charts for Dashboard
- [ ] Testing
## Demo
- Username: admin@goal.com
- Password: admin
## Hosting
- Backend: https://www.fl0.com/
- Frontend: https://vercel.com/
## Screenshots





## Development
### Swagger API
```
http://localhost:8000/swagger/index.html#/
```

### Environment Variable
```
SECRET_KEY=
```
### Start API (hot reload)
```
air
```
### Start API (without hotreload)
```
make run
```
### Create Migration
```
migrate create -ext sql -dir "./migrations" -seq create_users_table
```
### Run Migration
```
migrate -database "postgres://postgres:admin@localhost:5432/goal?sslmode=disable" -path "./migrations" up
```
### Start web
```
cd ./web && pnpm dev
```
### Run tests with coverage
```
make test_cov
```
### Go Notes
- Go does not support default parameter
- Go does not support overload (https://go.dev/doc/faq#overloading)
## Stack
- Go
- React
- [MUI React](https://mui.com)
- [TailwindCSS](https://tailwindcss.com)
- [GORM (Postgres)](https://gorm.io)
- [Zustand](https://docs.pmnd.rs/zustand/getting-started/introduction)