# LK API Template

A modern, production-ready API template built with Go and React, featuring comprehensive authentication, mailing capabilities, and automatic API documentation.

## 🚀 Features

- **Backend (Go)**

  - Chi router for efficient HTTP routing
  - Swagger/OpenAPI documentation
  - SendGrid integration for email notifications
  - Rate limiting support
  - Redis caching
  - PostgreSQL database integration
  - JWT-based authentication
  - Environment-based configuration
  - Structured logging with Zap
  - Hot reload support with Air

- **Frontend (Nuxt 3 + TypeScript)**
  - Vue 3 with Composition API
  - TypeScript support
  - Nuxt modules ecosystem
  - Hot Module Replacement (HMR)
  - Auto-imports for components and composables
  - Server-side rendering capabilities
  - File-based routing

## 📋 Prerequisites

- Go 1.21 or higher
- Node.js 18 or higher
- PostgreSQL
- Redis
- SendGrid API key (for email functionality)

## 🛠️ Installation

1. Clone the repository:

```bash
git clone https://github.com/FernandoJVideira/LK_API_Temp.git
cd LK_API_Temp
```

2. Install backend dependencies:

```bash
go mod download
```

3. Install frontend dependencies:

```bash
cd web
npm install
```

4. Set up environment variables:

```bash
cp .env.example .env
# Edit .env with your configuration
```

## 🚀 Development

### Backend

Run the backend server with hot reload:

```bash
air
```

The API will be available at `http://localhost:8080` with the base path `/v1`.

### Frontend

Run the frontend development server:

```bash
cd web
npm run dev
```

The frontend will be available at `http://localhost:3000` (default Nuxt port).

## 📚 API Documentation

The API documentation is automatically generated using Swagger. Once the server is running, you can access the Swagger UI at: `http://localhost:8080/v1/swagger/index.html#/`