{"id":13819134,"url":"https://github.com/pddzl/td27-admin","last_synced_at":"2026-01-15T03:32:38.757Z","repository":{"id":126948304,"uuid":"588397101","full_name":"pddzl/td27-admin","owner":"pddzl","description":"基于Goalng、Gin、Casbin \u0026 Vue3、TypeScript、Element Plus、Pinia 的前后端分离的动态路由权限管理系统","archived":false,"fork":false,"pushed_at":"2026-01-10T16:11:18.000Z","size":9419,"stargazers_count":111,"open_issues_count":0,"forks_count":22,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-11T03:05:16.455Z","etag":null,"topics":["admin","casbin","element-plus","gin-admin","go-admin","golang","jwt","rbac","typescript","vite","vue-admin","vue3"],"latest_commit_sha":null,"homepage":"","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/pddzl.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-13T02:32:32.000Z","updated_at":"2026-01-10T10:39:19.000Z","dependencies_parsed_at":"2023-09-24T08:49:46.887Z","dependency_job_id":"2454fcf6-e338-40c2-8da6-e9bb1641096f","html_url":"https://github.com/pddzl/td27-admin","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/pddzl/td27-admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pddzl%2Ftd27-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pddzl%2Ftd27-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pddzl%2Ftd27-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pddzl%2Ftd27-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pddzl","download_url":"https://codeload.github.com/pddzl/td27-admin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pddzl%2Ftd27-admin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["admin","casbin","element-plus","gin-admin","go-admin","golang","jwt","rbac","typescript","vite","vue-admin","vue3"],"created_at":"2024-08-04T08:00:40.894Z","updated_at":"2026-01-15T03:32:38.752Z","avatar_url":"https://github.com/pddzl.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eTD27 Admin\u003c/h1\u003e\n  \u003ch4\u003eA Golang Rapid Development Framework Based on Gin + Vue3\u003c/h4\u003e\n  \u003cspan\u003eEnglish | \u003ca href=\"./README.zh-CN.md\"\u003e中文\u003c/a\u003e\u003c/span\u003e\n\u003c/div\u003e\n\n## Platform Overview\n\n* Frontend tech stack: TypeScript, Vue3, Element-Plus, Vite, Pinia\n* Backend tech stack: Golang, Gin, Gorm, MySQL, Redis, Casbin\n\n## Built-in Features\n\n- User Management: Full CRUD and lifecycle management for system accounts, including role binding and status toggling.\n\n- Role Management: Permission entities that map roles to menus and API endpoints.\n\n- Menu Management: Role-based dynamic routing and menu generation.\n\n- API Management: Role-level access control for backend API routes.\n\n- Operation Logs: Records user operations and request traces for auditing.\n\n- Scheduled Tasks: Supports cron-like task configuration via both YAML and UI-driven management.\n\n- File Management: Implements backend file storage with upload, retrieval, and deletion APIs.\n\n- Dictionary Management: Nested dictionary definitions for unified data mapping and frontend rendering.\n\n## Run\n\nDefault account / password:\n\n`admin/123456`\n\nClone the project\n`git clone https://github.com/pddzl/td27-admin.git`\n\n### Frontend\n\n```bash\n# Requirements\n1. Install recommended plugins from the .vscode directory\n2. Node version 18+\n3. pnpm version 8.x\n\n# Enter project directory\ncd web\n\n# Install dependencies\npnpm i\n\n# Start development server\npnpm dev\n\n# Preview staging environment\npnpm preview:stage\n\n# Preview production environment\npnpm preview:prod\n\n# Build staging environment\npnpm build:stage\n\n# Build production environment\npnpm build:prod\n\n# Format code\npnpm lint\n```\n\n### Backend\n\n```bash\n# Requirements\n1. Go \u003e= 1.25\n\n# Enter server directory\ncd server\n\n# Use go mod and install dependencies\ngo generate\n\n# Build\ngo build -o server cmd/server/main.go\n\n# Run the binary\n./server\n```\n\n#### Directory Structure\n```shell\n├── cmd                      # Main application entry points (one folder per binary)\n│   └── server               # Main HTTP server entry (main.go)\n│\n├── configs                  # Configuration files (YAML/JSON), config templates\n│\n├── docs                     # API docs, Swagger files, architecture docs\n│\n├── internal                 # Private application code (not for import by other modules)\n│   ├── api                  # Request handlers (Gin handlers / controllers)\n│   ├── core                 # Core startup logic (config load, logger, DB, server setup)\n│   ├── global               # Global variables (DB, Redis, Config, Logger, etc.)\n│   ├── initialize           # Init functions (router setup, config init, cron init)\n│   ├── middleware           # Gin middleware\n│   ├── model                # Data models: entity, request, response, VO, DTO\n│   ├── pkg                  # Shared utilities (tools, common helpers, not business logic)\n│   ├── router               # Router groups \u0026 route registration\n│   └── service              # Business logic \u0026 database operations (service layer)\n│\n├── log                      # Application logs\n│\n├── resource                 # Static resources (images, attachments, templates)\n│   └── upload               # File upload target directory\n│\n└── scripts                  # Shell scripts (build, deploy, maintenance)\n\n```\n\n**\u003cu\u003eIf you deploy manually, you must create a database `td27` and import the initialization data.\nSQL file location: `./docker-compose/mysql/init/init.sql` \u003c/u\u003e**\n\n## swagger\n\n```bash\ncd server\nswag init -g cmd/server/main.go -o docs --parseDependency --parseInternal\n```\n\n`Access Swagger UI`\n\n```bash\nhttp://localhost:8888/swagger/index.html\n```\n\n## One-Click Installation\n\nDocker Compose version must be V2\n\n```bash\ngit clone https://github.com/pddzl/td27-admin\ncd td27-admin\ndocker-compose -f docker-compose/docker-compose.yml build\ndocker-compose -f docker-compose/docker-compose.yml up -d\n```\n\nThen open in browser: `http://ip:8500`\n\n## Project Preview\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/p0.png\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/personal.png\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/p1.png\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/p2.png\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/menu.png\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/multi-menu.png\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/api.png\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./img/oplog.png\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Acknowledgements\n+ Frontend scaffold based on [v3-admin-vite](https://github.com/un-pany/v3-admin-vite)\n\n## 📄 License\n\n[MIT](./LICENSE)\n\nCopyright (c) 2022-present [pddzl](https://github.com/pddzl)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpddzl%2Ftd27-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpddzl%2Ftd27-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpddzl%2Ftd27-admin/lists"}