How artesia0528/porto-backend-golang works
Portfolio Backend is a Go REST API for public portfolio content and authenticated administration. Visitors can retrieve projects, blogs, and experiences or submit contact messages; administrators log in for a JWT and use protected endpoints to manage content and messages. The runtime wires HTTP handlers, business services, repositories, and PostgreSQL persistence. Project, blog, experience, and message modules are included because the route registration exposes those capabilities, though their unsampled internal calls are not inferred. Evidence is limited to the README and the excerpted/indexed source files.
Main entry points: main.go API Server · routes.go Route Registration · auth_service.go Authentication · experience_service.go Experience Management
Components 25
HTTP API
- API Server
cmd/api/main.go - Route Registration
internal/routes/routes.go - JWT Guard
internal/middleware/auth_middleware.go - Auth Handler
internal/handlers/auth_handler.go - Project Handler
internal/handlers/project_handler.go - Blog Handler
internal/handlers/blog_handler.go - Experience Handler
internal/handlers/experience_handler.go - Message Handler
internal/handlers/message_handler.go
Portfolio Features
- Authentication
internal/services/auth_service.go - Project Management
internal/services/project_service.go - Blog Management
internal/services/blog_service.go - Experience Management
internal/services/experience_service.go - Contact Messages
internal/services/message_service.go
Persistence
- User Repository
internal/repositories/user_repository.go - Project Repository
internal/repositories/project_repository.go - Blog Repository
internal/repositories/blog_repository.go - Experience Repository
internal/repositories/experience_repository.go - Message Repository
internal/repositories/message_repository.go - PostgreSQL
Runtime Services
- Configuration
internal/config/config.go - Database Setup
internal/database/database.go - Admin Seeder
internal/database/seeder.go - Upload Utilities
internal/utils/fileupload.go - JWT Utilities
internal/utils/jwt.go
Other components
- Visitor / Admin
Connections 31
- Visitor / Admin → Route Registration: sends requests
README.md - API Server → Configuration: loads settings
cmd/api/main.go - API Server → Database Setup: connects database
cmd/api/main.go - API Server → Admin Seeder: seeds admin
cmd/api/main.go - API Server → Route Registration: registers routes
cmd/api/main.go - API Server → JWT Guard: enables CORS
cmd/api/main.go - API Server → PostgreSQL: opens connection
- Database Setup → PostgreSQL: migrates models
internal/database/database.go - API Server → User Repository: wires repository
cmd/api/main.go - API Server → Project Repository: wires repository
cmd/api/main.go - API Server → Blog Repository: wires repository
cmd/api/main.go - API Server → Experience Repository: wires repository
cmd/api/main.go - API Server → Message Repository: wires repository
cmd/api/main.go - API Server → Authentication: constructs service
cmd/api/main.go - API Server → Project Management: constructs service
cmd/api/main.go - API Server → Blog Management: constructs service
cmd/api/main.go - API Server → Experience Management: constructs service
cmd/api/main.go - API Server → Contact Messages: constructs service
cmd/api/main.go - Route Registration → JWT Guard: guards admin routes
internal/routes/routes.go - Route Registration → Auth Handler: routes login
internal/routes/routes.go - Route Registration → Project Handler: routes project API
internal/routes/routes.go - Route Registration → Blog Handler: routes blog API
internal/routes/routes.go - Route Registration → Experience Handler: routes experience API
internal/routes/routes.go - Route Registration → Message Handler: routes contact API
internal/routes/routes.go - Auth Handler → Authentication: delegates login
internal/handlers/auth_handler.go - Experience Handler → Experience Management: delegates operations
internal/handlers/experience_handler.go - Authentication → User Repository: looks up users
internal/services/auth_service.go - Authentication → JWT Utilities: creates token
internal/services/auth_service.go - Experience Management → Experience Repository: reads and writes
internal/services/experience_service.go - Experience Management → Upload Utilities: stores logos
internal/services/experience_service.go - JWT Guard → JWT Utilities: validates token
internal/middleware/auth_middleware.go