Skip to content

πŸ“ Task Manager API β€” это REST API для управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ (todo-list) с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, JWT-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ CRUD-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. БСрвис позволяСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ вСсти свой список Π΄Π΅Π», ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Swagger UI.

Notifications You must be signed in to change notification settings

iviv660/tasker-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ Task Manager API

REST API для управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ (todo-list) с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· JWT ΠΈ CRUD-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ Π·Π°Π΄Π°Ρ‡Π°ΠΌ.


πŸš€ ВозмоТности

  • πŸ“Œ РСгистрация ΠΈ Π»ΠΎΠ³ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (с Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ пароля Π² Π²ΠΈΠ΄Π΅ bcrypt-Ρ…ΡΡˆΠ°).
  • πŸ”‘ JWT-аутСнтификация.
  • βœ… CRUD ΠΏΠΎ Π·Π°Π΄Π°Ρ‡Π°ΠΌ:
    • созданиС Π·Π°Π΄Π°Ρ‡ΠΈ
    • ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка Π·Π°Π΄Π°Ρ‡
    • ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ID
    • ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ
    • ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ
    • ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ
  • πŸ“‚ ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ (owner_id).
  • πŸ“– Swagger UI для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

βš™οΈ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

  • Go (Gin) β€” Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ
  • PostgreSQL β€” Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…
  • migrate β€” ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ
  • Docker + docker-compose β€” запуск локально
  • swaggo β€” гСнСрация Swagger-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

πŸ“‚ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

cmd/app/main.go       # Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π°
internal/config       # конфигурация (.env)
internal/database     # ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Postgres
internal/entity       # сущности (User, Task)
internal/repository   # Ρ€Π°Π±ΠΎΡ‚Π° с Π‘Π”
internal/usecase      # бизнСс-логика
internal/handler      # HTTP-эндпоинты (Gin)
internal/security     # Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пароля, JWT
internal/docs         # swagger-докумСнтация (сгСнСрированная)
migrations/           # SQL-ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ
docker-compose.yml
Dockerfile
README.md

πŸ› οΈ Установка ΠΈ запуск

1.ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

git clone https://github.com/iviv660/tasker.git
cd tasker

2.Π‘ΠΎΠ·Π΄Π°ΠΉ .env (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅):

POSTGRES_USER=postgres
POSTGRES_PASSWORD=070823
POSTGRES_DB=tasker

POSTGRES_URL=postgres://postgres:070823@postgres:5432/tasker?sslmode=disable

BASE_URL=http://localhost:3000
SECRET_KEY=Miromanov070823

3.Запусти Π² Docker:

docker compose up --build

4.API Π±ΡƒΠ΄Π΅Ρ‚ доступно ΠΏΠΎ адрСсу:

http://localhost:3000

5.Swagger UI:

http://localhost:3000/swagger/index.html

πŸ“Œ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ запросов

| ΠœΠ΅Ρ‚ΠΎΠ΄  | Endpoint              | ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса                                                                                                          | ΠžΡ‚Π²Π΅Ρ‚ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€)   |
|--------|-----------------------|-------------------------------------------------------------------------------------------------------------------------|------------------|
| POST   | `/auth/register`      | `curl -X POST http://localhost:3000/auth/register -H "Content-Type: application/json" -d '{"email":"x","password":"y"}'`| `{"user_id":1}`  |
| POST   | `/auth/login`         | `curl -X POST http://localhost:3000/auth/login -H "Content-Type: application/json" -d '{"email":"x","password":"y"}'`   | `{"token":"..."}`|
| GET    | `/tasks`              | `curl -X GET http://localhost:3000/tasks -H "Authorization: Bearer <JWT>"`                                              | `{"tasks":[...]}`|
| POST   | `/tasks`              | `curl -X POST http://localhost:3000/tasks -H "Authorization: Bearer <JWT>" -d '{"title":"Test"}'`                       | `{...}`          |
| PUT    | `/tasks/{id}`         | `curl -X PUT http://localhost:3000/tasks/1 -H "Authorization: Bearer <JWT>" -d '{"title":"Update"}'`                    | `{...}`          | 
| PATCH  | `/tasks/{id}/complete`| `curl -X PATCH http://localhost:3000/tasks/1/complete -H "Authorization: Bearer <JWT>"`                                 | `{...}`          |
| DELETE | `/tasks/{id}`         | `curl -X DELETE http://localhost:3000/tasks/1 -H "Authorization: Bearer <JWT>"`                                         | `204 No Content` |

About

πŸ“ Task Manager API β€” это REST API для управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ (todo-list) с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, JWT-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ CRUD-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. БСрвис позволяСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ вСсти свой список Π΄Π΅Π», ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Swagger UI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published