{"id":13786700,"url":"https://github.com/uadmin/uadmin","last_synced_at":"2025-05-11T22:32:10.869Z","repository":{"id":33259628,"uuid":"151695457","full_name":"uadmin/uadmin","owner":"uadmin","description":"The web framework for Golang","archived":false,"fork":false,"pushed_at":"2024-10-10T06:08:23.000Z","size":196327,"stargazers_count":343,"open_issues_count":25,"forks_count":60,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-11-17T22:36:27.492Z","etag":null,"topics":["framework","golang","web-framework"],"latest_commit_sha":null,"homepage":"https://uadmin.io","language":"Go","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/uadmin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-05T09:00:17.000Z","updated_at":"2024-11-12T11:29:32.000Z","dependencies_parsed_at":"2023-02-17T08:45:20.032Z","dependency_job_id":"87504826-499a-403e-bc62-6bf3110e7499","html_url":"https://github.com/uadmin/uadmin","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uadmin%2Fuadmin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uadmin%2Fuadmin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uadmin%2Fuadmin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uadmin%2Fuadmin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uadmin","download_url":"https://codeload.github.com/uadmin/uadmin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253645413,"owners_count":21941315,"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":["framework","golang","web-framework"],"created_at":"2024-08-03T19:01:29.413Z","updated_at":"2025-05-11T22:32:07.423Z","avatar_url":"https://github.com/uadmin.png","language":"Go","readme":"# uAdmin the Golang Web Framework\r\n\r\nEasy to use, blazing fast and secure.\r\n\r\n[![go report card](https://goreportcard.com/badge/github.com/uadmin/uadmin \"go report card\")](https://goreportcard.com/report/github.com/uadmin/uadmin)\r\n[![GoDoc](https://godoc.org/github.com/uadmin/uadmin?status.svg)](https://godoc.org/github.com/uadmin/uadmin)\r\n[![codecov](https://codecov.io/gh/uadmin/uadmin/branch/master/graph/badge.svg)](https://codecov.io/gh/uadmin/uadmin)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/uadmin/uadmin/blob/master/LICENSE)\r\n\r\nOriginally open source by [IntegrityNet Solutions and Services](https://www.integritynet.biz/)\r\n\r\nFor Documentation:\r\n\r\n- [Application in 2 Minutes!](https://www.youtube.com/watch?v=1WwOOYOIQBw\u0026t=41s)\r\n- [Coggle](https://coggle.it/diagram/XSzwl1j7lUdVWvIl/t/uadmin-the-golang-web-framework)\r\n- [Read the Docs](https://uadmin-docs.readthedocs.io/en/latest/)\r\n- [gophers.slack.com #uadmin](https://gophers.slack.com/messages/uadmin/)\r\n\r\n[join gophers.slack.com](https://join.slack.com/t/gophers/shared_invite/zt-fajz7jh3-2cpkmFU~hQb8d5LmOCnhfQ)\r\n\r\nSocial Media:\r\n\r\n- [Facebook](https://www.facebook.com/uadminio/)\r\n- [Medium](https://medium.com/@twistedhardware)\r\n- [Twitter](https://twitter.com/uAdminio)\r\n\r\n## Screenshots\r\n\r\n### Dashboard Menu\r\n\r\n![Dashboard](https://github.com/uadmin/uadmin-docs/raw/master/assets/uadmindashboard.png)\r\n\u0026nbsp;\r\n\r\n### Log\r\n\r\n![Log](https://github.com/uadmin/uadmin-docs/raw/master/assets/log.png)\r\n\u0026nbsp;\r\n\r\n### Login Form\r\n\r\n![Login Form](https://github.com/uadmin/uadmin-docs/raw/master/tutorial/assets/loginform.png)\r\n\u0026nbsp;\r\n\r\n## Features\r\n\r\n- AB Testing System\r\n- API Configuration\r\n- Approval System\r\n- Authentication and Permissions\r\n- Clean and sharp UI\r\n- Dashboard customization\r\n- Data Access API (dAPI)\r\n- Database schema migration\r\n- Error Handling\r\n- Export to Excel\r\n- Form and List customization\r\n- Image Cropping\r\n- IP address and port configuration\r\n- Log feature that keeps track of many things in your app\r\n- Metric System\r\n- Multilingual translation\r\n- MySQL Database Support\r\n- Offers FREE hosting for your app while you are developing by using a single command: uAdmin publish\r\n- Pretty good security features (SSL, 2-Factor Authentication, Password Reset, Hash Salt, Database Encryption)\r\n- Public access to media\r\n- Self-relation of foreign key/many2many\r\n- Sending an email from your app by establishing an email configuration\r\n- System settings could be used system-wide to keep application settings\r\n- Tag support for fields\r\n- Translation files preloading\r\n- Validation for user input\r\n- Webcam support on image and file fields\r\n\r\n## Minimum requirements\r\n\r\n| Operating System                   |                Architectures              |                                Notes                                                |\r\n|------------------------------------|-------------------------------------------|-------------------------------------------------------------------------------------|\r\n| FreeBSD 10.3 or later              |  amd64, 386                               | Debian GNU/kFreeBSD not supported                                                   |\r\n| Linux 2.6.23 or later with glibc   |  amd64, 386, arm, arm64, s390x, ppc64le   | CentOS/RHEL 5.x not supported. Install from source for other libc.                  |\r\n| macOS 10.10 or later               |  amd64                                    | Use the clang or gcc\u003csup\u003e†\u003c/sup\u003e that comes with Xcode\u003csup\u003e‡\u003c/sup\u003e for cgo support. |\r\n| Windows 7, Server 2008 R2 or later |  amd64, 386                               | Use MinGW gcc\u003csup\u003e†\u003c/sup\u003e. No need for cygwin or msys.                              |\r\n\r\n- \u003csup\u003e†\u003c/sup\u003e A C compiler is required only if you plan to use cgo.\r\n- \u003csup\u003e‡\u003c/sup\u003e You only need to install the command line tools for Xcode. If you have already installed Xcode 4.3+, you can install it from the Components tab of the Downloads preferences panel.\r\n\r\n### Hardware\r\n\r\n- RAM - minimum 256MB\r\n- CPU - minimum 2GHz\r\n\r\n### Software\r\n\r\n- Go Version 1.16 or later\r\n\r\n## Installation\r\n\r\n```bash\r\ngo get -u github.com/uadmin/uadmin/\r\ngo install github.com/uadmin/uadmin/cmd/uadmin@latest\r\n```\r\n\r\nTo test if your installation is fine, run the `uadmin` command line:\r\n\r\n```bash\r\n$ uadmin\r\nUsage: uadmin COMMAND [--src]\r\nThis tools helps you prepare a folder for a new project or update static files and templates\r\n\r\nCommands:\r\n  prepare         Generates folders and prepares static and templates\r\n  version         Shows the version of uAdmin\r\n\r\nArguments:\r\n  --src           If you want to copy static files and templates from src folder\r\n\r\nGet full documentation online:\r\nhttps://uadmin-docs.readthedocs.io/en/latest/\r\n```\r\n\r\n## Your First App\r\n\r\nLet's build your first app which is a Todo list. First, we will create a folder for your project and prepare it.\r\n\r\n```bash\r\n$ mkdir -p ~/go/src/github.com/your_name/todo\r\n$ cd ~/go/src/github.com/your_name/todo\r\n$ uadmin prepare\r\n[   OK   ]   Created: /Users/abdullah/go/src/github.com/twistedhardware/test/models\r\n[   OK   ]   Created: /Users/abdullah/go/src/github.com/twistedhardware/test/api\r\n[   OK   ]   Created: /Users/abdullah/go/src/github.com/twistedhardware/test/views\r\n[   OK   ]   Created: /Users/abdullah/go/src/github.com/twistedhardware/test/media\r\n[  INFO  ]   Copying static/templates from: /Users/abdullah/go/pkg/mod/github.com/uadmin/uadmin@v0.6.0\r\n[   OK   ]   Created: /Users/abdullah/go/src/github.com/twistedhardware/test/static\r\n[   OK   ]   Created: /Users/abdullah/go/src/github.com/twistedhardware/test/templates\r\n```\r\n\r\nNow use your code editor to create `main.go` and put this code inside it.\r\n\r\n```golang\r\npackage main\r\n\r\nimport (\r\n\t\"github.com/uadmin/uadmin\"\r\n\t\"time\"\r\n)\r\n\r\ntype Todo struct {\r\n\tuadmin.Model\r\n\tName        string\r\n\tDescription string `uadmin:\"html\"`\r\n\tTargetDate  time.Time\r\n\tProgress    int `uadmin:\"progress_bar\"`\r\n}\r\n\r\nfunc main() {\r\n\tuadmin.Register(Todo{})\r\n\tuadmin.StartServer()\r\n}\r\n```\r\n\r\nPrepare modules\r\n\r\n```bash\r\n$ go mod init\r\ngo: creating new go.mod: module github.com/twistedhardware/test\r\ngo: to add module requirements and sums:\r\n\tgo mod tidy\r\n\r\n$ go mod tidy\r\ngo: finding module for package github.com/uadmin/uadmin\r\ngo: found github.com/uadmin/uadmin in github.com/uadmin/uadmin v0.6.0\r\n```\r\n\r\nRun your app (Linux, Apple macOS or Windows):\r\n\r\n```bash\r\n$ go build; ./todo\r\n[   OK   ]   Initializing DB: [14/14]\r\n[   OK   ]   Initializing Languages: [185/185]\r\n[  INFO  ]   Auto generated admin user. Username:admin, Password:admin.\r\n[   OK   ]   Synching System Settings: [49/49]\r\n[   OK   ]   Server Started: http://0.0.0.0:8080\r\n         ___       __          _\r\n  __  __/   | ____/ /___ ___  (_)___\r\n / / / / /| |/ __  / __ '__ \\/ / __ \\\r\n/ /_/ / ___ / /_/ / / / / / / / / / /\r\n\\__,_/_/  |_\\__,_/_/ /_/ /_/_/_/ /_/\r\n```\r\n\r\nIn Windows:\r\n\r\n```bash\r\n\u003e go build \u0026\u0026 todo.exe\r\n[   OK   ]   Initializing DB: [14/14]\r\n[   OK   ]   Initializing Languages: [185/185]\r\n[  INFO  ]   Auto generated admin user. Username:admin, Password:admin.\r\n[   OK   ]   Synching System Settings: [49/49]\r\n[   OK   ]   Server Started: http://0.0.0.0:8080\r\n         ___       __          _\r\n  __  __/   | ____/ /___ ___  (_)___\r\n / / / / /| |/ __  / __  __ \\/ / __ \\\r\n/ /_/ / ___ / /_/ / / / / / / / / / /\r\n\\__,_/_/  |_\\__,_/_/ /_/ /_/_/_/ /_/\r\n```\r\n\r\n# Quick Reference\r\n\r\n## Overriding Save Function\r\n\r\n```golang\r\nfunc (m *Model) Save() {\r\n\t// business logic\r\n\tuadmin.Save(m)\r\n}\r\n```\r\n\r\n## Validation\r\n\r\n```golang\r\nfunc (m Model) Validate() (ret map[string]string) {\r\n  ret = map[string]string{}\r\n  if m.Name != \"test\" {\r\n    ret[\"Name\"] = \"Error name not found\"\r\n  }\r\n  return\r\n}\r\n```\r\n","funding_links":[],"categories":["web框架","Web Frameworks","Web框架","Utility","web框架`web 框架`"],"sub_categories":["版本控制","Utility/Miscellaneous","实用程序/Miscellaneous","HTTP Clients","版本控制`版本控制相关库`","Fail injection"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuadmin%2Fuadmin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuadmin%2Fuadmin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuadmin%2Fuadmin/lists"}