loop-app
A simple pulse-survey application.
The goal of the project is to implement the Hexagonal Architecture
Getting Started
Prerequisites
Setup
- Clone the repository.
git clone github.com/jbactad/loop.git
cd loop
- Install tools.
make setup
- Start the dependencies, i.e. database.
make dep-up
- Run the migrations.
make db-migrate
make db-seed # Optional
- Start the application.
make run
Go to http://localhost:8080 to view GraphQL Playground.
Project Structure
.
├── application
│ ├── commands
│ ├── ports
│ └── queries
├── cmd
│ ├── db
│ └── graphql
├── db
│ ├── migrations
│ └── seeds
├── domain
├── graph
│ ├── generated
│ ├── models
│ ├── resolvers
│ └── schemas
│ └── tests
└── infrastructure
└── repositories
application
: Contains the application layer. This layer contains the use cases, which are the application-specific business rules.
cmd
: Contains different commands that can be run from the command line.
db
: Contains the database migrations and seeds.
domain
: Contains the domain layer. This layer contains the domain model and the domain services.
graph
: Contains the GraphQL layer. This layer contains the generated code, the models, the resolvers, the schemas, and the tests.
infrastructure
: Contains the infrastructure layer. This layer contains the implementation of the ports defined in the application layer.