Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lucasshuan/b2c-ecommerce-api
B2C E-commerce platform built with Golang using Gin, GORM, and GQLGen (incomplete)
https://github.com/lucasshuan/b2c-ecommerce-api
asaas b2c ecommerce ecommerce-backend gin golang gorm gqlgen graphql
Last synced: about 1 month ago
JSON representation
B2C E-commerce platform built with Golang using Gin, GORM, and GQLGen (incomplete)
- Host: GitHub
- URL: https://github.com/lucasshuan/b2c-ecommerce-api
- Owner: lucasshuan
- Created: 2023-11-15T02:48:45.000Z (almost 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-26T02:01:03.000Z (12 months ago)
- Last Synced: 2024-10-02T05:22:48.832Z (about 1 month ago)
- Topics: asaas, b2c, ecommerce, ecommerce-backend, gin, golang, gorm, gqlgen, graphql
- Language: Go
- Homepage:
- Size: 327 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
B2C E-commerce API
📃 About |
💻 Technologies |
✨ Features |
🚀 Getting Started |
👨💻 Usage |
🗺️ Roadmap |
👤 Author## 📄 About
B2C (business to consumer) E-commerce API is a Golang project featuring GraphQL with gqlgen and Gin for Web Framework.The project adopts a well-organized controller-service-repository structure and supports various functionalities, including user registration, Google authentication, cart management, order creation, payment processing, and more. Additionally, it integrates Asaas for enhanced functionality.
One standout feature is its multitenant design. This means the project is crafted to effortlessly support various databases with different structures. This flexibility allows it to adapt and scale based on the specific needs or preferences of users and businesses.
## 💻 Technologies- [Go](https://golang.org/)
- [Docker](https://www.docker.com/)
- [gqlgen](https://gqlgen.com)
- [Asaas](https://www.asaas.com/)
- [Gin](https://gin-gonic.com)- **Authentication and Authorization:**
User registration with standard credentials or Google authentication.
- **Cart Management:**
Users can add products, create orders, and track payment status.
- **Product Management:**
Admins can add and categorize products for an enhanced shopping experience.
- **Order Processing:**
Creation of orders and secure payment processing with detailed status tracking.
- **Payment Integration:**
Seamless integration with Asaas for efficient and reliable payment processing.
- **User Lifecycle Enhancements:**
Password recovery, email verification, and more to enhance user experience.
- **Multitenancy:**
Designed for seamless scalability, the project supports multiple databases with varying structures.### Prerequisites
- **Go**
- **Docker**
- **make**### Installing
1. Clone the repository:
```bash
git clone https://github.com/lucasshuan/b2c-ecommerce-api.git
cd b2c-ecommerce-api
```2. Install dependencies:
```bash
make deps
```### Manage Docker containers
1. Start containers:
```bash
make docker-up
```2. Stop containers:
```bash
make docker-down
```### Configuration
The project utilizes a configuration file named `config.yml` to manage environment-specific settings.
```yaml
env: dev
dev:
port: 3000
tenants:
tenant1: scheme://user:password@host:port/db
tenant2: ...
```### Server
To start the development server, run the following command:
```bash
make server
```- **Testing Suite:** Integrate a comprehensive testing suite for robust code validation.
- **Expanded Database Support:** Extend database support beyond PostgreSQL and MySQL to include additional databases.
- **Enhanced Security:** Implement advanced security measures, such as JWT for user authentication and authorization.
- **Notification System:** Integrate a notification system to keep users informed about order updates and promotions.
- **Order Tracking:** Integrate a user-friendly order tracking system, providing real-time updates on order status and location.