{"id":15096023,"url":"https://github.com/lucasshuan/b2c-ecommerce-api","last_synced_at":"2025-04-14T22:13:20.803Z","repository":{"id":207298291,"uuid":"718903273","full_name":"lucasshuan/b2c-ecommerce-api","owner":"lucasshuan","description":"B2C E-commerce platform built with Golang using Gin, GORM, and GQLGen (incomplete)","archived":false,"fork":false,"pushed_at":"2023-11-26T02:01:03.000Z","size":335,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T22:13:11.168Z","etag":null,"topics":["asaas","b2c","ecommerce","ecommerce-backend","gin","golang","gorm","gqlgen","graphql"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucasshuan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-15T02:48:45.000Z","updated_at":"2024-10-19T00:28:00.000Z","dependencies_parsed_at":"2023-11-26T03:20:16.456Z","dependency_job_id":null,"html_url":"https://github.com/lucasshuan/b2c-ecommerce-api","commit_stats":null,"previous_names":["nobeluc/ecommerce-api","nobeluc/b2c-ecommerce-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasshuan%2Fb2c-ecommerce-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasshuan%2Fb2c-ecommerce-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasshuan%2Fb2c-ecommerce-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasshuan%2Fb2c-ecommerce-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasshuan","download_url":"https://codeload.github.com/lucasshuan/b2c-ecommerce-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248968917,"owners_count":21191162,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asaas","b2c","ecommerce","ecommerce-backend","gin","golang","gorm","gqlgen","graphql"],"created_at":"2024-09-25T15:44:57.059Z","updated_at":"2025-04-14T22:13:20.769Z","avatar_url":"https://github.com/lucasshuan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n   \u003cimg src=\"https://github.com/lucasshuan/lucasshuan/assets/78228526/250d306c-c9d7-4b9a-990a-120a8028e881\"\u003e\u003cbr\u003e\n   \u003ch1\u003eB2C E-commerce API\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#about\"\u003e📃 About\u003c/a\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#technologies\"\u003e💻 Technologies\u003c/a\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#features\"\u003e✨ Features\u003c/a\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#getting_started\"\u003e🚀 Getting Started\u003c/a\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#usage\"\u003e👨‍💻 Usage\u003c/a\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#roadmap\"\u003e🗺️ Roadmap\u003c/a\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#author\"\u003e👤 Author\u003c/a\u003e\n\u003c/p\u003e\n\n## 📄 About \u003ca name = \"about\"\u003e\u003c/a\u003e\n   \nB2C (business to consumer) E-commerce API is a Golang project featuring GraphQL with gqlgen and Gin for Web Framework. \n\nThe 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.\n\nOne 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.\n   \n## 💻 Technologies \u003ca name=\"technologies\"\u003e\u003c/a\u003e\n\n- [Go](https://golang.org/)\n- [Docker](https://www.docker.com/)\n- [gqlgen](https://gqlgen.com)\n- [Asaas](https://www.asaas.com/)\n- [Gin](https://gin-gonic.com)\n\n## ✨ Features \u003ca name=\"features\"\u003e\u003c/a\u003e\n\n- **Authentication and Authorization:** \nUser registration with standard credentials or Google authentication.\n- **Cart Management:** \nUsers can add products, create orders, and track payment status.\n- **Product Management:** \nAdmins can add and categorize products for an enhanced shopping experience.\n- **Order Processing:** \nCreation of orders and secure payment processing with detailed status tracking.\n- **Payment Integration:** \nSeamless integration with Asaas for efficient and reliable payment processing.\n- **User Lifecycle Enhancements:** \nPassword recovery, email verification, and more to enhance user experience.\n- **Multitenancy:** \nDesigned for seamless scalability, the project supports multiple databases with varying structures.\n\n## 🚀 Getting Started \u003ca name = \"getting_started\"\u003e\u003c/a\u003e\n\n### Prerequisites\n\n- **Go**\n- **Docker**\n- **make**\n\n### Installing\n\n1. Clone the repository:\n\n    ```bash\n    git clone https://github.com/lucasshuan/b2c-ecommerce-api.git\n    cd b2c-ecommerce-api\n    ```\n\n2. Install dependencies:\n\n    ```bash\n    make deps\n    ```\n\n## 👨‍💻 Usage \u003ca name = \"usage\"\u003e\u003c/a\u003e\n\n### Manage Docker containers\n\n1. Start containers:\n\n    ```bash\n    make docker-up\n    ```\n\n2. Stop containers:\n\n    ```bash\n    make docker-down\n    ```\n\n### Configuration\n\nThe project utilizes a configuration file named `config.yml` to manage environment-specific settings.\n\n```yaml\nenv: dev\ndev:\n  port: 3000\n  tenants:\n    tenant1: scheme://user:password@host:port/db\n    tenant2: ...\n```\n\n### Server\n\nTo start the development server, run the following command:\n\n```bash\nmake server\n```\n\n## 🗺️ Roadmap \u003ca name=\"roadmap\"\u003e\u003c/a\u003e\n\n- **Testing Suite:** Integrate a comprehensive testing suite for robust code validation.\n- **Expanded Database Support:** Extend database support beyond PostgreSQL and MySQL to include additional databases.\n- **Enhanced Security:** Implement advanced security measures, such as JWT for user authentication and authorization.\n- **Notification System:** Integrate a notification system to keep users informed about order updates and promotions.\n- **Order Tracking:** Integrate a user-friendly order tracking system, providing real-time updates on order status and location.\n\n\n## 👤 Author \u003ca name = \"author\"\u003e\u003c/a\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"http://github.com/lucasshuan\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/78228526?v=4\" width=\"75px;\"/\u003e\n          \u003cbr /\u003e\n          \u003csub\u003e\n            \u003cb\u003eLucas Shuan\u003c/b\u003e\n          \u003c/sub\u003e\n        \u003c/a\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasshuan%2Fb2c-ecommerce-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasshuan%2Fb2c-ecommerce-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasshuan%2Fb2c-ecommerce-api/lists"}