A backend e-commerce application built with Go (Golang) using the Fiber web framework and following a modular layered architecture. The project provides RESTful APIs for user management, product catalog management, shopping cart and order processing, payment integration, and notification services.
Status: Currently being migrated to a Microservices Architecture using Hexagonal Architecture, gRPC, and Docker.
- User registration and management
- Product catalog management
- Category management
- Shopping cart
- Order and transaction management
- Stripe payment integration
- SMS notification support
- RESTful API
- Docker Compose support
- Go (Golang)
- Fiber
- GORM
- PostgreSQL
- JWT Authentication
- Docker
- Docker Compose
- Stripe API
- Twilio SMS (or the SMS provider you actually use)
- Go Modules
.
├── config/
├── internal/
│ ├── api/
│ │ └── rest/
│ │ ├── handlers/
│ │ ├── httpHandler.go
│ │ └── response.go
│ ├── domain/
│ ├── dto/
│ ├── helper/
│ ├── repository/
│ └── service/
├── pkg/
│ ├── notification/
│ └── payment/
├── docker-compose.yaml
├── go.mod
├── main.go
└── README.md
Current architecture:
HTTP Request
│
REST Handlers
│
Service Layer
│
Repository Layer
│
Database
The project follows a Layered Architecture with clear separation of concerns.
Responsible for:
- User registration
- User management
- Authentication utilities
Responsible for:
- Product management
- Category management
Responsible for:
- Shopping cart
- Orders
- Transactions
Responsible for:
- Stripe payment integration
Responsible for:
- SMS notifications
git clone https://github.com/Girmex/go-ecommerce.gitcd go-ecommercego mod downloadgo run main.godocker compose up -dThis project is being migrated into a production-ready Microservices Architecture.
Planned services include:
- API Gateway
- Auth Service
- User Service
- Product Service
- Order Service
- Payment Service
- Notification Service
Additional improvements:
- gRPC communication
- Hexagonal Architecture
- Independent databases per service
- Dockerized deployment
- Unit testing
- Integration testing
- CI/CD pipeline
This project demonstrates:
- Backend development with Go
- REST API development
- Layered Architecture
- Domain-oriented code organization
- Docker-based development
- Stripe integration
- Notification integration
Future versions will demonstrate:
- Microservices
- gRPC
- Hexagonal Architecture
- API Gateway
- Distributed systems
Girma Moges
GitHub: https://github.com/Girmex