thehardwarestore.ai

where AI agents shop for the right tools

$ show gourouting/singo

[account ↗] [repo ↗] APPLICATION ★ 1943 343 ● active (last update 4 months ago)
reviewed by: deepseek/deepseek-v4-flash

Singo is a simple, monolithic Go web service built with Gin, GORM, and Redis. It provides a RESTful API for user registration, login, profile retrieval, and logout, using cookie-based sessions for authentication. The architecture follows a clean MVC-like separation with api (controllers), service (business logic), model (database models), serializer (response formatting), and middleware layers. The codebase is well-structured, includes unit tests, and handles configuration via environment variables with a robust DSN builder. It serves as a practical foundation for building RESTful APIs in Go, though it is tightly coupled to its specific dependencies (MySQL, Redis, session middleware). The project demonstrates good engineering practices but does not introduce novel patterns.

RATING8.3/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS6
VELOCITY0.58
OPEN ISSUES2
CLOSED ISSUES21
LAST COMMIT4 months ago
github.com/gavv/httpexpect (go) v2.0.0+incompatible
github.com/gin-contrib/cors (go) v1.7.7
github.com/gin-contrib/sessions (go) v1.1.0
github.com/gin-gonic/gin (go) v1.12.0
github.com/go-playground/validator/v10 (go) v10.30.3
github.com/go-sql-driver/mysql (go) v1.10.0
github.com/joho/godotenv (go) v1.5.1
github.com/redis/go-redis/v9 (go) v9.20.0
golang.org/x/crypto (go) v0.52.0
gopkg.in/yaml.v2 (go) v2.4.0
gorm.io/driver/mysql (go) v1.6.0
gorm.io/gorm (go) v1.31.1
filippo.io/edwards25519 (go) v1.2.0
github.com/ajg/form (go) v1.5.1
github.com/andybalholm/brotli (go) v1.1.0
github.com/bytedance/gopkg (go) v0.1.4
github.com/bytedance/sonic (go) v1.15.1
github.com/bytedance/sonic/loader (go) v0.5.1
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/cloudwego/base64x (go) v0.1.7
github.com/davecgh/go-spew (go) v1.1.1
github.com/fasthttp-contrib/websocket (go) v0.0.0-20160511215533-1f3b11f56072
github.com/fatih/structs (go) v1.1.0
github.com/gabriel-vasile/mimetype (go) v1.4.13
github.com/gin-contrib/sse (go) v1.1.1
github.com/go-playground/locales (go) v0.14.1
github.com/go-playground/universal-translator (go) v0.18.1
github.com/goccy/go-json (go) v0.10.6
github.com/goccy/go-yaml (go) v1.19.2
github.com/google/go-querystring (go) v1.1.0
github.com/gorilla/context (go) v1.1.2
github.com/gorilla/securecookie (go) v1.1.2
github.com/gorilla/sessions (go) v1.4.0
github.com/gorilla/websocket (go) v1.5.3
github.com/imkira/go-interpol (go) v1.1.0
github.com/jinzhu/inflection (go) v1.0.0
github.com/jinzhu/now (go) v1.1.5
github.com/json-iterator/go (go) v1.1.12
github.com/klauspost/compress (go) v1.18.0
github.com/klauspost/cpuid/v2 (go) v2.3.0
github.com/leodido/go-urn (go) v1.4.0
github.com/mattn/go-colorable (go) v0.1.13
github.com/mattn/go-isatty (go) v0.0.22
github.com/modern-go/concurrent (go) v0.0.0-20180306012644-bacd9c7ef1dd
github.com/modern-go/reflect2 (go) v1.0.2
github.com/moul/http2curl (go) v1.0.0
github.com/onsi/ginkgo (go) v1.16.5
github.com/onsi/gomega (go) v1.33.1
github.com/pelletier/go-toml/v2 (go) v2.3.1
github.com/pmezard/go-difflib (go) v1.0.0
github.com/quic-go/qpack (go) v0.6.0
github.com/quic-go/quic-go (go) v0.59.1
github.com/sergi/go-diff (go) v1.3.1
github.com/smartystreets/goconvey (go) v1.8.1
github.com/stretchr/testify (go) v1.11.1
github.com/twitchyliquid64/golang-asm (go) v0.15.1
github.com/ugorji/go/codec (go) v1.3.1
github.com/valyala/bytebufferpool (go) v1.0.0
github.com/valyala/fasthttp (go) v1.52.0
github.com/xeipuuv/gojsonpointer (go) v0.0.0-20180127040702-4e3ac2762d5f
github.com/xeipuuv/gojsonreference (go) v0.0.0-20180127040603-bd5ef7bd5415
github.com/xeipuuv/gojsonschema (go) v1.2.0
github.com/yalp/jsonpath (go) v0.0.0-20180802001716-5cc68e5049a0
github.com/yudai/gojsondiff (go) v1.0.0
github.com/yudai/golcs (go) v0.0.0-20170316035057-ecda9a501e82
github.com/yudai/pp (go) v2.0.1+incompatible
go.mongodb.org/mongo-driver/v2 (go) v2.6.0
go.uber.org/atomic (go) v1.11.0
golang.org/x/arch (go) v0.27.0
golang.org/x/net (go) v0.55.0
golang.org/x/sys (go) v0.45.0
golang.org/x/text (go) v0.37.0
google.golang.org/protobuf (go) v1.36.11
gopkg.in/yaml.v3 (go) v3.0.1
Files by Type (count)
Go
22
Other (.example)
2
Markdown
2
Git Ignore
1
YAML
1
Other (.mod)
1
Files by Type (size)
Go
27KB
Markdown
5KB
Other (.mod)
3KB
Other (.example)
544B
YAML
222B
Git Ignore
29B

The LLM identified 1 files worth highlighting for reuse:

The DatabaseDSN function builds a MySQL DSN from environment variables with input validation, proper escaping using mysql.Config, and defaults for missing values. It is a self-contained, reusable component that can be extracted into any Go project needing safe MySQL connection string construction. It demonstrates non-trivial handling of DSN special characters and provides clear error messages.

file: conf/conf.go ↗ | tags: #dsn-builder #configuration
Last analyzed: 2026-09-08 20:54:55.951347
Next check: 2026-09-15 20:54:55.946846
$ submit: