{"id":16979777,"url":"https://github.com/tructn/goal","last_synced_at":"2025-04-12T01:43:13.792Z","repository":{"id":182738956,"uuid":"668580842","full_name":"tructn/goal","owner":"tructn","description":"🥮 [Experiment] Full Stack Golang React","archived":false,"fork":false,"pushed_at":"2024-01-11T13:11:13.000Z","size":24598,"stargazers_count":7,"open_issues_count":12,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-25T21:22:50.418Z","etag":null,"topics":["echo","go","react","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tructn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-20T06:31:01.000Z","updated_at":"2024-10-21T16:29:21.000Z","dependencies_parsed_at":"2023-10-15T14:49:56.859Z","dependency_job_id":"87bce358-a050-464d-9bd3-7763bb123955","html_url":"https://github.com/tructn/goal","commit_stats":null,"previous_names":["tnoss/goal","truc9/goal","tructn/goal"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tructn%2Fgoal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tructn%2Fgoal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tructn%2Fgoal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tructn%2Fgoal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tructn","download_url":"https://codeload.github.com/tructn/goal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248505852,"owners_count":21115353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["echo","go","react","tailwindcss"],"created_at":"2024-10-14T01:47:04.029Z","updated_at":"2025-04-12T01:43:13.769Z","avatar_url":"https://github.com/tructn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"art/logo-color.svg\" alt=\"drawing\" style=\"width:200px;\"/\u003e\n\nSimple Office Management System\n\n*⚠️ This project for learning purpose*\n\n[![CodeQL](https://github.com/truc9/goal/actions/workflows/codeql.yml/badge.svg)](https://github.com/truc9/goal/actions/workflows/codeql.yml)\n\n[![Go](https://github.com/truc9/goal/actions/workflows/go.yml/badge.svg)](https://github.com/truc9/goal/actions/workflows/go.yml)\n\n## Planning\n- [x] Local DB AuthN\n- [x] My Booking\n- [x] Booking Dashboard\n- [x] Role-based AuthZ\n- [x] Realtime Update for Dashboard\n- [x] Charts for Dashboard\n- [ ] Testing\n\n## Demo\n- Username: admin@goal.com\n- Password: admin\n\n## Hosting\n- Backend: https://www.fl0.com/\n- Frontend: https://vercel.com/\n\n## Screenshots\n\n![3](art/assets/2.png)\n\n![2](art/assets/3.png)\n\n![3](art/assets/4.png)\n\n![5](art/assets/6.png)\n\n![6](art/assets/7.png)\n\n## Development\n\n### Swagger API\n```\nhttp://localhost:8000/swagger/index.html#/\n```\n![0](art/assets/goal-swagger.png)\n\n### Environment Variable\n```\n\u003c!-- For signing JWT token --\u003e\nSECRET_KEY=\n```\n\n### Start API (hot reload)\n```\nair\n```\n\n### Start API (without hotreload)\n```\nmake run\n```\n\n### Create Migration\n```\nmigrate create -ext sql -dir \"./migrations\" -seq create_users_table\n```\n\n### Run Migration\n```\nmigrate -database \"postgres://postgres:admin@localhost:5432/goal?sslmode=disable\" -path \"./migrations\" up\n```\n\n### Start web\n```\ncd ./web \u0026\u0026 pnpm dev\n```\n\n### Run tests with coverage\n```\nmake test_cov\n```\n### Go Notes\n- Go does not support default parameter\n- Go does not support overload (https://go.dev/doc/faq#overloading)\n\n## Stack\n- Go\n- React\n- [MUI React](https://mui.com)\n- [TailwindCSS](https://tailwindcss.com)\n- [GORM (Postgres)](https://gorm.io)\n- [Zustand](https://docs.pmnd.rs/zustand/getting-started/introduction)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftructn%2Fgoal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftructn%2Fgoal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftructn%2Fgoal/lists"}