GithubHelp home page GithubHelp logo

solid-software-task's Introduction

Architecture

High-Level File Structure

  • ./cmd: Contains the entry point for the program, allowing users to run and use its features.
  • ./config: Contains configuration files that define the behavior of the program and allow users to customize it to their needs.
  • ./internal: Contains the program's internal logic, the code that dictates how the software works and operates.
  • ./pkg: Incorporates the external logic of the program that can be utilized by other applications to add new features or refine existing ones.

Internal Architecture The internal components of the program are defined by a clean architecture that establishes a high-level hierarchy.

Clean architecture is a software design that helps maintain an organized codebase and promotes development flexibility. For a better understanding of the architecture, it's recommended to read "Clean Architecture" by Robert Martin.

File Structure of the internal Directory:

  • ./app: Responsible for the program's initialization, and contains code related to the initialization of other levels.
  • ./entity: Represents the core business domain, reflecting the entities of the application and operations on them. It also includes the most critical business rules [high-level module].
  • ./service: Represents the business logic layer, responsible for executing business rules, such as user authentication, registration, etc. [mid-level module].
  • ./api: This layer is responsible for communication with external services [low-level module].
  • ./storage: The storage layer, responsible for performing CRUD operations on the data [low-level module].
  • ./controller: The transport layer, responsible for obtaining input data, passing it to the business logic level, and returning the output result. Here you can find directories like http, pubsub, and queue, as these are all data exchange mechanisms [low-level module].

Run locally

To run all necessary services you need to execute a command in the root folder: docker-compose --env-file config/.env up --build postgresdb api

For stop containers and removing all images run command: docker-compose down --rmi local

Testing

You can run sh tests.sh in the root folder to call endpoints. Note that script requires jq binary to be preinstalled.

solid-software-task's People

Contributors

taraslis453 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.