← Back to projects

BeFriendly

Shipped
Backend Engineer•October 2024
GolangGin-GonicGORMPostgreSQL

Social networking platform with REST API designed with separation of concerns, modular architecture, and structured error handling.

Golang, Gin-Gonic
Stack
Modular, DI
Architecture

Overview

Social networking platform with REST API designed with separation of concerns, modular architecture, and structured error handling.

My Role

Backend Engineer

Responsibilities

  • Designed and implemented REST API architecture
  • Built database migrations and schema management
  • Implemented request validation and error handling
  • Set up structured logging and monitoring
  • Established dependency injection patterns
  • Conducted code reviews and maintained code quality

Key Contributions

  • Designed REST API with clear separation of concerns
  • Implemented migrations, validation, and structured logging
  • Built modular architecture with dependency injection
  • Established code review processes and error handling patterns

Architecture

Golang backend using Gin-Gonic web framework. GORM for database operations with PostgreSQL. Modular architecture with dependency injection. Structured logging and error handling.

System Diagram

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│   Client    │────▶│   Gin-Gonic  │────▶│   Handlers  │
│  (Web/Mobile)│     │   Router     │     │   (Routes)  │
└─────────────┘     └──────────────┘     └─────────────┘
                            │
                            ▼
                    ┌──────────────┐
                    │   Services   │
                    │   (Business  │
                    │    Logic)    │
                    └──────────────┘
                            │
                            ▼
                    ┌──────────────┐
                    │   Database    │
                    │ (PostgreSQL)  │
                    │    (GORM)     │
                    └──────────────┘

Components

  • Gin-Gonic Router: HTTP router and middleware handling request routing and validation.
  • Handlers: Request handlers with separation of concerns and structured error handling.
  • Services: Business logic layer with dependency injection for modularity.
  • Database: PostgreSQL with GORM ORM, managed through migrations.

Outcome

  • Shipped REST API with modular architecture
  • Established code review and quality processes
  • Implemented structured logging and error handling