{"repo":"Fs02/go-todo-backend","free":true,"listed":false,"github":"https://github.com/Fs02/go-todo-backend","clone":"git clone https://github.com/Fs02/go-todo-backend.git","description":"Go Todo Backend example using modular project layout for product microservice.","language":"Go","stars":335,"topics":["go","golang","modular","project-structure","project-template","todolist"],"license":"MIT","category":"productivity","readme_excerpt":"go-todo-backend Go Todo Backend Example Using Modular Project Layout for Product Microservice. It's suitable as starting point for a medium to larger project. This example uses Chi for http router and REL for database access. Feature: - Modular Project Structure. - Full example including tests. - Docker deployment. - Compatible with todobackend. Installation Prerequisite 1. Install mockery for interface mock generation. 2. Install rel cli for database migration. Running 1. Prepare .env . 2. Start postgresql and create database. 2. Prepare database schema. 3. Build and Running Project Structure This project structure is based on a modular project structure, with loosely coupled dependencies between domain, Think of making libraries under a single repo that only exports certain functionality that used by other service and http handler. One of domain that present in this example is todos. Loosely coupled dependency between domain is enforced by avoiding the use of shared entity package, therefore any entity struct should be included inside it's own respective domain. This will prevent cyclic dependency between entity. This shouldn't be a problem in most cases, becasause if you encounter cyclic dependency, there's huge chance that the entity should belongs to the same domain. For example, consider three structs: user, transaction and transaction items. transaction and its transaction items might need cyclic dependency and items doesn't works standalone (items without transaction ","default_branch":null,"files":null,"tree":[],"storefront":"/r/Fs02","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Fs02/go-todo-backend/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}