Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ansinitro/todo-app
REST API for creating TODO lists in Go
https://github.com/ansinitro/todo-app
clean-architecture gin go golang golang-api golang-jwt golang-migrate golang-rest jwt jwt-authentication rest-api sqlx youtube
Last synced: about 2 hours ago
JSON representation
REST API for creating TODO lists in Go
- Host: GitHub
- URL: https://github.com/ansinitro/todo-app
- Owner: ansinitro
- Created: 2024-03-30T07:06:15.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-03-30T07:31:39.000Z (8 months ago)
- Last Synced: 2024-03-30T08:26:43.676Z (8 months ago)
- Topics: clean-architecture, gin, go, golang, golang-api, golang-jwt, golang-migrate, golang-rest, jwt, jwt-authentication, rest-api, sqlx, youtube
- Language: Go
- Homepage:
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# REST API for creating TODO lists in Go #
### This project was created based on the YouTube tutorial ###
#### The following concepts are covered in the course: ####
- Developing Web Applications in Go, following REST API design principles.
- Working with the gin-gonic/gin framework.
- Applying Clean Architecture principles in building application structure. Dependency injection technique.
- Working with Postgres database. Generation of migration files.
- Application configuration using the spf13/viper library. Handling environment variables.
- Database interaction using the sqlx library.
- User registration and authentication. Working with JWT. Middleware.
- Writing SQL queries.
- Graceful Shutdown.
#### Quick Start ####
```bash
git clone "https://github.com/ansinitro/todo-app"
cd todo-app
go mod download
```
create `.env` file based on `.env.example` file or just execute `echo DB_PASSWORD= > .env`
```bash
migrate -path ./schema -database 'postgres://postgres:@0.0.0.0:5432/postgres?sslmode=disable' up
go run cmd/main.go
```