Skip to main content

Introduction

GoCondor is a Golang web framework made for building web APIs, suitable for small to medium size projects and microservices. with its simple structure and developer-friendly experience, it makes developers happily more productive.

Features

  • Routing
  • Middlewares
  • Data Validation
  • Databases ORM (GORM integrated)
  • Events
  • Emails
  • JWT tokens
  • Cache (Redis)
  • HTTPS (TLS)

Architecture

GoCondor's architecture is similar to MVC, it has a routes file ./routes.go in which you can map all your app routes to their handlers, Handlers are located in the directory ./handlers, and they are simply functions that gets called whenever a requests (GET, POST, ... etc) to the matching route is received.

The request journey:

Request -> Router -> Optional Middleware -> Handler -> Optional Middleware -> Response

Directory structure

├── gocondor
│   ├── config/ --------------------------> main configs
│   ├── events/ --------------------------> contains events
│ │ ├── jobs/ ------------------------> contains the event jobs
│   ├── handlers/ ------------------------> route's handlers
│   ├── logs/ ----------------------------> app log files
│   ├── middlewares/ ---------------------> app middlewares
│   ├── models/ --------------------------> database models
│   ├── storage/ -------------------------> a place to store files
│   ├── tls/ -----------------------------> tls certificates
│   ├── .env -----------------------------> environment variables 
│   ├── .gitignore -----------------------> .gitignore
│   ├── go.mod ---------------------------> Go modules
│   ├── LICENSE --------------------------> license
│   ├── main.go --------------------------> go main file
│   ├── README.md ------------------------> readme file
│   ├── register-events.go ---------------> register events and jobs
│   ├── register-global-middlewares.go ---> register global middlewares
│   ├── routes.go ------------------------> app routes
│   ├── run-auto-migrations.go -----------> database migrations