ticket-tracker

module
v0.0.0-...-e705344 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2024 License: MIT

README

TicketTracker

IT incident management API built in Go.

Technical Stack

  • Clean architecture with repository pattern
  • PostgreSQL with migrations
  • Structured logging and error handling
  • Request timeout and connection pooling
  • API versioning and middleware chain

Development

Prerequisites: Go 1.21+, PostgreSQL 14+

Setup
git clone https://github.com/barturba/ticket-tracker.git && cd ticket-tracker
go mod tidy
cp .env.example .env
Migrations
goose -dir db/migrations postgres "postgres://user:pass@localhost:5432/dbname?sslmode=disable" up
Run
make run/api

Architecture

├── cmd/
│   └── api/          # Application entrypoint
├── internal/
│   ├── api/          # HTTP handlers & middleware
│   ├── database/     # Database layer
│   ├── models/       # Domain models
│   └── repository/   # Data access interfaces
└── sql/             # Migrations & queries

API Routes

Incidents
GET    /v1/incidents     # List incidents
GET    /v1/incidents/:id # Get incident
POST   /v1/incidents     # Create incident
PUT    /v1/incidents/:id # Update incident
DELETE /v1/incidents/:id # Delete incident

Similar patterns for /companies, /configitems (configuration items), and /users endpoints.

License

MIT

Directories

Path Synopsis
cmd
api command
internal
api
models
models provides the data structures and validation logic.
models provides the data structures and validation logic.
utils/errors
Package errutil provides utility functions for handling and responding to errors in HTTP handlers.
Package errutil provides utility functions for handling and responding to errors in HTTP handlers.
utils/json
Package json provides utility functions for handling JSON encoding and decoding in HTTP requests and responses.
Package json provides utility functions for handling JSON encoding and decoding in HTTP requests and responses.
utils/validator
Package validator provides a set of utilities for validating data, including email validation, uniqueness checks, and permitted value checks.
Package validator provides a set of utilities for validating data, including email validation, uniqueness checks, and permitted value checks.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL