Please read the README_TR.md for Turkish version of this document.
This is a simple project for students to learn Golang. It is a url shortener. It is a simple project for students to learn Golang. It is a url shortener.
erDiagram
User {
id int PK
username varchar
password varchar
created_at timestamp
updated_at timestamp
}
Url {
id int PK
user_id int FK
url varchar
short_url varchar
created_at timestamp
updated_at timestamp
}
Click {
id int PK
url_id int FK
user_id int FK
created_at timestamp
updated_at timestamp
ip varchar
country varchar
related_click_id int
is_bot boolean
}
User ||--o{ Url : "one-to-many"
Url ||--o{ Click : "one-to-many"
Click ||--o{ User : "one-to-many"
- Create folder structure (Work in Progress)
- Create folder structure (Completed ๐)
- Create domain model
- Create repository interface
- Create repository implementation
- Create repository test
- Create dockerfile and docker-compose
- Insert redis and postgres into docker-compose
- Create logger
- Create service interface
- Create service implementation
- Create service test
- Create router & handlers
- Create user authentication
- Create user authentication test
- Create user authentication handler
- CI/CD with Github Actions