GoCondor is a [Go](https://go.dev) web framework made for building web APIs, suitable for small, medium size and microservices projects. With it's simple structure, and developer friendly experience it helps with increasing the productivity.
Here is how you can create new `goCondor` projects using `gaffer`
```bash
gaffer new [project-name] [project-remote-repository]
```
Example
```bash
gaffer new myapp github.com/gocondor/myapp
```
where:
`project-name` is the name of your project
`remote-repository` is the remote repository that will host the project, usually `github.com` is used.
## Getting started
First make sure you have [Gaffer](https://gocondor.github.io/docs/gaffer) installed, then use it to create a new project, [here is how](https://gocondor.github.io/docs/gaffer#create-new-project-using-gaffer)
Let's create a route that returns `hello world`
Open up the file `routes.go` in the root directory of your project and add the following code:
Next, in your terminal navigate to the project dir and run the following command to start the `live reloading`:
```go
gocondor run:dev
```
Finally, open up your browser and navigate to `http://localhost/greeting`
To learn more check the [routing docs section](https://gocondor.github.io/docs/routing)
## Architecture
The architecture is similar to `MVC`, where there is a routes file `./routes.go` in which you can map all your app routes to their controllers which resides in the directory `./controllers`. Controllers are simply methods that handles requests (GET, POST, ... etch) to the given routes.
## The request journey:
The first component that receive's the request in `Cup` is the `Router`,
then `Goffee` locates the matching [handler](https://gocondor.github.io/docs/handlers) of the request and it check's if there are any [middlewares](https://gocondor.github.io/docs/middlewares) to be executed either before or after the [handler](https://gocondor.github.io/docs/handlers), if so, it executes them in the right order, then at the final stage it returns the response to the user.