SVNfluence

πŸš€ SVNfluence - AI-Powered SVN Command Generator

Welcome to SVNfluence, an AI-driven web application that helps developers quickly find and understand SVN (Subversion) commands using natural language queries. Built with Go, Gin, and powered by OpenAI, SVNfluence offers a sleek, responsive interface with a modern design, making it easy to navigate SVN commands in both light and dark themes.

🌟 Find the SVN command you need nowβ€”effortlessly!


✨ Features

  • AI-Powered Search: Enter natural language queries (e.g., “how to add a file?”) and get instant SVN command suggestions with descriptions, usage, and examples.
  • Responsive Design: Beautiful, user-friendly UI with light and dark themes, featuring animated particle effects for a dynamic background.
  • Fast Performance: Built with Go and Gin for high-speed, reliable web serving.
  • Cross-Platform: Works seamlessly in browsers on desktop and mobile devices.
  • Open Source: Contribute, fork, or customizeβ€”check out the code on GitHub!

πŸš€ Getting Started

Prerequisites

  • Go: Version 1.20 or higher (install via golang.org)
  • OpenAI API Key: Sign up at OpenAI and get an API key.
  • Git: For cloning the repository (install via git-scm.com)

Installation

  1. Clone the repository:

    git clone https://github.com/k1lgor/svnfluence.git
    cd svnfluence
    
  2. Set your OpenAI API key as an environment variable:

    export OPENAI_API_KEY=your-api-key-here
    
  3. Install dependencies:

    go mod tidy
    
  4. Run the application:

    go run cmd/main.go
    
  5. Open the browser and visit:

    http://localhost:8080
    

πŸ›  Usage

  1. Navigate to the homepage and enter a query like β€œhow to add a file?” in the search bar.
  2. Click β€œSearch” to get AI-generated SVN command suggestions, including the command, description, usage, and examples.
  3. Toggle between light 🌞 and dark πŸŒ™ themes using the button in the top-right corner.
  4. Click the GitHub icon in the footer to visit the project’s repository or the developer’s profile.

Project Structure

SVNfluence is organized for scalability and maintainability:

svnfluence/
β”œβ”€β”€ cmd/                  # Entry point for the application
β”‚   └── main.go          # Main application startup
β”œβ”€β”€ internal/             # Internal application logic
β”‚   β”œβ”€β”€ api/             # API handlers and routes
β”‚   β”‚   └── handlers.go  # HTTP handlers
β”‚   β”œβ”€β”€ config/          # Configuration settings
β”‚   β”‚   └── config.go    # Configuration loader
β”‚   β”œβ”€β”€ models/          # Data structures
β”‚   β”‚   └── command.go   # Command struct
β”‚   └── openai/          # AI integration
β”‚       └── openai.go    # OpenAI API calls
β”œβ”€β”€ templates/            # HTML templates
β”‚   β”œβ”€β”€ search.html
β”‚   └── results.html
β”œβ”€β”€ static/               # Static assets (CSS, JS, images)
β”‚   └── style.css
β”œβ”€β”€ go.mod               # Go module file
└── go.sum               # Go dependencies

🐳 Docker

Run SVNfluence in a container for easy deployment:

Prerequisites

Build and Run

  1. Build the Docker image:

    docker build -t svnfluence:latest .
    
  2. Run the container with your OpenAI API key:

    docker run -d -p 8080:8080 -e OPENAI_API_KEY=your-api-key-here svnfluence:latest
    

Health Check

SVNfluence includes a health endpoint at /health. The Dockerfile includes a HEALTHCHECK to monitor the app:

HEALTHCHECK --interval=30s --timeout=3s \
    CMD curl -f http://localhost:8080/health || exit 1

⚠️ License

SVNfluence is open-source software licensed under the MIT License. See the LICENSE file for details.

Plamen Ivanov
Plamen Ivanov
DevOps Engineer

Python & Bash Automation Ninja | Gopher Rookie on the Rise