skorotkiewicz / droplets

Droplets is a platform for Gophers.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WIP

droplets

GoDoc Go Report Card FOSSA Status

A platform for Gophers similar to the awesome Golang News.

Why ?

Droplets is NOT built because there is no such platform nor is it built to solve problems with existing platforms.

New gophers often struggle with deciding how to structure their applications and also miss certain important conventions (e.g., Accept Interfaces, Return Structs).

Droplets is built to showcase:

  1. A manageable Project Layout
  2. Application of CodeReviewComments and EffectiveGo
  3. Usage of Clean Architecture

Organization

Directory Structure

Directory structure is based on Project Layout.

1. internal/

  • contains non-reusable parts of the project
  • directories inside internal/ are organized as per Clean Architecture
    • domain/ contains different core entity definitions and represents the entities layer.
    • usecases/ contains different busniess logic built around entities and represents the usecases layer.
    • delivery/ exposes the usecases as API or web app and represents interface-adapter layer.
    • stores/ provides storage functions for domain entities and is also part of interface-adapter layer.

2. pkg/

  • contains re-usable parts of the project
  • these packages can be directly imported in other projects without being dependent on logic specific to droplets project.
  • some of the packages included:
    • logger - provides logging functions.
    • graceful - provides a server wrapper with graceful shutdown enabled.
    • middlewares - provides generic middlewares for use in REST or HTTP handlers

3. web/

  • contains web assets such as css, images, templates etc.

License

FOSSA Status

About

Droplets is a platform for Gophers.

License:MIT License


Languages

Language:Go 94.9%Language:Smarty 3.5%Language:Makefile 1.0%Language:Dockerfile 0.6%Language:CSS 0.0%