# Goravel: A task API in Go, from an empty folder to a live server

> TaskFlow is an API for a team's tasks, with accounts, roles, file uploads, background jobs and email. We write it in Goravel, a Go framework modelled on Laravel, and finish with it running on a server.

By Krishan Kumar. 17 of 20 parts written.
Source: https://devchalk.com/goravel

## Written parts

- [01. Installation & Project Architecture](https://devchalk.com/goravel/01-installation-project-architecture.md): A new Goravel project, Postgres and Redis in Docker, the server running
- [02. Routing & Responses](https://devchalk.com/goravel/02-routing-response.md): Route files registered, JSON responses shaped, a task controller
- [03. Reading Request Data](https://devchalk.com/goravel/03-reading-request-data.md): Path, query string and JSON body, read from the request
- [04. Models & Migrations](https://devchalk.com/goravel/04-models-migrations.md): A users table, generated from the model
- [05. Relationships: Belongs To](https://devchalk.com/goravel/05-relationships-belongs-to.md): Tasks tied to the users who made them and the users they are assigned to
- [06. Relationships: Has Many](https://devchalk.com/goravel/06-relationships-has-many.md): Users loaded with the tasks they made and the tasks assigned to them
- [07. Factories & Seeding](https://devchalk.com/goravel/07-factories-seeding.md): Fake users and tasks, seeded with one command
- [08. Validation with Form Requests](https://devchalk.com/goravel/08-validation-form-requests.md): Rejecting bad input before it reaches a handler
- [09. Register & Login with JWT](https://devchalk.com/goravel/09-register-login-jwt.md): Accounts, hashed passwords, signed tokens
- [10. Auth Middleware & Rate Limits](https://devchalk.com/goravel/10-auth-middleware.md): Routes only signed-in users can call
- [11. Task CRUD](https://devchalk.com/goravel/11-task-crud.md): The task endpoints, with a status filter and pages
- [12. Gates & Policies](https://devchalk.com/goravel/12-gates-policies.md): Managers create and assign, members update status
- [13. Feature Testing](https://devchalk.com/goravel/13-feature-testing.md): Tests for logins, roles and tasks
- [14. File Storage](https://devchalk.com/goravel/14-file-storage-attachments.md): Files attached to tasks
- [15. Events & Listeners](https://devchalk.com/goravel/15-events-listeners-notifications.md): A notification when a task is assigned
- [16. Queues & Jobs](https://devchalk.com/goravel/16-queues-jobs-task-export.md): A CSV export that runs in the background
- [17. Mail & Templates](https://devchalk.com/goravel/17-mail-templates.md): Emails for new assignments and finished exports

## Still to come

- 18. Cache: The Dashboard: Dashboard counts kept in Redis
- 19. Scheduling & Artisan Commands: A reminder every morning for tasks due that day
- 20. Ship It: Docker & Deploy: TaskFlow in Docker, running on a server
