Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uadmin/uadmin
The web framework for Golang
https://github.com/uadmin/uadmin
framework golang web-framework
Last synced: about 1 month ago
JSON representation
The web framework for Golang
- Host: GitHub
- URL: https://github.com/uadmin/uadmin
- Owner: uadmin
- License: mit
- Created: 2018-10-05T09:00:17.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-19T02:39:51.000Z (6 months ago)
- Last Synced: 2024-08-03T19:10:01.527Z (5 months ago)
- Topics: framework, golang, web-framework
- Language: Go
- Homepage: https://uadmin.io
- Size: 187 MB
- Stars: 330
- Watchers: 19
- Forks: 59
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-go-extra - uadmin - 10-05T09:00:17Z|2022-08-03T11:00:40Z| (Web Frameworks / Fail injection)
README
# uAdmin the Golang Web Framework
Easy to use, blazing fast and secure.
[![go report card](https://goreportcard.com/badge/github.com/uadmin/uadmin "go report card")](https://goreportcard.com/report/github.com/uadmin/uadmin)
[![GoDoc](https://godoc.org/github.com/uadmin/uadmin?status.svg)](https://godoc.org/github.com/uadmin/uadmin)
[![codecov](https://codecov.io/gh/uadmin/uadmin/branch/master/graph/badge.svg)](https://codecov.io/gh/uadmin/uadmin)
[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/uadmin/uadmin/blob/master/LICENSE)Originally open source by [IntegrityNet Solutions and Services](https://www.integritynet.biz/)
For Documentation:
- [Application in 2 Minutes!](https://www.youtube.com/watch?v=1WwOOYOIQBw&t=41s)
- [Coggle](https://coggle.it/diagram/XSzwl1j7lUdVWvIl/t/uadmin-the-golang-web-framework)
- [Read the Docs](https://uadmin-docs.readthedocs.io/en/latest/)
- [gophers.slack.com #uadmin](https://gophers.slack.com/messages/uadmin/)[join gophers.slack.com](https://join.slack.com/t/gophers/shared_invite/zt-fajz7jh3-2cpkmFU~hQb8d5LmOCnhfQ)
Social Media:
- [Facebook](https://www.facebook.com/uadminio/)
- [Medium](https://medium.com/@twistedhardware)
- [Twitter](https://twitter.com/uAdminio)## Screenshots
### Dashboard Menu
![Dashboard](https://github.com/uadmin/uadmin-docs/raw/master/assets/uadmindashboard.png)
### Log
![Log](https://github.com/uadmin/uadmin-docs/raw/master/assets/log.png)
### Login Form
![Login Form](https://github.com/uadmin/uadmin-docs/raw/master/tutorial/assets/loginform.png)
## Features
- AB Testing System
- API Configuration
- Approval System
- Authentication and Permissions
- Clean and sharp UI
- Dashboard customization
- Data Access API (dAPI)
- Database schema migration
- Error Handling
- Export to Excel
- Form and List customization
- Image Cropping
- IP address and port configuration
- Log feature that keeps track of many things in your app
- Metric System
- Multilingual translation
- MySQL Database Support
- Offers FREE hosting for your app while you are developing by using a single command: uAdmin publish
- Pretty good security features (SSL, 2-Factor Authentication, Password Reset, Hash Salt, Database Encryption)
- Public access to media
- Self-relation of foreign key/many2many
- Sending an email from your app by establishing an email configuration
- System settings could be used system-wide to keep application settings
- Tag support for fields
- Translation files preloading
- Validation for user input
- Webcam support on image and file fields## Minimum requirements
| Operating System | Architectures | Notes |
|------------------------------------|-------------------------------------------|-------------------------------------------------------------------------------------|
| FreeBSD 10.3 or later | amd64, 386 | Debian GNU/kFreeBSD not supported |
| 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. |
| macOS 10.10 or later | amd64 | Use the clang or gcc† that comes with Xcode‡ for cgo support. |
| Windows 7, Server 2008 R2 or later | amd64, 386 | Use MinGW gcc†. No need for cygwin or msys. |- † A C compiler is required only if you plan to use cgo.
- ‡ 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.### Hardware
- RAM - minimum 256MB
- CPU - minimum 2GHz### Software
- Go Version 1.16 or later
## Installation
```bash
go get -u github.com/uadmin/uadmin/
go install github.com/uadmin/uadmin/cmd/uadmin@latest
```To test if your installation is fine, run the `uadmin` command line:
```bash
$ uadmin
Usage: uadmin COMMAND [--src]
This tools helps you prepare a folder for a new project or update static files and templatesCommands:
prepare Generates folders and prepares static and templates
version Shows the version of uAdminArguments:
--src If you want to copy static files and templates from src folderGet full documentation online:
https://uadmin-docs.readthedocs.io/en/latest/
```## Your First App
Let's build your first app which is a Todo list. First, we will create a folder for your project and prepare it.
```bash
$ mkdir -p ~/go/src/github.com/your_name/todo
$ cd ~/go/src/github.com/your_name/todo
$ uadmin prepare
[ OK ] Created: /Users/abdullah/go/src/github.com/twistedhardware/test/models
[ OK ] Created: /Users/abdullah/go/src/github.com/twistedhardware/test/api
[ OK ] Created: /Users/abdullah/go/src/github.com/twistedhardware/test/views
[ OK ] Created: /Users/abdullah/go/src/github.com/twistedhardware/test/media
[ INFO ] Copying static/templates from: /Users/abdullah/go/pkg/mod/github.com/uadmin/[email protected]
[ OK ] Created: /Users/abdullah/go/src/github.com/twistedhardware/test/static
[ OK ] Created: /Users/abdullah/go/src/github.com/twistedhardware/test/templates
```Now use your code editor to create `main.go` and put this code inside it.
```golang
package mainimport (
"github.com/uadmin/uadmin"
"time"
)type Todo struct {
uadmin.Model
Name string
Description string `uadmin:"html"`
TargetDate time.Time
Progress int `uadmin:"progress_bar"`
}func main() {
uadmin.Register(Todo{})
uadmin.StartServer()
}
```Prepare modules
```bash
$ go mod init
go: creating new go.mod: module github.com/twistedhardware/test
go: to add module requirements and sums:
go mod tidy$ go mod tidy
go: finding module for package github.com/uadmin/uadmin
go: found github.com/uadmin/uadmin in github.com/uadmin/uadmin v0.6.0
```Run your app (Linux, Apple macOS or Windows):
```bash
$ go build; ./todo
[ OK ] Initializing DB: [14/14]
[ OK ] Initializing Languages: [185/185]
[ INFO ] Auto generated admin user. Username:admin, Password:admin.
[ OK ] Synching System Settings: [49/49]
[ OK ] Server Started: http://0.0.0.0:8080
___ __ _
__ __/ | ____/ /___ ___ (_)___
/ / / / /| |/ __ / __ '__ \/ / __ \
/ /_/ / ___ / /_/ / / / / / / / / / /
\__,_/_/ |_\__,_/_/ /_/ /_/_/_/ /_/
```In Windows:
```bash
> go build && todo.exe
[ OK ] Initializing DB: [14/14]
[ OK ] Initializing Languages: [185/185]
[ INFO ] Auto generated admin user. Username:admin, Password:admin.
[ OK ] Synching System Settings: [49/49]
[ OK ] Server Started: http://0.0.0.0:8080
___ __ _
__ __/ | ____/ /___ ___ (_)___
/ / / / /| |/ __ / __ __ \/ / __ \
/ /_/ / ___ / /_/ / / / / / / / / / /
\__,_/_/ |_\__,_/_/ /_/ /_/_/_/ /_/
```# Quick Reference
## Overriding Save Function
```golang
func (m *Model) Save() {
// business logic
uadmin.Save(m)
}
```## Validation
```golang
func (m Model) Validate() (ret map[string]string) {
ret = map[string]string{}
if m.Name != "test" {
ret["Name"] = "Error name not found"
}
return
}
```